Для регистрации команды в Sponge API 9.0.0 вам понадобится использовать класс CommandManager
.
Прежде всего, вам нужно создать класс, который будет являться вашей командой. В этом классе вы будете определять поведение команды при выполнении.
Вот пример простой команды:
import org.spongepowered.api.command.CommandResult; import org.spongepowered.api.command.spec.CommandExecutor; import org.spongepowered.api.command.spec.CommandSpec; import org.spongepowered.api.text.Text; import org.spongepowered.plugin.builtin.jvm.Plugin; @Plugin(id = "myplugin", name = "My Plugin", version = "1.0.0") public class MyCommand implements CommandExecutor { @Override public CommandResult execute(CommandSource src, CommandContext args) { src.sendMessage(Text.of("Привет, я команда MyCommand!")); return CommandResult.success(); } public CommandSpec createCommand() { return CommandSpec.builder() .executor(this) .description(Text.of("Краткое описание команды")) .permission("myplugin.command.mycommand") .build(); } }
Затем вы должны зарегистрировать эту команду в вашем плагине. Для этого вам необходимо получить экземпляр класса CommandManager
и зарегистрировать команду с помощью метода register
.
import org.spongepowered.api.command.CommandManager; import org.spongepowered.api.plugin.PluginContainer; import org.spongepowered.plugin.PluginManager; public class MyPlugin { public void registerCommand(PluginContainer pluginContainer) { PluginManager pluginManager = Sponge.getPluginManager(); CommandManager commandManager = pluginManager.getCommandManager(); MyCommand myCommand = new MyCommand(); CommandSpec myCommandSpec = myCommand.createCommand(); commandManager.register(pluginContainer, myCommandSpec, "mycommand", "mc"); } }
Обратите внимание, что метод register
требует указания PluginContainer
, с которым связана команда.
Вот и все! Теперь, когда вы запустите ваш плагин, команда mycommand
(или mc
) будет доступна для использования в игре. Пользователи с правом myplugin.command.mycommand
смогут выполнить эту команду, и они получат сообщение "Привет, я команда MyCommand!".
Это лишь пример, и вы можете настроить вашу команду под свои нужды, добавив аргументы или использование CommandFlags
. Sponge API также предлагает много других возможностей для работы с командами, таких как создание подкоманд и подсказок.