Fonctionnalités

Commandes depuis Discord

Lance des commandes Minecraft sur ton serveur depuis Discord et décide qui peut envoyer quelles commandes.

/server-command run lance des commandes sur ton serveur Minecraft sans RCON et sans port ouvert. La commande passe par la connexion de la synchro du chat. Deux endroits ont leur mot à dire : dans Discord, tu décides qui peut envoyer des commandes, et dans la config du serveur, tu décides quelles commandes il accepte.

Configurer

  1. Connecte le serveur comme décrit sous Synchro du chat.
  2. Définis dans la config les commandes que le serveur accepte. Par défaut, ce sont seulement whitelist add, whitelist remove et 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. Lance /mcsync reload. Sur Forge avant Minecraft 1.19, redémarre plutôt le serveur.
  2. Autorise des commandes pour un rôle. Les administrateurs Discord n'en ont pas besoin.
  1. Dans le tableau de bord, ouvre « Permissions ».
  2. Choisis le rôle sous « Autoriser des commandes pour un rôle ».
  3. Saisis les noms des commandes sous « Commandes autorisées », par exemple say, kick.
  4. Sous « Sur quels serveurs ? », choisis des serveurs précis ou laisse vide pour tous.
  5. Clique sur « Enregistrer ».
  1. Envoie une commande, sans slash au début :
/server-command run command: say Bonjour depuis Discord

Toi seul vois la réponse. Elle indique le serveur sur lequel la commande a été exécutée et affiche la sortie si le serveur en renvoie une.

La commande va au serveur que tu choisis avec server. Sans cette option, le bot prend le serveur auquel appartient le salon (chat ou whitelist), sinon le seul serveur connecté. Si plusieurs serveurs sont connectés et que le salon n'appartient à aucun d'eux, rien n'est exécuté et le bot liste les salons où le serveur est clair.

Le tableau de bord a pour cela la console, avec sortie en direct, boutons et planifications.

Réglages

Sur le serveur Minecraft

CléEffet
commands.modeoff : rien. whitelist : seulement whitelist add, remove et list (par défaut). allow : la whitelist plus commands.allow. all : toutes les commandes.
commands.allowLes commandes en plus pour allow. Une entrée est comparée mot par mot depuis le début de la commande, la suite peut être n'importe quoi. * correspond à exactement un mot.
commands.consoleFallbackSpigot, Paper, Folia seulement. Si une commande de plugin refuse la capture de sortie, true la relance une fois sans sortie. Par défaut : false.

whitelist add autorise whitelist add Notch mais pas whitelist off. lp user * parent add permet d'attribuer un rang, pas d'en retirer un. Les trois clés s'appliquent après /mcsync reload.

Dans Discord

QuiPeut
Les administrateurs du serveur Discordlancer toute commande que le serveur Minecraft accepte, et accorder des commandes
Les rôles avec une autorisationlancer les commandes accordées
Tous les autresrien

Une autorisation porte sur le premier mot : whitelist autorise toutes les commandes whitelist que le serveur accepte. * autorise tout. La portée d'une commande est limitée par commands.allow. Limiter une autorisation à certains serveurs n'est possible que dans le tableau de bord. /server-command permission remove role: @Moderator retire toutes ses autorisations à un rôle.

Le bot consigne chaque commande exécutée ou refusée dans un salon, si tu en définis un : /notices channel purpose: commands channel: #commands, ou dans le tableau de bord sous « Notifications & rapports » → « Salons » → « Journal des commandes ».

Problèmes

« Tu n'as pas le droit d'exécuter cette commande »

Ton rôle n'a pas d'autorisation dans Discord. Le bot nomme la commande qu'un administrateur doit autoriser avec /server-command permission add.

« Le serveur n'autorise pas cette commande »

Le serveur Minecraft la refuse. Mets commands.mode sur allow, ajoute la commande sous commands.allow et lance /mcsync reload.

Le bot ne sait pas de quel serveur tu parles

Choisis le serveur avec server: ou envoie la commande dans le salon de chat de ce serveur.

La réponse n'a pas de sortie

Beaucoup de commandes ne répondent qu'en jeu, ou pas du tout. Sur Forge 1.8 à 1.12.2, la commande s'exécute, mais aucune sortie ne revient.

Une commande de plugin indique qu'elle ne prend pas en charge la capture de sortie

Sur Spigot, Paper ou Folia, mets commands.consoleFallback: true. La commande est alors relancée sur la vraie console, sans sortie.

« Le serveur n'a pas répondu »

Le serveur n'était pas connecté ou a mis trop de temps. Impossible de savoir si la commande s'est exécutée malgré tout. Vérifie en jeu avant de la relancer.