Commandes et permissions

Les commandes sont une des méthodes utilisées par les administrateurs pour gérer leur serveur, mais aussi par les joueurs pour interagir avec le serveur.

Dans Sponge, les commandes suivent un système de Permissions. Les permissions permettent aux administrateurs de contrôler qui peut accéder à quelle commande. Par défaut, toutes les commandes sont disponibles aux administrateurs. Les joueurs sans le statut d’administrateur n’ont pas accès aux commandes réservés aux administrateurs, ou qui requièrent une permission spécifique. Un administrateur peut gérer l’accès aux commandes en ajoutant/retirant une permission à un joueur via un plugin de permission.

Note

Sponge ne gère pas nativement les permissions. Pour ajouter ou retirer des permissions à un joueur spécifique, ou à un groupe de joueur, vous devez installer un plugin de permission.

Commandes d’administrateur

Ces commandes, en plus des commandes des joueurs normaux, sont disponibles pour les administrateurs.

Sponge

Les commandes suivantes sont disponibles pour les joueurs avec le statut d’administrateur (ou la permission adéquate) sur les serveurs utilisant Sponge.

Commande

Description

Permission

/sponge audit

Force le chargement des classes non chargées pour permettre le débuggage des mixins.

sponge.command.audit

/sponge blockinfo

Affiche le type et quelques informations supplémentaires à propos du bloc que vous regardez.

sponge.command.blockinfo

/sponge chunks

Envoie dans le chat les données des chunks pour un monde, une dimension ou le serveur entier.

sponge.command.chunks

/sponge config

Modifie une configuration globale, de monde ou de dimension.

sponge.command.config

/sponge entityinfo

Affiche le type et quelques informations supplémentaires à propos de l’entité que vous regardez.

sponge.command.entityinfo

/sponge heap

Envoie le heap de la JVM.

sponge.command.heap

/sponge metrics

Affiche ou définit si un plugin en particulier peut collecter des métriques (statistiques) sur votre serveur.

sponge.command.metrics

/sponge mods

Liste les mods forge installés. (SpongeForge seulement)

sponge.command.mods

/sponge plugins

Liste les plugins Sponge installés.

sponge.command.plugins

/sponge plugins reload

Demande aux plugins de déclencher leur propre procédure de rechargement.

sponge.command.plugins.reload

/sponge reload

Recharge la configuration globale, d’un monde, ou d’une dimension.

sponge.command.reload

/sponge save

Sauvegarde la configuration globale, d’un monde, ou d’une dimension.

sponge.command.save

/sponge timings

La commande principale du module timings.

sponge.command.timings

/sponge tps

Affiche le nombre de ticks par seconde pour chaque monde

sponge.command.tps

/sponge version

Renvoie la version de Sponge/SpongeAPI dans la console.

sponge.command.version

/sponge which

Indique à quel plugin appartient la commande, ses alias et ses alternatifs.

sponge.command.which

/sponge:callback

Utilisée en interne pour gérer les retours des Texts (pour la pagination par exemple). Ne devrait pas être utilisée manuellement.

/sponge:help

Affiche les informations sur les commandes disponibles sur le serveur.

sponge.command.help


Paramètres des commandes Sponge

  • /sponge chunks [-g] [-d dim] [-w world]

  • /sponge config [-g] [-d dim] [-w world] key value

  • /sponge save [-g] [-d dim|*] [-w world|*]

  • /sponge reload [-g] [-d dim|*] [-w world|*]

Conflits de commandes

En cas de conflit, Sponge fournit un mécanisme d’alias simple pour décider quelle commande utiliser. Par exemple, Minecraft fournit une commande reload and Sponge reload. Pour décider de la commande à utiliser, préfixez-la avec minecraft ou sponge puis d’un :. Vous pourrez donc utiliser la commande de Sponge en écrivant /sponge:reload. Vous pouvez procéder de la même manière avec les conflits entre mods/plugins. Pour ce faire, utiliser l’ID du mod ou du plugin suivit d’un :. Par exemple /examplemodid:tp.

De plus, ce système d’alias peut être utilisé pour éviter les incompatibilités. Disons qu’un plugin enregistre une commande, mais cette commande est incompatible avec votre mod. Si vous configurez votre mod pour utiliser une commande native de Minecraft ou d’un plugin, vous pouvez restaurer le comportement attendu ou empêcher un comportement non désiré.

Note

La commande /sponge audit force le chargement de toutes les classes qui n’ont pu être chargées correctement, permettant d’accéder à l’ensemble des variables d’environnement des mixins qui sont nécessaires au déboggage. Cela requiert aussi que la variable mixins.checks soit activée. Voir le wiki sur les Mixins pour plus d’informations.

