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");