Как зарегистрировать команду в Sponge API 9.0.0?

Для регистрации команды в 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 также предлагает много других возможностей для работы с командами, таких как создание подкоманд и подсказок.