Astuce

Voici quelques exemple simples de l’utilisation de la commande de configuration de Sponge. Sachez qu’au moins un flag doit être précisé. Une explication plus détaillée se trouve sur la page Configurer Sponge.

  1. /sponge config -d minecraft:nether logging.chunk-load true

Puisqu’une dimension est spécifiée (le nether dans cet exemple), ce sera la configuration du nether qui sera modifiée (et donc tous les mondes du nether).

  1. /sponge config -w DIM1 logging.chunk-load true

Celle-ci modifiera la configuration d’un monde nommé DIM1.

Sponge offre deux permissions pour faites pour débugger:

  • Permet d’utiliser les message channels des blocs et des entités suivies de Sponge: sponge.debug.block-tracking. Ce channel est utilisé par le client (si SpongeForge est installé) pour afficher les owners et notifiers des blocs et entités dans la vue de debug.

  • Permet d’afficher les stacktraces en survolant le message d’erreur envoyé quand une commande n’a pas pu être exécutée correctement: sponge.debug.hover-stacktrace

Timings

Timings est un outil intégré à Sponge qui permet aux administrateurs de surveiller les performances de leur serveur. Timings collecte des informations sur le serveur, un rapport sera généré avec ces données. Les informations enregistrées par timings sont le motd, la version, le temps de disponibilité (uptime), la mémoire, les plugins installés, le tps, le pourcentage de perte de tps, le nombre de joueurs, les tile entities, les entités et les chunks. Une liste de toutes les sous-commandes de /sponge timings se situe ci-dessous:

Commande

Description

/sponge timings on

Active le timings. Notez que cela va également réinitialiser les données de l’ancien timings.

/sponge timings off

Désactive le timings. Notez que la plupart des autres sous-commandes ne fonctionneront pas et que le timings n’enregistrera plus rien s’il est désactivé.

/sponge timings reset

Réinitialise les données du timings et commence à enregistrer les données dès que la commande a été effectuée.

/sponge timings report

Générez votre rapport de performance pour votre serveur à https://timings.aikar.co.

/sponge timings verbon

Active la surveillance du timings à un niveau verbal élevé.

/sponge timings verboff

Désactive la surveillance du timings à un niveau verbal élevé. Notez que le timings à haute fréquence ne sera pas disponible.

/sponge timings cost

Obtenez le coût de l’utilisation du timings.

Forge

Les commandes suivantes ne sont disponibles que si vous utilisez SpongeForge. Les autres implémentations de SpongeAPI, comme SpongeVanilla, n’incluent pas ces commandes.

Commande

Description

Permission

/forge tps

Affiche le nombre de ticks par seconde pour chaque monde

forge.command.forge

/forge track

Active le suivi des entités

forge.command.forge


Pour tous les mods Forge qui utilisent l’API vanilla des commandes, les permissions de commandes sont sous la forme <modid>.command.<commandname>.

Vanilla

Il y a plusieurs commandes intégrées à Minecraft Vanilla qui sont également disponibles sur les serveurs basés sur Sponge. La liste ci-dessous n’est pas exhaustive, mais elle inclut les commandes les plus couramment utilisées. Ces commandes sont disponibles pour les joueurs avec le statut d’opérateur (ou le permission appropriée). En général, les autorisations pour les commandes de Minecraft Vanilla sur un serveur Sponge sont présentées sous la forme minecraft.command.<command>, comme indiqué ci-dessous.

Commande

Description

Permission

/ban

Bannit le joueur du serveur

minecraft.command.ban

/ban-ip

Banni l’adresse IP du joueur.

minecraft.command.ban-ip

/banlist

Affiche la liste des bannis

minecraft.command.banlist

/clear

Vide l’inventaire du joueur.

minecraft.command.clear

/deop

Révoque le statut d’opérateur du joueur

minecraft.command.deop

/difficulty

Change la difficulté du monde.

minecraft.command.difficulty

/gamemode

Définit le mode de jeu du joueur.

minecraft.command.gamemode

/gamerule

Configure une règle.

minecraft.command.gamerule

/give

Donne un objet à un joueur.

minecraft.command.give

/kill

Tue un joueur ou une entité.

minecraft.command.kill

/op

Donne le statut d’administrateur à un joueur.

minecraft.command.op

/pardon

Retirer un joueur de la liste des bannis.

minecraft.command.pardon

/save-all

Force la sauvegarde la carte du serveur.

minecraft.command.save-all

/save-off

Désactive la sauvegarde automatique de la carte du serveur.

minecraft.command.save-off

