Возможно, есть похожий вопрос, подобный этому, но я не знаю точных слов того, что я ищу.
У меня есть класс с именем Command
package loopturn.loanbot.main;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class Command extends ListenerAdapter implements CommandInterface {
private String command;
private CommandExecutor executor;
public Command(String command, CommandExecutor executor) {
this.command = command;
this.executor = executor;
}
public Boolean onCommand() {
return null;
}
public void onGuildMessageReceived(GuildMessageReceivedEvent event) {
String[] messageSplitBySpace = event.getMessage().getContentRaw().split(" ");
if(messageSplitBySpace[0].startsWith("!")) {
if(messageSplitBySpace[0].equalsIgnoreCase("!" + command)) {
executor.onCall(event);
}
}
}
}
И я создаю новую команду для каждой команды. Кажется просто, верно. Ну, как бы я сделал это, когда команда запускается, но не существует (команда начинается с отправки сообщения, которое начинается с '!'
), он говорит им, что его не существует.
Я имел идея создания другого класса, который принял бы команду и затем вызвал команду, когда это было сказано в чате, но это не кажется правильным решением. Я хотел посмотреть, сможет ли кто-нибудь придумать лучший способ сделать это.