Skip to main content

Реєстрація субкоманд

Перший спосіб

TestCommand клас

import com.jodexindustries.donatecase.api.data.subcommand.SubCommandExecutor;
import com.jodexindustries.donatecase.api.data.subcommand.SubCommandTabCompleter;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;

public class TestCommand implements SubCommandExecutor, SubCommandTabCompleter {

/**
* Виконує задану субкоманду
* @param sender Джерело команди
* @param label Ярлик команди
* @param args Передаваємі аргументи команди
*/
@Override
public void execute(CommandSender sender, @NotNull String label, String[] args) {
// звичайний код, як для Bukkit команди
sender.sendMessage("Bukkit command");
}

/**
* Наповнення табуляції
* @param sender Джерело команди
* @param label Ярлик команди
* @param args Передаваємі аргументи команди
* @return наповнення
*/
@Override
public List<String> getTabCompletions(@NotNull CommandSender sender, @NotNull String label, String[] args) {
return new ArrayList<>();
}

}

Main клас

    @Override
public void onEnable() {
// отримання CaseManager
CaseManager api = new CaseManager(this);
// реєстрація субкоманди
SubCommandManager subCommandManager = api.getSubCommandManager();

TestCommand executor = new TestCommand();

SubCommand subCommand = subCommandManager.builder("test")
.type(SubCommandType.PLAYER)
.executor(executor)
.tabCompleter(executor)
.args(new String[]{"(test)", "(test2)"})
.description("This is cool command!")
.build();

subCommandManager.registerSubCommand(subCommand);
}

Другий спосіб

SecondCommand клас

import com.jodexindustries.donatecase.api.addon.Addon;
import com.jodexindustries.donatecase.api.data.SubCommandType;
import com.jodexindustries.donatecase.api.data.subcommand.SubCommand;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

import java.util.List;

public class SecondCommand extends SubCommand {

public SecondCommand(String name, Addon addon) {
super(name, addon);

setType(SubCommandType.PLAYER);
setDescription("This is a second command");
setArgs(new String[]{"(test)", "(test2)"});
}

@Override
public void execute(@NotNull CommandSender sender, @NotNull String label, String[] args) {
sender.sendMessage("Second command");
}

@Override
public List<String> getTabCompletions(@NotNull CommandSender sender, @NotNull String label, String[] args) {
return new ArrayList<>();
}
}

Main class

    @Override
public void onEnable() {
// отримання CaseManager
CaseManager api = new CaseManager(this);
// реєстрація субкоманди
SubCommandManager subCommandManager = api.getSubCommandManager();

SecondCommand second = new SecondCommand("test2", api.getAddon());
subCommandManager.registerSubCommand(second);
}

Main class

    @Override
public void onEnable() {
// отримання CaseManager
CaseManager api = new CaseManager(this);
// реєстрація субкоманди
SubCommandManager subCommandManager = api.getSubCommandManager();
subCommandManager.registerSubCommand("test", new TestCommand());
}