/save-on

Active la sauvegarde automatique de la carte du serveur.

minecraft.command.save-on

/setidletimeout

Définit combien de temps les joueurs peuvent être absents avant d’être kické.

minecraft.command.setidletimeout

/setworldspawn

Définit l’emplacement du spawn des joueurs.

minecraft.command.setworldspawn

/stop

Arrête le serveur.

minecraft.command.stop

/toggledownfall

Change le temps de la carte. S’il pleut, alors le beau temps arrive, et vice-versa.

minecraft.command.toggledownfall

/tp

Téléporte les joueurs et les entités.

minecraft.command.tp

/weather

Change la météo.

minecraft.command.weather

/whitelist

Modifier la whitelist du serveur.

minecraft.command.whitelist

/worldborder

Modifie la limite de la carte.

minecraft.command.worldborder


Sponge crée également des permissions pour ces fonctionnalités de Minecraft:

  • Permet au joueur d’utiliser les sélecteurs d’entités dans les commandes: minecraft.selector

  • Permet au joueur d’ignorer la protection du spawn sur tous les mondes: minecraft.spawn-protection.override

  • Permet au joueur d’ignorer la protection du spawn sur tous les mondes: minecraft.spawn-protection.override

  • Permet d’éditer un commandblock ordinaire avec un nom donné: minecraft.commandblock.edit.block.<name>

  • Permet d’éditer un minecart commandblock avec un nom donné: minecraft.commandblock.edit.minecart.<name>

Note

Ces permissions utilisent le vrai nom du commandblock, qui est @ par défaut normalement.

Il y a aussi des permissions gérant l’accès au serveur:

  • Considère le joueur comme whitelisté: minecraft.login.bypass-whitelist

  • Paermet à l’utilisateur d’ignorer la limite de joueur: minecraft.login.bypass-player-limit

Note

Sponge offre un support amélioré pour le multi-monde, comme par exemple des bordures par monde. Par défaut, Sponge change seulement la bordure (ou d’autres options du monde) du monde dans lequel le joueur se situe. Vous pouvez restaurer le comportement vanilla en définissant sponge.commands.multi-world-patches.worldborder (ou l’entrée correspondante) sur false dans la configuration globale. Consultez global.conf pour plus de détails. Sponge part du principe que les plugins multi-mondes proposent aussi des commandes de configuration pour ces options et ne fournissent pas leurs propres variantes.

Commandes des joueurs

Les commandes suivantes sont disponibles par défaut dans Minecraft vanilla pour pouvoir être exécutées sans le statut d’administrateur.

Commande

Description

Permission

/help

Vois les informations des commandes utilisées sur le serveur, par défaut la commande Sponge sera utilisée!

minecraft.command.help

/me

Dites à tout le monde ce que vous faites.

minecraft.command.me

/say

Affiche un message à tous les joueurs. (Ou, si vous utilisez des canaux de chat spécifiques, aux joueurs visés.)

minecraft.command.say

/tell

Envoie un message privé à un autre joueur.

minecraft.command.tell


Une liste complète des commandes vanilla peut être trouvée ici : https://minecraft.gamepedia.com/Commands#List_of_commands. Les permissions pour les commandes Minecraft vanilla sur un serveur Sponge sont formées de la manière suivante minecraft.command.<command>.

Fonctionnalités des commandes

Sponge et la plupart des plugins Sponge supportent des fonctionnalités supplémentaires pour les commandes comme l’auto-complétion et les textes survolables. L’image ci-dessous montre la sortie en utilisant la commande /sponge plugins (boîte jaune). Les éléments dans cette liste peuvent être survolés pour voir plus d’informations comme la version installée (boîte rouge). Quelque éléments dans cet exemple ont d’autres actions. Par exemple, les entrées dans cette liste peuvent être cliquées pour montrer plus d’informations (boîte violette) à propos du plugin. C’est équivalent à utiliser la commande /sponge plugins <pluginId>. L’auto-complétion peut être utilisée en appuyant sur TAB. Entrer /sponge plugins  (avec un espace supplémentaire) puis appuyer sur TAB va montrer une liste de toutes les valeurs possibles (boite turquoise) qui peuvent être utilisées dans ce contexte. Continuer à appuyer sut TAB va proposer la possibilité suivante s’il y en a. Il est théoriquement possible d’écrire la plupart des commandes en n’utilisant que des TABs et des espaces (et peut être aussi la première lettre de chaque segment).

command features

Astuce

Si vous êtes un développeur de plugin et que vous souhaitez utiliser des textes survolables et des actions de texte dans votre plugin, rendez vous sur notre documentation sur le Text.