Funktionen

Befehle aus Discord

Minecraft-Befehle aus Discord auf deinem Server ausführen und festlegen, wer welche Befehle schicken darf.

Mit /server-command run führst du Befehle auf deinem Minecraft-Server aus, ohne RCON und ohne offenen Port. Der Befehl läuft über die Verbindung des Chat-Sync. Zwei Stellen entscheiden mit: In Discord legst du fest, wer Befehle schicken darf, und in der Konfiguration des Servers, welche Befehle er annimmt.

Einrichten

  1. Verbinde den Server, wie unter Chat-Sync beschrieben.
  2. Leg in der Konfiguration fest, welche Befehle der Server annimmt. Ohne Änderung sind es nur whitelist add, whitelist remove und whitelist list.
yaml
# Spigot, Paper, Folia: plugins/mc-sync/config.yml
commands:
  mode: allow
  allow:
    - say
    - kick
    - lp user * parent add
properties
# Fabric, Quilt, Forge, NeoForge: config/mc-sync.properties
commands.mode=allow
commands.allow=say,kick,lp user * parent add
  1. Führ /mcsync reload aus. Auf Forge vor Minecraft 1.19 starte den Server neu.
  2. Gib einer Rolle Befehle frei. Discord-Admins brauchen keine Freigabe.
  1. Öffne im Dashboard den Bereich „Berechtigungen“.
  2. Wähle unter „Befehle für eine Rolle freigeben“ die Rolle.
  3. Trag unter „Erlaubte Befehle“ die Befehlsnamen ein, zum Beispiel say, kick.
  4. Wähl unter „Auf welchen Servern?“ einzelne Server aus oder lass das Feld leer für alle.
  5. Klick auf „Speichern“.
  1. Schick einen Befehl, ohne Schrägstrich am Anfang:
/server-command run command: say Hallo aus Discord

Die Antwort siehst nur du. Sie nennt den Server, auf dem der Befehl lief, und die Ausgabe, wenn der Server eine liefert.

Der Befehl landet auf dem Server, den du unter server wählst. Ohne Angabe nimmt der Bot den Server, zu dem der Kanal gehört (Chat oder Whitelist), sonst den einzigen verbundenen Server. Sind mehrere Server verbunden und der Kanal gehört zu keinem, führt er nichts aus und nennt die Kanäle, in denen es eindeutig ist.

Im Dashboard gibt es dafür die Konsole, mit Live-Ausgabe, Knöpfen und Zeitplänen.

Einstellungen

Auf dem Minecraft-Server

SchlüsselWirkung
commands.modeoff: nichts. whitelist: nur whitelist add, remove und list (Standard). allow: die Whitelist plus commands.allow. all: jeder Befehl.
commands.allowZusätzliche Befehle für allow. Ein Eintrag gilt Wort für Wort ab dem Anfang des Befehls, danach darf alles folgen. * steht für genau ein Wort.
commands.consoleFallbackNur Spigot, Paper, Folia. Lehnt ein Plugin-Befehl die Erfassung der Ausgabe ab, führt true ihn noch einmal ohne Ausgabe aus. Standard: false.

whitelist add erlaubt whitelist add Notch, aber nicht whitelist off. lp user * parent add erlaubt das Vergeben eines Rangs, nicht das Entfernen. Alle drei Schlüssel gelten nach /mcsync reload.

In Discord

WerDarf
Administratoren des Discord-Serversjeden Befehl, den der Minecraft-Server annimmt, und Freigaben vergeben
Rollen mit Freigabedie freigegebenen Befehle
alle anderennichts

Eine Freigabe gilt für das erste Wort: whitelist erlaubt jeden whitelist-Befehl, den der Server annimmt. * erlaubt alle. Wie weit ein Befehl reicht, begrenzt commands.allow. Freigaben auf einzelne Server gibt es nur im Dashboard. /server-command permission remove role: @Moderator nimmt einer Rolle alle Freigaben.

Jeden ausgeführten und abgelehnten Befehl schreibt der Bot in einen Kanal, wenn du einen festlegst: /notices channel purpose: commands channel: #befehle oder im Dashboard unter „Meldungen & Berichte“ → „Kanäle“ → „Befehlsprotokoll“.

Probleme

„Du darfst diesen Befehl nicht ausführen“

Deiner Rolle fehlt die Freigabe in Discord. Der Bot nennt den Befehl, den ein Admin mit /server-command permission add freigeben muss.

„Der Server lässt diesen Befehl nicht zu“

Der Minecraft-Server lehnt den Befehl ab. Stell commands.mode auf allow, trag den Befehl unter commands.allow ein und führ /mcsync reload aus.

Der Bot weiß nicht, welcher Server gemeint ist

Wähl den Server mit server: oder schick den Befehl im Chatkanal des Servers.

Die Antwort hat keine Ausgabe

Viele Befehle antworten nur im Spiel oder gar nicht. Auf Forge 1.8 bis 1.12.2 läuft der Befehl, die Ausgabe kommt aber nicht zurück.

Ein Plugin-Befehl meldet, dass er keine Ausgabe-Erfassung unterstützt

Setz auf Spigot, Paper oder Folia commands.consoleFallback: true. Der Befehl läuft dann noch einmal auf der echten Konsole, ohne Ausgabe.

„Der Server hat nicht geantwortet“

Der Server war nicht verbunden oder zu langsam. Ob der Befehl trotzdem lief, lässt sich nicht sagen. Prüf im Spiel, bevor du ihn wiederholst.