From 5611d0dedec58b5c4b341b4bf123b77686a026c7 Mon Sep 17 00:00:00 2001 From: Hax Date: Thu, 31 Oct 2019 17:17:35 +0100 Subject: [PATCH] Edited Command System, added Help Command --- src/main/java/com/bbn/hadder/Hadder.java | 3 +- src/main/java/com/bbn/hadder/Rethink.java | 2 +- .../java/com/bbn/hadder/commands/Command.java | 2 + .../bbn/hadder/commands/fun/GifCommand.java | 10 ++++ .../hadder/commands/general/HelpCommand.java | 54 +++++++++++++++++++ .../hadder/commands/general/PingCommand.java | 10 ++++ .../hadder/commands/misc/GitHubCommand.java | 10 ++++ .../commands/moderation/BanCommand.java | 10 ++++ .../commands/moderation/ClearCommand.java | 10 ++++ .../commands/moderation/KickCommand.java | 10 ++++ .../commands/owner/ShutdownCommand.java | 10 ++++ .../{general => owner}/TestCommand.java | 10 ++++ .../commands/settings/PrefixCommand.java | 11 +++- 13 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/general/HelpCommand.java rename src/main/java/com/bbn/hadder/commands/{general => owner}/TestCommand.java (76%) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index ce583e1..3b44930 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -5,6 +5,7 @@ import com.bbn.hadder.commands.fun.GifCommand; import com.bbn.hadder.commands.misc.GitHubCommand; import com.bbn.hadder.commands.moderation.*; import com.bbn.hadder.commands.owner.ShutdownCommand; +import com.bbn.hadder.commands.owner.TestCommand; import com.bbn.hadder.commands.settings.PrefixCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.listener.*; @@ -46,7 +47,7 @@ public class Hadder { builder.setToken(config.getString("Token")); - CommandHandler.cmdlist.addAll(List.of(new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), new GifCommand(), new ClearCommand(), new GitHubCommand())); + CommandHandler.cmdlist.addAll(List.of(new HelpCommand(), new TestCommand(), new BanCommand(), new PrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), new GifCommand(), new ClearCommand(), new GitHubCommand())); builder.addEventListeners( new MentionListener(), diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 5991325..6da164b 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -1,10 +1,10 @@ package com.bbn.hadder; +import com.google.gson.JsonParser; import com.rethinkdb.RethinkDB; import com.rethinkdb.gen.exc.ReqlOpFailedError; import com.rethinkdb.net.Connection; import com.rethinkdb.net.Cursor; -import com.google.gson.JsonParser; import java.util.NoSuchElementException; diff --git a/src/main/java/com/bbn/hadder/commands/Command.java b/src/main/java/com/bbn/hadder/commands/Command.java index fcb46df..d9c5fe7 100644 --- a/src/main/java/com/bbn/hadder/commands/Command.java +++ b/src/main/java/com/bbn/hadder/commands/Command.java @@ -9,4 +9,6 @@ import net.dv8tion.jda.api.events.message.MessageReceivedEvent; public interface Command { void executed(String[] args, MessageReceivedEvent event); String[] labels(); + String description(); + String usage(); } diff --git a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java index cbcd8fe..056fdf4 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java @@ -63,4 +63,14 @@ public class GifCommand implements Command { public String[] labels() { return new String[]{"gif"}; } + + @Override + public String description() { + return "Displays a gif"; + } + + @Override + public String usage() { + return labels()[0]+" "; + } } diff --git a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java new file mode 100644 index 0000000..e1bc72d --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java @@ -0,0 +1,54 @@ +package com.bbn.hadder.commands.general; + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.core.CommandHandler; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +public class HelpCommand implements Command { + @Override + public void executed(String[] args, MessageReceivedEvent event) { + if (args.length==0) { + HashMap> hashMap = new HashMap<>(); + for (Command cmd : CommandHandler.cmdlist) { + if (!hashMap.containsKey(cmd.getClass().getPackageName())) { + ArrayList cmdlist = new ArrayList<>(); + cmdlist.add(cmd); + hashMap.put(cmd.getClass().getPackageName(), cmdlist); + } else { + hashMap.get(cmd.getClass().getPackageName()).add(cmd); + } + } + EmbedBuilder eb = new EmbedBuilder(); + for (Map.Entry> entry : hashMap.entrySet()) { + if (!entry.getKey().endsWith("owner")||(entry.getKey().endsWith("owner")&&(event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < entry.getValue().size(); i++) { + Command cmd = entry.getValue().get(i); + sb.append("`" + cmd.labels()[0] + "`"); + if (i < entry.getValue().size() - 1) sb.append(", "); + } + String[] packagesplit = entry.getKey().split("."); + eb.addField(packagesplit[packagesplit.length - 1], sb.toString(), false); + } + } + new MessageEditor().setDefaultSettings(MessageEditor.Messagetype.INFO, eb); + + } + } + + @Override + public String[] labels() { + return new String[]{"help"}; + } + + @Override + public String description() { + return "Shows every Command or explains a Command"; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/general/PingCommand.java b/src/main/java/com/bbn/hadder/commands/general/PingCommand.java index 516ba98..2b99ef4 100644 --- a/src/main/java/com/bbn/hadder/commands/general/PingCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/PingCommand.java @@ -23,4 +23,14 @@ public class PingCommand implements Command { public String[] labels() { return new String[]{"ping"}; } + + @Override + public String description() { + return "Shows the ping to the discord api"; + } + + @Override + public String usage() { + return labels()[0]; + } } diff --git a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java index 4900887..09e03c1 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java @@ -73,4 +73,14 @@ public class GitHubCommand implements Command { public String[] labels() { return new String[]{"GitHub"}; } + + @Override + public String description() { + return "Shows info of an user"; + } + + @Override + public String usage() { + return labels()[0]+" "; + } } 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 cccdf83..5e6fa0c 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -52,4 +52,14 @@ public class BanCommand implements Command { public String[] labels() { return new String[]{"ban"}; } + + @Override + public String description() { + return "Bans an user"; + } + + @Override + public String usage() { + return labels()[0]+" <@User>"; + } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java index 58059e7..70336e0 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -59,4 +59,14 @@ public class ClearCommand implements Command { public String[] labels() { return new String[]{"clear"}; } + + @Override + public String description() { + return "Clears messages"; + } + + @Override + public String usage() { + return labels()[0]+" "; + } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java index 00bfed8..5b21f10 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java @@ -49,4 +49,14 @@ public class KickCommand implements Command { public String[] labels() { return new String[]{"kick"}; } + + @Override + public String description() { + return "Kicks an user"; + } + + @Override + public String usage() { + return labels()[0]+" <@User>"; + } } 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 926ad15..39f4ee5 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -29,4 +29,14 @@ public class ShutdownCommand implements Command { public String[] labels() { return new String[]{"shutdown"}; } + + @Override + public String description() { + return "Shuts the Bot down"; + } + + @Override + public String usage() { + return labels()[0]; + } } diff --git a/src/main/java/com/bbn/hadder/commands/general/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java similarity index 76% rename from src/main/java/com/bbn/hadder/commands/general/TestCommand.java rename to src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index b4ca20d..306763c 100644 --- a/src/main/java/com/bbn/hadder/commands/general/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -21,4 +21,14 @@ public class TestCommand implements Command { public String[] labels() { return new String[]{"test"}; } + + @Override + public String description() { + return "Sub to bbn"; + } + + @Override + public String usage() { + return labels()[0]; + } } 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 07fc48e..4df2852 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java @@ -8,7 +8,6 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -36,4 +35,14 @@ public class PrefixCommand implements Command { public String[] labels() { return new String[]{"prefix"}; } + + @Override + public String description() { + return "Changes the prefix"; + } + + @Override + public String usage() { + return labels()[0]+" "; + } }