diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index efc253e..5cf43e6 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -17,6 +17,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.List; public class Hadder { @@ -44,12 +45,8 @@ public class Hadder { builder.setActivity(Activity.streaming("auf dem BigBotNetwork", "https://twitch.tv/BigBotNetwork")); builder.setToken(config.getString("Token")); - CommandHandler.cmdlist.put("test", new TestCommand()); - CommandHandler.cmdlist.put("ban", new BanCommand()); - CommandHandler.cmdlist.put("prefix", new PrefixCommand()); - CommandHandler.cmdlist.put("stop", new ShutdownCommand()); - CommandHandler.cmdlist.put("shutdown", new ShutdownCommand()); - CommandHandler.cmdlist.put("kick", new KickCommand()); + + CommandHandler.cmdlist.addAll(List.of(new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand())); builder.addEventListeners( new MentionListener(), diff --git a/src/main/java/com/bbn/hadder/commands/Command.java b/src/main/java/com/bbn/hadder/commands/Command.java index 95b1468..fcb46df 100644 --- a/src/main/java/com/bbn/hadder/commands/Command.java +++ b/src/main/java/com/bbn/hadder/commands/Command.java @@ -8,4 +8,5 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; public interface Command { void executed(String[] args, MessageReceivedEvent event); + String[] labels(); } diff --git a/src/main/java/com/bbn/hadder/commands/TestCommand.java b/src/main/java/com/bbn/hadder/commands/TestCommand.java index 4fd5742..d31867a 100644 --- a/src/main/java/com/bbn/hadder/commands/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/TestCommand.java @@ -11,4 +11,9 @@ public class TestCommand implements Command { public void executed(String[] args, MessageReceivedEvent event) { event.getTextChannel().sendMessage("TEST my friends").queue(); } + + @Override + public String[] labels() { + return new String[]{"test"}; + } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java index 6d1e8f6..c2cd496 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -48,4 +48,9 @@ public class BanCommand implements Command { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue(); } } + + @Override + public String[] labels() { + return new String[]{"ban"}; + } } diff --git a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java index aea13fc..f01a06f 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -16,11 +16,20 @@ public class ShutdownCommand implements Command { if (event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")) { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, builder).setTitle("Shutdown").build()).queue(); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } event.getJDA().shutdown(); - Rethink.disconnect(); } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue(); } } + + @Override + public String[] labels() { + return new String[]{"shutdown"}; + } } diff --git a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java index d72a6c5..86bfbca 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java @@ -36,4 +36,9 @@ public class PrefixCommand implements Command { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.NO_PERMISSION, builder).build()).queue(); } } + + @Override + public String[] labels() { + return new String[]{"prefix"}; + } } diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 902cc90..91c6e67 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -6,16 +6,18 @@ package com.bbn.hadder.core; import com.bbn.hadder.commands.Command; -import java.util.HashMap; +import java.util.ArrayList; public class CommandHandler { - public static HashMap cmdlist = new HashMap<>(); + public static ArrayList cmdlist = new ArrayList<>(); public static void handleCommand(CommandParser.commandContainer cmd) { - if(cmdlist.containsKey(cmd.invoke)) { - cmdlist.get(cmd.invoke).executed(cmd.args, cmd.event); - } + for (Command command : cmdlist) { + for (String label : command.labels()) { + if (label.equals(cmd.invoke)) command.executed(cmd.args, cmd.event); + } + } } }