Der Befehls-Manager
Der CommandManager ist ein Manager, der schaut welche Befehle in den Chat eingetippt werden und diese an den zugehörigen Command-Handler weiterleitet. Um deinen Befehl zu registrieren, kannst du die Methode CommandManager#register(Object, CommandCallable, String…) mit deiner Plugin Instanz, einer Instanz deines Befehls, sowie jeglichen Aliasen als Parameter aufrufen.
Normalerweise registriert man seine Befehle, wenn das GameInitializationEvent aufgerufen wird. Falls du deine Befehle von der Hauptklasse deines Plugins aus registrierst, dann benutze this
als plugin
Parameter.
import org.spongepowered.api.Sponge;
import org.spongepowered.api.command.CommandManager;
CommandManager cmdManager = Sponge.getCommandManager();
cmdManager.register(this, myCommandSpec, "alias1", "alias2", "alias3");
Bemerkung
Die Argumente, die du nach der Instanz des Befehls an die Methode übergibst, werden als Alias für den registrierten Befehl benutzt. Du kannst so viele Aliase angeben, wie du möchtest, und der erste Alias, der nicht von einem anderen Plugin genutzt wird, wird als primärer Alias genommen. Das bedeutet, dass Aliase, die bereits von anderen Plugins genutzt werden, für deinen Befehl ignoriert werden.
Der CommandManager
kann außerdem verwendet werden, um einen Befehl programmatisch auszulösen:
cmdManager.process(player, "msg Notch hi notch!");
Du kannst einen Befehl auch von der Server-Konsole aus ausführen:
cmdManager.process(Sponge.getServer().getConsole(), "kill Notch");