В моем коде, найденном на Github, я пытаюсь вызвать другой метод в зависимости от того, какой ввод был введен игроком.
Мой текущий способ сделать это — получить команду, которую они выполнили, а затем просто использовать оператор if else if, который выглядит примерно так:
Код: Выделить всё
if (args[0].equalsIgnoreCase("create"))
new SubCommandLootCrateCreate(plugin, sender, args).runSubCommand(false);
else if (args[0].equalsIgnoreCase("key"))
new SubCommandLootCrateKey(plugin, sender, args).runSubCommand(true);
else if (args[0].equalsIgnoreCase("add"))
new SubCommandLootCrateAdd(plugin, sender, args).runSubCommand(true);
else if (args[0].equalsIgnoreCase("remove"))
new SubCommandLootCrateRemove(plugin, sender, args).runSubCommand(false);
Вот пример #runSubCommand(boolean)
Код: Выделить всё
public class SubCommandLootCrateCreate extends SubCommand
{
private String[] args;
private CommandSender sender;
private LootCrate plugin;
public SubCommandLootCrateCreate(LootCrate plugin, CommandSender sender, String[] args)
{
super(plugin, sender, args, Permission.COMMAND_LOOTCRATE_CREATE, Permission.COMMAND_LOOTCRATE_ADMIN);
this.plugin = plugin;
this.sender = sender;
this.args = args;
}
@Override
public void runSubCommand(boolean playerRequired)
{
//code
}
}
TLDR; Нужен более эффективный способ, чем вызов пользовательских методов из пользовательских объектов.
Если мне не хватает чего-либо или какой-либо информации, которая вам нужна, дайте мне знать, и я ее предоставлю.
Подробнее здесь: https://stackoverflow.com/questions/659 ... my-methods
Мобильная версия