From 47be9839960f3b30e143d20ec0a50a08afb26b7a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 17:40:45 +0100 Subject: [PATCH 01/26] ... --- src/main/resources/Translations/Translations_en.properties | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index d3ce2ba..364e838 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -2,10 +2,6 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder searchterm = From ac9215907867b0bd3ab358e31e170706720044b3 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 17:46:55 +0100 Subject: [PATCH 02/26] starboard yk --- src/main/java/com/bbn/hadder/Hadder.java | 2 +- .../{SetStarBoardCommand.java => StarBoardCommand.java} | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) rename src/main/java/com/bbn/hadder/commands/moderation/{SetStarBoardCommand.java => StarBoardCommand.java} (92%) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index bf30069..62cf872 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -87,7 +87,7 @@ public class Hadder { new RegionChangeCommand(), new AboutCommand(), new LanguageCommand(), - new SetStarBoardCommand()), config, helpCommand); + new StarBoardCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java similarity index 92% rename from src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java rename to src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java index bfd32c6..fbabb35 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java @@ -3,10 +3,9 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; -public class SetStarBoardCommand implements Command { +public class StarBoardCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (event.getMessage().getMentionedChannels().size()==1) { @@ -35,7 +34,7 @@ public class SetStarBoardCommand implements Command { @Override public String[] labels() { - return new String[]{"setstarboard"}; + return new String[]{"starboard"}; } @Override From deb59caad269d6e6d105926b15a2b344ae2a3c9f Mon Sep 17 00:00:00 2001 From: Hax Date: Wed, 18 Dec 2019 18:05:14 +0100 Subject: [PATCH 03/26] what --- .../java/com/bbn/hadder/commands/Perm.java | 23 +++++++++++++++++++ .../java/com/bbn/hadder/commands/Perms.java | 9 ++++++++ .../hadder/commands/owner/TestCommand.java | 4 ++++ 3 files changed, 36 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/commands/Perm.java create mode 100644 src/main/java/com/bbn/hadder/commands/Perms.java diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java new file mode 100644 index 0000000..faee03a --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -0,0 +1,23 @@ +/* + * @author Hax / Hax6775 / Schlauer_Hax + */ + +package com.bbn.hadder.commands; + +public enum Perm { + + BOT_OWNER() { + public boolean check() { + return true; + } + }, + MANAGE_MESSAGES, + EMBED_MESSAGES, + BAN_MEMBERS, + KICK_MEMBERS, + MANAGE_SERVER, + MANAGE_ROLES, + CHANGE_NICKNAME, + ADMIN_PERMISSIONS + +} diff --git a/src/main/java/com/bbn/hadder/commands/Perms.java b/src/main/java/com/bbn/hadder/commands/Perms.java new file mode 100644 index 0000000..b2df183 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/Perms.java @@ -0,0 +1,9 @@ +/* + * @author Hax / Hax6775 / Schlauer_Hax + */ + +package com.bbn.hadder.commands; + +public @interface Perms { + Perm[] perms() default {}; +} diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 0e8133b..54344f5 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -2,13 +2,17 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perms; import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor.MessageType; +import static com.bbn.hadder.commands.Perm.BOT_OWNER; + /* * @author Skidder / GregTCLTK */ +@Perms(perms = BOT_OWNER) public class TestCommand implements Command { @Override From a2f609e80ee7608313063204d9af6e256499868c Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 18:05:35 +0100 Subject: [PATCH 04/26] d --- pom.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pom.xml b/pom.xml index 88c3108..d8f019e 100644 --- a/pom.xml +++ b/pom.xml @@ -16,12 +16,6 @@ - - junit - junit - 4.12 - test - net.dv8tion JDA @@ -89,10 +83,6 @@ maven-resources-plugin 3.1.0 - - maven-compiler-plugin - 3.8.1 - maven-surefire-plugin 2.22.2 From ab6edbf20cc3b84fc75706fea853bfaa8eae184d Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 18:17:18 +0100 Subject: [PATCH 05/26] Guild Leave error msg --- .../commands/owner/GuildLeaveCommand.java | 18 +++++++++++------- .../Translations/Translations_en.properties | 2 ++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index 8b2a21e..13cb60d 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -16,13 +16,17 @@ public class GuildLeaveCommand implements Command { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (args.length > 0) { Guild guild = event.getJDA().getGuildById(args[0]); - guild.leave().queue(); - event.getTextChannel() - .sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", - "", "commands.owner.guildleave.success.description", guild.getName()) - .build()) - .queue(); + try { + guild.leave().queue(); + event.getTextChannel() + .sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", + "", "commands.owner.guildleave.success.description", guild.getName()) + .build()) + .queue(); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue(); + } } else { event.getHelpCommand().sendHelp(this, event); } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 36eb9bf..dfb232c 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -202,6 +202,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown From dde3848d373b87ef52d7431e59ad8ce40a44bf8f Mon Sep 17 00:00:00 2001 From: Hax Date: Wed, 18 Dec 2019 18:21:01 +0100 Subject: [PATCH 06/26] Introducing the Permission System --- .../java/com/bbn/hadder/commands/Perm.java | 64 ++++++++++++++++--- .../java/com/bbn/hadder/commands/Perms.java | 2 +- .../hadder/commands/owner/TestCommand.java | 3 +- .../com/bbn/hadder/core/CommandHandler.java | 17 +++-- 4 files changed, 69 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java index faee03a..524f726 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -4,20 +4,64 @@ package com.bbn.hadder.commands; +import net.dv8tion.jda.api.Permission; + public enum Perm { BOT_OWNER() { - public boolean check() { - return true; + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getConfig().getOwners().contains(commandEvent.getAuthor().getId()); } }, - MANAGE_MESSAGES, - EMBED_MESSAGES, - BAN_MEMBERS, - KICK_MEMBERS, - MANAGE_SERVER, - MANAGE_ROLES, - CHANGE_NICKNAME, - ADMIN_PERMISSIONS + MANAGE_MESSAGES { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.MESSAGE_MANAGE); + } + }, + EMBED_MESSAGES { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS); + } + }, + BAN_MEMBERS { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.BAN_MEMBERS); + } + }, + KICK_MEMBERS { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.KICK_MEMBERS); + } + }, + MANAGE_SERVER { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.MANAGE_SERVER); + } + }, + MANAGE_ROLES { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.MANAGE_ROLES); + } + }, + CHANGE_NICKNAME { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.NICKNAME_CHANGE); + } + }, + ADMIN_PERMISSIONS { + @Override + public boolean check(CommandEvent commandEvent) { + return commandEvent.getMember().hasPermission(Permission.ADMINISTRATOR); + } + }; + public abstract boolean check(CommandEvent commandEvent); } diff --git a/src/main/java/com/bbn/hadder/commands/Perms.java b/src/main/java/com/bbn/hadder/commands/Perms.java index b2df183..2cc052e 100644 --- a/src/main/java/com/bbn/hadder/commands/Perms.java +++ b/src/main/java/com/bbn/hadder/commands/Perms.java @@ -5,5 +5,5 @@ package com.bbn.hadder.commands; public @interface Perms { - Perm[] perms() default {}; + Perm[] value() default {}; } diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 54344f5..35a1427 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -2,6 +2,7 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor.MessageType; @@ -12,7 +13,7 @@ import static com.bbn.hadder.commands.Perm.BOT_OWNER; * @author Skidder / GregTCLTK */ -@Perms(perms = BOT_OWNER) +@Perms(Perm.BOT_OWNER) public class TestCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index fef5f60..967d9c3 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -3,6 +3,8 @@ package com.bbn.hadder.core; import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; +import com.bbn.hadder.commands.Perms; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -30,11 +32,16 @@ public class CommandHandler { .replaceFirst(prefix, "").replaceFirst(invoke, ""); if (argString.startsWith(" ")) argString = argString.replaceFirst(" ", ""); String[] args = argString.split(" "); - if (args.length>0&&args[0].equals("")) args = new String[0]; - cmd.executed(args, - new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, - config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())) - ); + if (args.length > 0 && args[0].equals("")) args = new String[0]; + + CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, + config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); + + for (Perm perm : ((Perms) cmd).value()) { + if (!perm.check(commandEvent)) return; + } + + cmd.executed(args, commandEvent); return; } } From f32fc9b4bdac07bc7e2f00e343cbd8accb759966 Mon Sep 17 00:00:00 2001 From: Hax Date: Wed, 18 Dec 2019 18:50:48 +0100 Subject: [PATCH 07/26] Just some stuff --- .../java/com/bbn/hadder/commands/Perm.java | 2 +- .../java/com/bbn/hadder/commands/Perms.java | 4 + .../hadder/commands/owner/EvalCommand.java | 121 +++++++++--------- .../com/bbn/hadder/core/CommandHandler.java | 12 +- 4 files changed, 74 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java index 524f726..ede807c 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -11,7 +11,7 @@ public enum Perm { BOT_OWNER() { @Override public boolean check(CommandEvent commandEvent) { - return commandEvent.getConfig().getOwners().contains(commandEvent.getAuthor().getId()); + return commandEvent.getConfig().getOwners().contains(commandEvent.getAuthor().getIdLong()); } }, MANAGE_MESSAGES { diff --git a/src/main/java/com/bbn/hadder/commands/Perms.java b/src/main/java/com/bbn/hadder/commands/Perms.java index 2cc052e..c834df4 100644 --- a/src/main/java/com/bbn/hadder/commands/Perms.java +++ b/src/main/java/com/bbn/hadder/commands/Perms.java @@ -4,6 +4,10 @@ package com.bbn.hadder.commands; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) public @interface Perms { Perm[] value() default {}; } diff --git a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java index 06b73eb..c44cbf2 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -7,6 +7,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.Hadder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; +import com.bbn.hadder.commands.Perms; import com.bbn.hadder.utils.MessageEditor; import javax.script.ScriptEngine; @@ -16,84 +18,79 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +@Perms(Perm.BOT_OWNER) public class EvalCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (args.length > 0) { - ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); + if (args.length > 0) { + ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); + + try { + engine.eval("var imports = new JavaImporter(java.io, java.lang, java.util);"); + } catch (ScriptException ex) { + ex.printStackTrace(); + } + + engine.put("msg", event.getMessage()); + engine.put("shardmanager", Hadder.shardManager); + engine.put("rethink", event.getRethink()); + engine.put("event", event); + engine.put("jda", event.getJDA()); + engine.put("message", event.getMessage()); + engine.put("guild", event.getGuild()); + engine.put("channel", event.getChannel()); + engine.put("author", event.getAuthor()); + engine.put("member", event.getMember()); + engine.put("self", event.getGuild().getSelfMember()); + + ScheduledExecutorService service = Executors.newScheduledThreadPool(1); + + service.schedule(() -> { + + long startExec = System.currentTimeMillis(); + Object out; try { - engine.eval("var imports = new JavaImporter(java.io, java.lang, java.util);"); - } catch (ScriptException ex) { - ex.printStackTrace(); + String script = ""; + for (int i = 0; i < args.length; i++) { + args[i] = args[i].replace("```java", "").replace("```", ""); + script += i == args.length - 1 ? args[i] : args[i] + " "; + } + out = engine.eval(script); + + event.getTextChannel().sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "") + .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.input"), + "```java\n\n" + script + "```", false) + .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.output"), + "```java\n\n" + out.toString() + "```", false) + .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"), + System.currentTimeMillis() - startExec + " milliseconds", false) + .build()).queue(); + } catch (Exception ex) { + event.getTextChannel().sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "") + .addField(event.getMessageEditor().getTerm("error"), + "```java\n\n" + ex.getMessage() + "```", false) + .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"), + System.currentTimeMillis() - startExec + " milliseconds", false) + .build()).queue(); + } - engine.put("msg", event.getMessage()); - engine.put("shardmanager", Hadder.shardManager); - engine.put("rethink", event.getRethink()); - engine.put("event", event); - engine.put("jda", event.getJDA()); - engine.put("message", event.getMessage()); - engine.put("guild", event.getGuild()); - engine.put("channel", event.getChannel()); - engine.put("author", event.getAuthor()); - engine.put("member", event.getMember()); - engine.put("self", event.getGuild().getSelfMember()); + service.shutdownNow(); - ScheduledExecutorService service = Executors.newScheduledThreadPool(1); + }, 0, TimeUnit.MILLISECONDS); - service.schedule(() -> { - - long startExec = System.currentTimeMillis(); - Object out; - - try { - String script = ""; - for (int i = 0; i < args.length; i++) { - args[i] = args[i].replace("```java", "").replace("```", ""); - script += i == args.length - 1 ? args[i] : args[i] + " "; - } - out = engine.eval(script); - - event.getTextChannel().sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "") - .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.input"), - "```java\n\n" + script + "```", false) - .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.output"), - "```java\n\n" + out.toString() + "```", false) - .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"), - System.currentTimeMillis() - startExec + " milliseconds", false) - .build()).queue(); - } catch (Exception ex) { - event.getTextChannel().sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "") - .addField(event.getMessageEditor().getTerm("error"), - "```java\n\n" + ex.getMessage() + "```", false) - .addField(event.getMessageEditor().getTerm("commands.owner.eval.success.timing"), - System.currentTimeMillis() - startExec + " milliseconds", false) - .build()).queue(); - - } - - service.shutdownNow(); - - }, 0, TimeUnit.MILLISECONDS); - - } else { - event.getHelpCommand().sendHelp(this, event); - } } else { - event.getTextChannel() - .sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) - .queue(); + event.getHelpCommand().sendHelp(this, event); } } @Override public String[] labels() { - return new String[] { "eval" }; + return new String[]{"eval"}; } @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 967d9c3..494592a 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -9,6 +9,7 @@ import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import java.util.Arrays; import java.util.List; public class CommandHandler { @@ -37,8 +38,15 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); - for (Perm perm : ((Perms) cmd).value()) { - if (!perm.check(commandEvent)) return; + if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { + if (!perm.check(commandEvent)) { + commandEvent.getTextChannel() + .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) + .queue(); + return; + } + } } cmd.executed(args, commandEvent); From ad6a6487c95c7ec6e7957e2e654da58e76af56a5 Mon Sep 17 00:00:00 2001 From: Hax Date: Wed, 18 Dec 2019 18:55:26 +0100 Subject: [PATCH 08/26] d --- .../commands/owner/GuildLeaveCommand.java | 30 +++++++++---------- .../hadder/commands/owner/RebootCommand.java | 10 +++---- .../commands/owner/ShutdownCommand.java | 15 +++++----- .../com/bbn/hadder/core/CommandHandler.java | 2 +- 4 files changed, 26 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index 8b2a21e..0a2c7a5 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -6,36 +6,34 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; +import com.bbn.hadder.commands.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.Guild; +@Perms(Perm.BOT_OWNER) public class GuildLeaveCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (args.length > 0) { - Guild guild = event.getJDA().getGuildById(args[0]); - guild.leave().queue(); - event.getTextChannel() - .sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", - "", "commands.owner.guildleave.success.description", guild.getName()) - .build()) - .queue(); - } else { - event.getHelpCommand().sendHelp(this, event); - } - } else { + if (args.length > 0) { + Guild guild = event.getJDA().getGuildById(args[0]); + guild.leave().queue(); event.getTextChannel() - .sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) + .sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", + "", "commands.owner.guildleave.success.description", guild.getName()) + .build()) .queue(); + } else { + event.getHelpCommand().sendHelp(this, event); } + } @Override public String[] labels() { - return new String[] { "guildleave" }; + return new String[]{"guildleave"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 4ce2138..5059e4f 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -6,18 +6,16 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; +import com.bbn.hadder.commands.Perms; import com.bbn.hadder.utils.MessageEditor; - +@Perms(Perm.BOT_OWNER) public class RebootCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - Runtime.getRuntime().exit(69); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); - } + Runtime.getRuntime().exit(69); } @Override 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 4f9307a..56bac44 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -6,20 +6,19 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; +import com.bbn.hadder.commands.Perms; import com.bbn.hadder.utils.MessageEditor; +@Perms(Perm.BOT_OWNER) public class ShutdownCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue(); - event.getJDA().getShardManager().shutdown(); - System.out.println("Bot shut down via Command..."); - Runtime.getRuntime().exit(69); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); - } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue(); + event.getJDA().getShardManager().shutdown(); + System.out.println("Bot shut down via Command..."); + Runtime.getRuntime().exit(69); } @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 494592a..0949f5d 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -38,7 +38,7 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); - if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { commandEvent.getTextChannel() From 774bb8879747e1a5f9518b7e1ff1f56363ad476a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 19:23:10 +0100 Subject: [PATCH 09/26] Removed three unused imports --- src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java | 1 - src/main/java/com/bbn/hadder/commands/owner/TestCommand.java | 3 --- src/main/java/com/bbn/hadder/listener/StarboardListener.java | 1 - 3 files changed, 5 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 5059e4f..2312a5d 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -8,7 +8,6 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; -import com.bbn.hadder.utils.MessageEditor; @Perms(Perm.BOT_OWNER) public class RebootCommand implements Command { diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 35a1427..0c550bf 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -4,11 +4,8 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; -import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor.MessageType; -import static com.bbn.hadder.commands.Perm.BOT_OWNER; - /* * @author Skidder / GregTCLTK */ diff --git a/src/main/java/com/bbn/hadder/listener/StarboardListener.java b/src/main/java/com/bbn/hadder/listener/StarboardListener.java index f5438a7..091bc28 100644 --- a/src/main/java/com/bbn/hadder/listener/StarboardListener.java +++ b/src/main/java/com/bbn/hadder/listener/StarboardListener.java @@ -9,7 +9,6 @@ import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import javax.annotation.Nonnull; -import java.time.format.DateTimeFormatter; public class StarboardListener extends ListenerAdapter { From 251c0a0d8183e7be6669d451b3ea3cd84656b0d4 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 19:56:56 +0100 Subject: [PATCH 10/26] ... --- pom.xml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index d8f019e..450bede 100644 --- a/pom.xml +++ b/pom.xml @@ -83,6 +83,10 @@ maven-resources-plugin 3.1.0 + + maven-compiler-plugin + 3.8.1 + maven-surefire-plugin 2.22.2 @@ -127,20 +131,20 @@ - maven-assembly-plugin - - Hadder-Build - - - com.bbn.hadder.Hadder - - - - jar-with-dependencies - - false - - + maven-assembly-plugin + + Hadder-Build + + + com.bbn.hadder.Hadder + + + + jar-with-dependencies + + false + + From 7482c34b4719c76fadf842d10daba47f713c18b2 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 20:00:02 +0100 Subject: [PATCH 11/26] oof --- .../bbn/hadder/commands/owner/GuildLeaveCommand.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index 32c392a..b853dfc 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -33,17 +33,7 @@ public class GuildLeaveCommand implements Command { } else { event.getHelpCommand().sendHelp(this, event); } - } else { - event.getTextChannel() - .sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", - "", "commands.owner.guildleave.success.description", guild.getName()) - .build()) - .queue(); - } else { - event.getHelpCommand().sendHelp(this, event); } - } @Override From 3e1de81eb82aab656f5770c4f69ea52f0d2e1833 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 18 Dec 2019 20:11:54 +0100 Subject: [PATCH 12/26] ;) --- .../java/com/bbn/hadder/commands/Perm.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java index ede807c..53717e5 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -10,58 +10,58 @@ public enum Perm { BOT_OWNER() { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getConfig().getOwners().contains(commandEvent.getAuthor().getIdLong()); + public boolean check(CommandEvent event) { + return event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, MANAGE_MESSAGES { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MESSAGE_MANAGE); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MESSAGE_MANAGE); } }, EMBED_MESSAGES { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS); } }, BAN_MEMBERS { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.BAN_MEMBERS); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.BAN_MEMBERS); } }, KICK_MEMBERS { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.KICK_MEMBERS); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.KICK_MEMBERS); } }, MANAGE_SERVER { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MANAGE_SERVER); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MANAGE_SERVER); } }, MANAGE_ROLES { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.MANAGE_ROLES); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MANAGE_ROLES); } }, CHANGE_NICKNAME { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.NICKNAME_CHANGE); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.NICKNAME_CHANGE); } }, ADMIN_PERMISSIONS { @Override - public boolean check(CommandEvent commandEvent) { - return commandEvent.getMember().hasPermission(Permission.ADMINISTRATOR); + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.ADMINISTRATOR); } }; - public abstract boolean check(CommandEvent commandEvent); + public abstract boolean check(CommandEvent event); } From 931e16c2dae29dd448148f862ef4100e192e33d6 Mon Sep 17 00:00:00 2001 From: Hax Date: Wed, 18 Dec 2019 20:20:33 +0100 Subject: [PATCH 13/26] Fixed Perm error, Finished Starboard --- src/main/java/com/bbn/hadder/Hadder.java | 2 +- src/main/java/com/bbn/hadder/Rethink.java | 14 +++- ...oardCommand.java => StarBoardCommand.java} | 6 +- .../com/bbn/hadder/core/CommandHandler.java | 17 ++-- .../hadder/listener/StarboardListener.java | 79 +++++++++++++------ 5 files changed, 82 insertions(+), 36 deletions(-) rename src/main/java/com/bbn/hadder/commands/moderation/{SetStarBoardCommand.java => StarBoardCommand.java} (89%) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index bf30069..62cf872 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -87,7 +87,7 @@ public class Hadder { new RegionChangeCommand(), new AboutCommand(), new LanguageCommand(), - new SetStarBoardCommand()), config, helpCommand); + new StarBoardCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 9d3ce64..f501971 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -81,6 +81,10 @@ public class Rethink { return out; } + public void remove(String table, String where, String wherevalue) { + r.table(table).filter(row -> row.g(where.toLowerCase()).eq(wherevalue)).delete().run(conn); + } + public void setup() { try { r.dbCreate("Hadder").run(conn); @@ -156,15 +160,19 @@ public class Rethink { } public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) { - this.insert("stars", r.hashMap("msg", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid)); + this.insert("stars", r.hashMap("id", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid)); } public String getStarboardMessage(String messageid) { - return (String) this.get("stars", "msg", messageid, "starboardmsg"); + return (String) this.get("stars", "id", messageid, "starboardmsg"); + } + + public void removeStarboardMessage(String messageid) { + this.remove("stars", "id", messageid); } public boolean hasStarboardMessage(String messageid) { - return this.get("stars", "msg", messageid, "guild") != null; + return this.get("stars", "id", messageid, "guild") != null; } public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { diff --git a/src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java similarity index 89% rename from src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java rename to src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java index bfd32c6..c8fa675 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/SetStarBoardCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java @@ -6,7 +6,7 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.TextChannel; -public class SetStarBoardCommand implements Command { +public class StarBoardCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (event.getMessage().getMentionedChannels().size()==1) { @@ -30,12 +30,14 @@ public class SetStarBoardCommand implements Command { if (args.length==2) { event.getRethink().setNeededstars(args[1], event.getGuild().getId()); + } else { + event.getRethink().setNeededstars("4", event.getGuild().getId()); } } @Override public String[] labels() { - return new String[]{"setstarboard"}; + return new String[]{"starboard"}; } @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 0949f5d..1f1be07 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -37,14 +37,15 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); - - if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { - for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { - if (!perm.check(commandEvent)) { - commandEvent.getTextChannel() - .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) - .queue(); - return; + if (cmd.getClass().getAnnotations().length>0) { + if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { + if (!perm.check(commandEvent)) { + commandEvent.getTextChannel() + .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) + .queue(); + return; + } } } } diff --git a/src/main/java/com/bbn/hadder/listener/StarboardListener.java b/src/main/java/com/bbn/hadder/listener/StarboardListener.java index f5438a7..0a45dde 100644 --- a/src/main/java/com/bbn/hadder/listener/StarboardListener.java +++ b/src/main/java/com/bbn/hadder/listener/StarboardListener.java @@ -3,6 +3,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.MessageBuilder; +import net.dv8tion.jda.api.entities.MessageReaction; import net.dv8tion.jda.api.events.message.react.GenericMessageReactionEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; @@ -33,34 +34,68 @@ public class StarboardListener extends ListenerAdapter { if (event.getReaction().getReactionEmote().getName().equals("⭐")) { if (!rethink.hasStarboardMessage(event.getMessageId())) { if (rethink.hasStarboardChannel(event.getGuild().getId())) { - event.getChannel().retrieveMessageById(event.getMessageId()).queue(msg -> { - event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) - .sendMessage(new MessageBuilder() - .setContent("⭐1" + " " + event.getTextChannel().getAsMention()) - .setEmbed( - new EmbedBuilder() - .setAuthor(event.getUser().getAsTag()) - .setDescription(msg.getContentRaw()) - .setTimestamp(msg.getTimeCreated()).build()).build()).queue( - starboardmsg -> { - rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId()); + + event.getTextChannel().retrieveMessageById(event.getMessageId()).queue( + msg -> { + Integer stars = 0; + for (MessageReaction reaction : msg.getReactions()) { + if (reaction.getReactionEmote().getName().equals("⭐")) { + stars = reaction.getCount(); + } } - ); - }); + + if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= stars) { + event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) + .sendMessage(new MessageBuilder() + .setContent("⭐ 1" + " " + event.getTextChannel().getAsMention()) + .setEmbed( + new EmbedBuilder() + .setAuthor(msg.getAuthor().getAsTag()) + .setDescription(msg.getContentRaw()) + .setTimestamp(msg.getTimeCreated()).build()).build()).queue( + starboardmsg -> { + rethink.insertStarboardMessage(msg.getId(), event.getGuild().getId(), starboardmsg.getId()); + } + ); + } + } + ); + } } else { - event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) - .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue( + + event.getTextChannel().retrieveMessageById(event.getMessageId()).queue( msg -> { - msg.editMessage(new MessageBuilder() - .setContent("⭐" + event.getReaction().getCount() + " " + event.getTextChannel().getAsMention()) - .setEmbed( - new EmbedBuilder() - .setAuthor(event.getUser().getAsTag()) - .setDescription(msg.getContentRaw()) - .setTimestamp(msg.getTimeCreated()).build()).build()).queue(); + Integer stars = 0; + for (MessageReaction reaction : msg.getReactions()) { + if (reaction.getReactionEmote().getName().equals("⭐")) { + stars = reaction.getCount(); + } + } + + Integer finalStars = stars; + event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) + .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue( + msg2 -> { + + if (Integer.parseInt(rethink.getNeededstars(event.getGuild().getId())) <= finalStars) { + msg2.editMessage(new MessageBuilder() + .setContent("⭐ " + finalStars + " " + event.getTextChannel().getAsMention()) + .setEmbed( + new EmbedBuilder() + .setAuthor(msg.getAuthor().getAsTag()) + .setDescription(msg.getContentRaw()) + .setTimestamp(msg.getTimeCreated()).build()).build()).queue(); + } else { + msg2.delete().queue(); + rethink.removeStarboardMessage(msg.getId()); + } + } + ); + } ); + } } } From cc710b406d33b9e3e4c2560c2e771dfeaa31ff67 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 19 Dec 2019 19:03:53 +0100 Subject: [PATCH 14/26] ^^ --- src/main/java/com/bbn/hadder/commands/Perm.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java index 53717e5..75579d1 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -56,7 +56,7 @@ public enum Perm { return event.getMember().hasPermission(Permission.NICKNAME_CHANGE); } }, - ADMIN_PERMISSIONS { + ADMINISTRATOR { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.ADMINISTRATOR); From 860d035a633e79249e5b60320ec983745fd0e026 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 19 Dec 2019 19:30:51 +0100 Subject: [PATCH 15/26] Yeah Clyde Command --- src/main/java/com/bbn/hadder/Hadder.java | 1 + .../bbn/hadder/commands/fun/ClydeCommand.java | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 62cf872..8863d07 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -87,6 +87,7 @@ public class Hadder { new RegionChangeCommand(), new AboutCommand(), new LanguageCommand(), + new ClydeCommand(), new StarBoardCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java new file mode 100644 index 0000000..455282b --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -0,0 +1,34 @@ +package com.bbn.hadder.commands.fun; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.commands.Perm; +import com.bbn.hadder.commands.Perms; + +@Perms(Perm.MANAGE_SERVER) +public class ClydeCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + } + + @Override + public String[] labels() { + return new String[]{"clyde"}; + } + + @Override + public String description() { + return ""; + } + + @Override + public String usage() { + return ""; + } +} From e7afeacce7fbe86cb770680ff6a7fb812e5ba67e Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 19 Dec 2019 21:05:25 +0100 Subject: [PATCH 16/26] Top confidential Clyde command --- example-config.json | 3 +- .../bbn/hadder/commands/fun/ClydeCommand.java | 45 ++++++++++++++++++- src/main/java/com/bbn/hadder/core/Config.java | 5 +++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/example-config.json b/example-config.json index f201256..437ec97 100644 --- a/example-config.json +++ b/example-config.json @@ -20,5 +20,6 @@ "DiscordBotReviews": "", "DiscordBots": "", "BotListSpace": "" - } + }, + "Clyde": "" } diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java index 455282b..b0af7bd 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -4,16 +4,59 @@ package com.bbn.hadder.commands.fun; * @author Skidder / GregTCLTK */ +import club.minnced.discord.webhook.WebhookClient; +import club.minnced.discord.webhook.WebhookClientBuilder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.Perm; import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Icon; +import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.Webhook; + +import java.io.InputStream; +import java.net.URL; +import java.util.concurrent.TimeUnit; @Perms(Perm.MANAGE_SERVER) public class ClydeCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { + if (args.length > 0) { + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { + TextChannel channel = event.getMessage().getTextChannel(); + String content = event.getMessage().getContentRaw().replace(event.getRethink().getGuildPrefix(event.getGuild().getId()), "").replace(event.getRethink().getUserPrefix(event.getAuthor().getId()), "").replace("clyde", ""); + + Webhook webhook = channel.createWebhook(event.getConfig().getClydeName()).complete(); + try { + InputStream s = new URL("https://discordapp.com/assets/f78426a064bc9dd24847519259bc42af.png").openStream(); + webhook.getManager().setAvatar(Icon.from(s)).queue(); + + WebhookClientBuilder builder = new WebhookClientBuilder(webhook.getUrl()); + + WebhookClient client = builder.build(); + try { + TimeUnit.SECONDS.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + client.send(content); + } catch (Exception e) { + e.printStackTrace(); + } + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + webhook.delete().queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else event.getHelpCommand().sendHelp(this, event); } @@ -24,7 +67,7 @@ public class ClydeCommand implements Command { @Override public String description() { - return ""; + return "Send a message as a Clyde webhook."; } @Override diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java index 7abbf78..fce590e 100644 --- a/src/main/java/com/bbn/hadder/core/Config.java +++ b/src/main/java/com/bbn/hadder/core/Config.java @@ -63,6 +63,7 @@ public class Config { .value("DiscordExtremeList").value(null) .value("DiscordBotReviews").value(null) .value("DiscordBots").value(null) + .value("BotListSpace").value(null) .endObject().endObject().toString(); } @@ -141,4 +142,8 @@ public class Config { public String getBotListSpaceToken() { return config.getJSONObject("Tokens").getString("BotListSpace"); } + + public String getClydeName() { + return config.getString("Clyde"); + } } From 08562562a5f8ab18198f0b5f1e7a06dd499a8f5a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 19 Dec 2019 21:10:15 +0100 Subject: [PATCH 17/26] Perms stuff yk --- src/main/java/com/bbn/hadder/commands/Perm.java | 5 +++++ src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java index 75579d1..fae5da0 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -61,6 +61,11 @@ public enum Perm { public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.ADMINISTRATOR); } + }, + MANAGE_WEBHOOKS { + @Override + public boolean check(CommandEvent event) { + return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS); } }; public abstract boolean check(CommandEvent event); diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java index b0af7bd..f036625 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -20,7 +20,7 @@ import java.io.InputStream; import java.net.URL; import java.util.concurrent.TimeUnit; -@Perms(Perm.MANAGE_SERVER) +@Perms(Perm.MANAGE_WEBHOOKS) public class ClydeCommand implements Command { @Override From 5be162fd1a8e3d97b2d9fd235a0e8d2ca60cba26 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 20 Dec 2019 13:06:30 +0100 Subject: [PATCH 18/26] Clyde i18n --- src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java | 4 ++-- src/main/resources/Translations/Translations_en.properties | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java index f036625..0db6507 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -67,11 +67,11 @@ public class ClydeCommand implements Command { @Override public String description() { - return "Send a message as a Clyde webhook."; + return "commands.fun.clyde.help.description"; } @Override public String usage() { - return ""; + return "content"; } } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index dfb232c..e9a7e23 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -13,6 +13,7 @@ vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -25,6 +26,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. From d6e78b6a45d3de1209da779f52a1cd53d8fa74c6 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 20 Dec 2019 13:11:28 +0100 Subject: [PATCH 19/26] Prefix --- src/main/java/com/bbn/hadder/Hadder.java | 4 ++-- .../{GuildPrefixCommand.java => PrefixCommand.java} | 6 +++--- .../settings/{PrefixCommand.java => UserPrefixCommand.java} | 6 +++--- src/main/resources/Translations/Translations_en.properties | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) rename src/main/java/com/bbn/hadder/commands/moderation/{GuildPrefixCommand.java => PrefixCommand.java} (93%) rename src/main/java/com/bbn/hadder/commands/settings/{PrefixCommand.java => UserPrefixCommand.java} (89%) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 8863d07..f96792f 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -47,7 +47,7 @@ public class Hadder { helpCommand, new TestCommand(), new BanCommand(), - new PrefixCommand(), + new UserPrefixCommand(), new ShutdownCommand(), new KickCommand(), new PingCommand(), @@ -58,7 +58,7 @@ public class Hadder { new EqualsCommand(), new InviteCommand(), new NickCommand(), - new GuildPrefixCommand(), + new PrefixCommand(), new BlowjobCommand(), new PornCommand(), new AnalCommand(), diff --git a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java similarity index 93% rename from src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java rename to src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java index 35bfb2b..01a7d9a 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java @@ -5,7 +5,7 @@ import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; -public class GuildPrefixCommand implements Command { +public class PrefixCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { @@ -38,7 +38,7 @@ public class GuildPrefixCommand implements Command { @Override public String[] labels() { - return new String[]{"guildprefix"}; + return new String[]{"prefix"}; } @Override @@ -48,6 +48,6 @@ public class GuildPrefixCommand implements Command { @Override public String usage() { - return "guildprefix"; + return "prefix"; } } diff --git a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java similarity index 89% rename from src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java rename to src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java index 4bb58af..bf360fe 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java @@ -8,7 +8,7 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -public class PrefixCommand implements Command { +public class UserPrefixCommand implements Command { public void executed(String[] args, CommandEvent event) { if (args.length == 1) { @@ -26,7 +26,7 @@ public class PrefixCommand implements Command { @Override public String[] labels() { - return new String[] { "prefix" }; + return new String[] { "userprefix" }; } @Override @@ -36,6 +36,6 @@ public class PrefixCommand implements Command { @Override public String usage() { - return "prefix"; + return "userprefix"; } } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index e9a7e23..717588b 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -7,8 +7,8 @@ Hadder = Hadder searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = From 04716fbc0745fea707db5c928e3961d562dd2b22 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 01:05:29 +0100 Subject: [PATCH 20/26] yk --- .../java/com/bbn/hadder/commands/Perm.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/commands/Perm.java index fae5da0..e8b0a09 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/commands/Perm.java @@ -13,49 +13,49 @@ public enum Perm { public boolean check(CommandEvent event) { return event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } - }, + }, MANAGE_MESSAGES { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.MESSAGE_MANAGE); } - }, + }, EMBED_MESSAGES { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS); } - }, + }, BAN_MEMBERS { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.BAN_MEMBERS); } - }, + }, KICK_MEMBERS { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.KICK_MEMBERS); } - }, + }, MANAGE_SERVER { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.MANAGE_SERVER); } - }, + }, MANAGE_ROLES { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.MANAGE_ROLES); } - }, + }, CHANGE_NICKNAME { @Override public boolean check(CommandEvent event) { return event.getMember().hasPermission(Permission.NICKNAME_CHANGE); } - }, + }, ADMINISTRATOR { @Override public boolean check(CommandEvent event) { @@ -65,7 +65,8 @@ public enum Perm { MANAGE_WEBHOOKS { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS); } + return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS); + } }; public abstract boolean check(CommandEvent event); From 5a6316f296e08c8b693a61631f5731bdcfa0b0fe Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 01:07:16 +0100 Subject: [PATCH 21/26] 2 new badges --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 025df75..aeba086 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ Hadder Discord is a multi-purpose Discord bot with 100% uptime. [![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade) [![CodeFactor](https://www.codefactor.io/repository/github/bigbotnetwork/hadder/badge)](https://www.codefactor.io/repository/github/bigbotnetwork/hadder) [![Crowdin](https://badges.crowdin.net/e/bc0babde730eb3eada34778502a31b03/localized.svg)](https://bbn.crowdin.com/hadder) +[![GitHub issues](https://img.shields.io/github/issues/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/issues) +[![GitHub license](https://img.shields.io/github/license/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE) [![Discord Bots](https://top.gg/api/widget/637002314162372639.svg)](https://top.gg/bot/637002314162372639) From 3215af2ac303fffd5b0774ccf2cc022ce5e1b81f Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 12:03:30 +0100 Subject: [PATCH 22/26] Move --- .../java/com/bbn/hadder/commands/fun/ClydeCommand.java | 4 ++-- .../java/com/bbn/hadder/commands/owner/EvalCommand.java | 4 ++-- .../com/bbn/hadder/commands/owner/GuildLeaveCommand.java | 4 ++-- .../java/com/bbn/hadder/commands/owner/RebootCommand.java | 4 ++-- .../com/bbn/hadder/commands/owner/ShutdownCommand.java | 4 ++-- .../java/com/bbn/hadder/commands/owner/TestCommand.java | 4 ++-- src/main/java/com/bbn/hadder/core/CommandHandler.java | 2 -- src/main/java/com/bbn/hadder/{commands => core}/Perm.java | 7 ++++++- src/main/java/com/bbn/hadder/{commands => core}/Perms.java | 6 +++++- src/main/java/com/bbn/hadder/utils/MessageEditor.java | 2 +- 10 files changed, 24 insertions(+), 17 deletions(-) rename src/main/java/com/bbn/hadder/{commands => core}/Perm.java (94%) rename src/main/java/com/bbn/hadder/{commands => core}/Perms.java (77%) diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java index 0db6507..135ff57 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -8,8 +8,8 @@ import club.minnced.discord.webhook.WebhookClient; import club.minnced.discord.webhook.WebhookClientBuilder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Icon; diff --git a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java index c44cbf2..ca5fac2 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -7,8 +7,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.Hadder; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import javax.script.ScriptEngine; diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index b853dfc..a7ec8f7 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.Guild; diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java index 2312a5d..35a2377 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; @Perms(Perm.BOT_OWNER) public class RebootCommand implements Command { 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 56bac44..a002481 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -6,8 +6,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; @Perms(Perm.BOT_OWNER) diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 0c550bf..44eba79 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -2,8 +2,8 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor.MessageType; /* diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 1f1be07..a9d3692 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -3,8 +3,6 @@ package com.bbn.hadder.core; import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.commands.Perm; -import com.bbn.hadder.commands.Perms; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; diff --git a/src/main/java/com/bbn/hadder/commands/Perm.java b/src/main/java/com/bbn/hadder/core/Perm.java similarity index 94% rename from src/main/java/com/bbn/hadder/commands/Perm.java rename to src/main/java/com/bbn/hadder/core/Perm.java index e8b0a09..a49d3f1 100644 --- a/src/main/java/com/bbn/hadder/commands/Perm.java +++ b/src/main/java/com/bbn/hadder/core/Perm.java @@ -2,10 +2,15 @@ * @author Hax / Hax6775 / Schlauer_Hax */ -package com.bbn.hadder.commands; +package com.bbn.hadder.core; +import com.bbn.hadder.commands.CommandEvent; import net.dv8tion.jda.api.Permission; +/* + * @author Skidder / GregTCLTK + */ + public enum Perm { BOT_OWNER() { diff --git a/src/main/java/com/bbn/hadder/commands/Perms.java b/src/main/java/com/bbn/hadder/core/Perms.java similarity index 77% rename from src/main/java/com/bbn/hadder/commands/Perms.java rename to src/main/java/com/bbn/hadder/core/Perms.java index c834df4..32773d8 100644 --- a/src/main/java/com/bbn/hadder/commands/Perms.java +++ b/src/main/java/com/bbn/hadder/core/Perms.java @@ -2,11 +2,15 @@ * @author Hax / Hax6775 / Schlauer_Hax */ -package com.bbn.hadder.commands; +package com.bbn.hadder.core; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +/* + * @author Skidder / GregTCLTK + */ + @Retention(RetentionPolicy.RUNTIME) public @interface Perms { Perm[] value() default {}; diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index ec9c8fa..53574a2 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -47,7 +47,7 @@ public class MessageEditor { WARNING, INFO, NO_PERMISSION, - NO_SELF_PERMISSION, + NO_SELF_PERMISSION, NO_NSFW } From 29374518ff1a57d7ed2c90ca646b9114d5b3d52c Mon Sep 17 00:00:00 2001 From: Hax Date: Sat, 21 Dec 2019 15:02:59 +0100 Subject: [PATCH 23/26] Update MessageEditor.java --- src/main/java/com/bbn/hadder/utils/MessageEditor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index 53574a2..2f22d85 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -35,7 +35,7 @@ public class MessageEditor { public EmbedBuilder getMessage(MessageType type, String title_language_string, String title_extra, String title_extra_two, String description_language_string, String description_extra, String description_extra_two) { - String language = rethink.getLanguage(this.user.getId()); + String language = (this.user!=null) ? rethink.getLanguage(this.user.getId()) : null; EmbedBuilder eb = this.getDefaultSettings(type); if (!title_language_string.equals("")) eb.setTitle(this.handle(language, title_language_string, title_extra, title_extra_two)); if (!description_language_string.equals("")) eb.setDescription(this.handle(language, description_language_string, description_extra, description_extra_two)); From 7a9c2172d8b71c84e9c3eff9bf0db50a9a43d2d7 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 16:32:21 +0100 Subject: [PATCH 24/26] Nothing special --- src/main/java/com/bbn/hadder/core/CommandHandler.java | 2 +- src/main/resources/Translations/Translations_en.properties | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index a9d3692..a51e674 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -36,7 +36,7 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); if (cmd.getClass().getAnnotations().length>0) { - if (Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { commandEvent.getTextChannel() diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 717588b..112f260 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -96,7 +96,7 @@ commands.moderation.clear.message.error.title = No messages! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.prefix.success.title = %extra% Successfully set %extra% -commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to %extra% +commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to `%extra%`. commands.moderation.prefix.error.description = The prefix must not contain **"** commands.moderation.prefix.help.description = Sets the Guild-Prefix. commands.moderation.invitedetect.activate.success.title = Successfully activated @@ -214,9 +214,9 @@ commands.owner.test.success = TEST my friends commands.owner.test.help.description = Just a little Test Command commands.settings.language.success.title = Language set -commands.settings.language.success.description = %extra% is your new language now. +commands.settings.language.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From c88a8849ffe47c42cd160783ffb3e794dd16b387 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 16:33:45 +0100 Subject: [PATCH 25/26] Avatar Command fix --- src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java index 8f3f420..e3c852d 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java @@ -19,7 +19,9 @@ public class AvatarCommand implements Command { event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.fun.avatar.success.title", - member.getUser().getAsTag()) + member.getUser().getAsTag(), + "", + "") .setImage(member.getUser().getAvatarUrl()) .setFooter(member.getUser().getAsTag()) .build()).queue(); From 81dedc87d7c84cdaf45b715968f402ae573fc007 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 17:44:34 +0100 Subject: [PATCH 26/26] New permission system !!! --- .../commands/moderation/BanCommand.java | 122 ++++++++------- .../commands/moderation/ClearCommand.java | 80 +++++----- .../moderation/InviteDetectCommand.java | 73 +++++---- .../commands/moderation/KickCommand.java | 83 +++++----- .../commands/moderation/NickCommand.java | 131 ++++++++-------- .../commands/moderation/PrefixCommand.java | 39 +++-- .../moderation/RegionChangeCommand.java | 142 +++++++++--------- .../commands/moderation/RoleCommand.java | 110 +++++++------- .../commands/moderation/RulesCommand.java | 71 +++++---- .../commands/moderation/StarBoardCommand.java | 1 + .../commands/owner/GuildLeaveCommand.java | 30 ++-- .../hadder/commands/owner/TestCommand.java | 1 - src/main/java/com/bbn/hadder/core/Perm.java | 25 ++- src/main/java/com/bbn/hadder/core/Perms.java | 7 +- .../Translations/Translations_en.properties | 1 + 15 files changed, 451 insertions(+), 465 deletions(-) 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 01c76c2..406d699 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -6,79 +6,77 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; +@Perms(Perm.BAN_MEMBERS) public class BanCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getMessage().getMentionedMembers().size() == 1) { - Member victim = event.getMessage().getMentionedMembers().get(0); - if (!event.getAuthor().getId().equals(victim.getId())) { - if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { - if (event.getGuild().getSelfMember().canInteract(victim)) { - event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.ban.success.title", - "✅", - "commands.moderation.ban.success.description", - victim.getUser().getName() + ".").build()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.ban.error.title", - "commands.moderation.ban.myself.error.description").build()).queue(); - } + if (event.getMessage().getMentionedMembers().size() == 1) { + Member victim = event.getMessage().getMentionedMembers().get(0); + if (!event.getAuthor().getId().equals(victim.getId())) { + if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { + if (event.getGuild().getSelfMember().canInteract(victim)) { + event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.ban.success.title", + "✅", + "commands.moderation.ban.success.description", + victim.getUser().getName() + ".").build()).queue(); } else { - event.getTextChannel().sendMessage - (event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.ban.error.title", - "commands.moderation.ban.yourself.error.description").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } - } else if (event.getMessage().getMentionedMembers().size() == 0) { - event.getHelpCommand().sendHelp(this, event); - } else if (event.getMessage().getMentionedMembers().size() > 1) { - for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { - Member member = event.getMessage().getMentionedMembers().get(i); - if (!event.getAuthor().getId().equals(member.getId())) { - if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { - if (event.getGuild().getSelfMember().canInteract(member)) { - event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.ban.error.title", - "commands.moderation.ban.myself.error.description").build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.WARNING, "commands.moderation.ban.error.title", - "commands.moderation.ban.yourself.error.description").build()).queue(); - } - } - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, - "commands.moderation.ban.success.title", - "✅", - "commands.moderation.ban.massban.success.description", - String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); + "commands.moderation.ban.myself.error.description").build()).queue(); } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } else { + event.getTextChannel().sendMessage + (event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.ban.error.title", + "commands.moderation.ban.yourself.error.description").build()).queue(); + } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + event.getHelpCommand().sendHelp(this, event); + } else if (event.getMessage().getMentionedMembers().size() > 1) { + for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { + Member member = event.getMessage().getMentionedMembers().get(i); + if (!event.getAuthor().getId().equals(member.getId())) { + if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { + if (event.getGuild().getSelfMember().canInteract(member)) { + event.getGuild().ban(member, 0).reason("Mass Ban by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.ban.error.title", + "commands.moderation.ban.myself.error.description").build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.ban.error.title", + "commands.moderation.ban.yourself.error.description").build()).queue(); + } + } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.moderation.ban.success.title", + "✅", + "commands.moderation.ban.massban.success.description", + String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } } @@ -94,6 +92,6 @@ public class BanCommand implements Command { @Override public String usage() { - return "<@User>"; + return "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 05a6bbd..6e3d248 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -6,6 +6,8 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Message; @@ -14,61 +16,57 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; - +@Perms(Perm.MANAGE_MESSAGES) public class ClearCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getGuild().getMemberById(event.getJDA().getSelfUser().getId()).hasPermission(Permission.MESSAGE_MANAGE)) { - if (args[0].equals("all")) { - List msg = event.getTextChannel().getIterableHistory().complete(); - for (Message message : msg) { - message.delete().queue(); - } - Message message = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + if (event.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_MANAGE)) { + if (args[0].equals("all")) { + List msg = event.getTextChannel().getIterableHistory().complete(); + for (Message message : msg) { + message.delete().queue(); + } + Message message = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.lear.all.success.title", "", "commands.moderation.lear.all.success.description", String.valueOf(msg.size())) - .build()).complete(); - try { - TimeUnit.SECONDS.sleep(3); - } catch (InterruptedException e) { - e.printStackTrace(); - } - message.delete().queue(); - } else { - try { - int nbToDelete = Integer.parseInt(args[0]); - if (nbToDelete < 1 || nbToDelete > 99) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "commands.moderation.clear.number.error.description").build()).queue(); - } else { - List history = event.getTextChannel().getHistory().retrievePast(nbToDelete + 1).complete(); - List msgToDelete = new ArrayList<>(history); - event.getTextChannel().deleteMessages(msgToDelete).queue(); - Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "", "", "commands.moderation.clear.success.description", String.valueOf(nbToDelete)).build()).complete(); - try { - TimeUnit.SECONDS.sleep(2); - } catch (InterruptedException e) { - e.printStackTrace(); - } - msg.delete().queue(); - } - } catch (NumberFormatException e) { - event.getHelpCommand().sendHelp(this, event); - } catch (IllegalArgumentException e) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.clear.message.error.title", "commands.moderation.clear.message.error.description") - .build()).queue(); - } + .build()).complete(); + try { + TimeUnit.SECONDS.sleep(3); + } catch (InterruptedException e) { + e.printStackTrace(); } + message.delete().queue(); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + try { + int nbToDelete = Integer.parseInt(args[0]); + if (nbToDelete < 1 || nbToDelete > 99) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "commands.moderation.clear.number.error.description").build()).queue(); + } else { + List history = event.getTextChannel().getHistory().retrievePast(nbToDelete + 1).complete(); + List msgToDelete = new ArrayList<>(history); + event.getTextChannel().deleteMessages(msgToDelete).queue(); + Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "", "", "commands.moderation.clear.success.description", String.valueOf(nbToDelete)).build()).complete(); + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + msg.delete().queue(); + } + } catch (NumberFormatException e) { + event.getHelpCommand().sendHelp(this, event); + } catch (IllegalArgumentException e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.clear.message.error.title", "commands.moderation.clear.message.error.description") + .build()).queue(); + } } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java index 5bc0981..37f9b0d 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -6,54 +6,53 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; +@Perms(Perm.MANAGE_SERVER) public class InviteDetectCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 1) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - String opinion = args[0].toLowerCase(); - switch (opinion) { - case "on": - if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { - event.getRethink().setInviteDetection(event.getGuild().getId(), true); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.invitedetect.activate.success.title", - "commands.moderation.invitedetect.activate.success.description") - .build()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.invitedetect.activate.error.title", - "commands.moderation.invitedetect.activate.error.description") - .build()).queue(); - } - break; - - case "off": - if (event.getRethink().getInviteDetection(event.getGuild().getId())) { - event.getRethink().setInviteDetection(event.getGuild().getId(), false); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + String opinion = args[0].toLowerCase(); + switch (opinion) { + case "on": + if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), true); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, - "commands.moderation.invitedetect.deactivate.success.title", - "commands.moderation.invitedetect.deactivate.success.description") + "commands.moderation.invitedetect.activate.success.title", + "commands.moderation.invitedetect.activate.success.description") .build()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.invitedetect.deactivate.error.title", - "commands.moderation.invitedetect.deactivate.error.description") - .build()).queue(); - } - break; + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.invitedetect.activate.error.title", + "commands.moderation.invitedetect.activate.error.description") + .build()).queue(); } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + break; + + case "off": + if (event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), false); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.invitedetect.deactivate.success.title", + "commands.moderation.invitedetect.deactivate.success.description") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.invitedetect.deactivate.error.title", + "commands.moderation.invitedetect.deactivate.error.description") + .build()).queue(); + } + break; } } else { event.getHelpCommand().sendHelp(this, event); 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 a894608..911bb52 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java @@ -6,63 +6,62 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; - +@Perms(Perm.KICK_MEMBERS) public class KickCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getMessage().getMentionedMembers().size() == 1) { - Member victim = event.getMessage().getMentionedMembers().get(0); - if (!event.getAuthor().getId().equals(victim.getId())) { - if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { - if (event.getGuild().getSelfMember().canInteract(victim)) { - event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.kick.success.title", - "✅", - "commands.moderation.kick.success.description", - victim.getUser().getName()).build()).queue(); + if (event.getMessage().getMentionedMembers().size() == 1) { + Member victim = event.getMessage().getMentionedMembers().get(0); + if (!event.getAuthor().getId().equals(victim.getId())) { + if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) { + if (event.getGuild().getSelfMember().canInteract(victim)) { + event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.kick.success.title", + "✅", + "commands.moderation.kick.success.description", + victim.getUser().getName()).build()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.moderation.kick.error.title", + "commands.moderation.kick.myself.error.description").build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue(); + } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + event.getHelpCommand().sendHelp(this, event); + } else if (event.getMessage().getMentionedMembers().size() > 1) { + for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { + Member member = event.getMessage().getMentionedMembers().get(i); + if (!event.getAuthor().getId().equals(member.getId())) { + if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { + if (event.getGuild().getSelfMember().canInteract(member)) { + event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.moderation.kick.error.title", - "commands.moderation.kick.myself.error.description").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.myself.error.description").build()).queue(); } } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue(); } - } else if (event.getMessage().getMentionedMembers().size() == 0) { - event.getHelpCommand().sendHelp(this, event); - } else if (event.getMessage().getMentionedMembers().size() > 1) { - for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { - Member member = event.getMessage().getMentionedMembers().get(i); - if (!event.getAuthor().getId().equals(member.getId())) { - if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { - if (event.getGuild().getSelfMember().canInteract(member)) { - event.getGuild().kick(member).reason("Mass Kicked by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title","commands.moderation.kick.myself.error.description").build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue(); - } - } - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,"commands.moderation.kick.success.title", "✅","commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.kick.success.title", "✅", "commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } } @@ -78,6 +77,6 @@ public class KickCommand implements Command { @Override public String usage() { - return "<@User>"; + return "user"; } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java index 3b04bcf..df21d5a 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java @@ -6,91 +6,90 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; +@Perms(Perm.CHANGE_NICKNAME) public class NickCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) { - if (event.getMessage().getMentionedMembers().size() == 1) { - if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { - if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) { - if (args.length > 1) { - if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { - event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.success.description", - event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() - ).build()).queue(); - } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { - event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.success.description", event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() - ).build()).queue(); - } - } else { - event.getHelpCommand().sendHelp(this, event); + if (event.getGuild().getSelfMember().hasPermission(Permission.NICKNAME_MANAGE)) { + if (event.getMessage().getMentionedMembers().size() == 1) { + if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { + if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) { + if (args.length > 1) { + if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { + event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.success.description", + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ).build()).queue(); + } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { + event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.success.description", event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ).build()).queue(); } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + event.getHelpCommand().sendHelp(this, event); } } else { - if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { - event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.myself.success.description", - "").build()).queue(); - } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { - event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.myself.success.description", "" - ).build()).queue(); - } + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } - } else if (event.getMessage().getMentionedMembers().size() == 0) { - event.getHelpCommand().sendHelp(this, event); } else { - for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { - Member member = event.getMessage().getMentionedMembers().get(i); - if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { - event.getGuild().modifyNickname(member, args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); - } + if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { + event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.myself.success.description", + "").build()).queue(); + } else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { + event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.myself.success.description", "" + ).build()).queue(); } - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.nick.success.title", - "✅", - "commands.moderation.nick.myself.success.description", String.valueOf(event.getMessage().getMentionedMembers().size()) - ).build()).queue(); } + } else if (event.getMessage().getMentionedMembers().size() == 0) { + event.getHelpCommand().sendHelp(this, event); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) { + Member member = event.getMessage().getMentionedMembers().get(i); + if (!event.getJDA().getSelfUser().getId().equals(member.getId())) { + event.getGuild().modifyNickname(member, args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue(); + } + } + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.nick.success.title", + "✅", + "commands.moderation.nick.myself.success.description", String.valueOf(event.getMessage().getMentionedMembers().size()) + ).build()).queue(); } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java index 01a7d9a..43742d9 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java @@ -2,37 +2,36 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; +@Perms(Perm.MANAGE_SERVER) public class PrefixCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getGuild().getMemberById(event.getAuthor().getId()).hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (args.length == 1) { - if (!args[0].contains("\"")) { + if (args.length == 1) { + if (!args[0].contains("\"")) { - event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.prefix.success.title", - "✅", - "commands.moderation.prefix.success.description", - args[0]).build() - ).queue(); - } else { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "", - "commands.moderation.prefix.error.description").build()).queue(); - } + event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.prefix.success.title", + "✅", + "commands.moderation.prefix.success.description", + args[0]).build() + ).queue(); } else { - event.getHelpCommand().sendHelp(this, event); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "", + "commands.moderation.prefix.error.description").build()).queue(); } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getHelpCommand().sendHelp(this, event); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java index ee6af87..416a26b 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java @@ -6,91 +6,93 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Region; +@Perms(Perm.MANAGE_SERVER) public class RegionChangeCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 1) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_SERVER)) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - switch (args[0].toLowerCase()) { - case "amsterdam": - setRegion(Region.AMSTERDAM, "Amsterdam", event); - break; - case "frankfurt": - setRegion(Region.FRANKFURT, "Frankfurt", event); - break; - case "eu-west": - setRegion(Region.EU_WEST, "EU West", event); - break; - case "eu-central": - setRegion(Region.EU_CENTRAL, "EU Central", event); - break; - case "europe": - setRegion(Region.EUROPE, "EUROPE", event); - break; - case "brazil": - setRegion(Region.BRAZIL, "Brazil", event); - break; - case "hongkong": - setRegion(Region.HONG_KONG, "Hong Kong", event); - break; - case "india": - setRegion(Region.INDIA, "India", event); - break; - case "japan": - setRegion(Region.JAPAN, "Japan", event); - break; - case "london": - setRegion(Region.LONDON, "London", event); - break; - case "russia": - setRegion(Region.RUSSIA, "Russia", event); - break; - case "singapore": - setRegion(Region.SINGAPORE, "Singapore", event); - break; - case "south-africa": - setRegion(Region.SOUTH_AFRICA, "South Africa", event); - break; - case "sydney": - setRegion(Region.SYDNEY, "Sydney", event); - break; - case "us-central": - setRegion(Region.US_CENTRAL, "US Central", event); - break; - case "us-east": - setRegion(Region.US_EAST, "US East", event); - break; - case "us-west": - setRegion(Region.US_WEST, "US West", event); - break; - case "us-south": - setRegion(Region.US_SOUTH, "US South", event); - break; - case "list": - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.regionchange.regions.title", - "") - .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") - .build()).queue(); - break; - } - } else event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); - } else event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { + switch (args[0].toLowerCase()) { + case "amsterdam": + setRegion(Region.AMSTERDAM, "Amsterdam", event); + break; + case "frankfurt": + setRegion(Region.FRANKFURT, "Frankfurt", event); + break; + case "eu-west": + setRegion(Region.EU_WEST, "EU West", event); + break; + case "eu-central": + setRegion(Region.EU_CENTRAL, "EU Central", event); + break; + case "europe": + setRegion(Region.EUROPE, "EUROPE", event); + break; + case "brazil": + setRegion(Region.BRAZIL, "Brazil", event); + break; + case "hongkong": + setRegion(Region.HONG_KONG, "Hong Kong", event); + break; + case "india": + setRegion(Region.INDIA, "India", event); + break; + case "japan": + setRegion(Region.JAPAN, "Japan", event); + break; + case "london": + setRegion(Region.LONDON, "London", event); + break; + case "russia": + setRegion(Region.RUSSIA, "Russia", event); + break; + case "singapore": + setRegion(Region.SINGAPORE, "Singapore", event); + break; + case "south-africa": + setRegion(Region.SOUTH_AFRICA, "South Africa", event); + break; + case "sydney": + setRegion(Region.SYDNEY, "Sydney", event); + break; + case "us-central": + setRegion(Region.US_CENTRAL, "US Central", event); + break; + case "us-east": + setRegion(Region.US_EAST, "US East", event); + break; + case "us-west": + setRegion(Region.US_WEST, "US West", event); + break; + case "us-south": + setRegion(Region.US_SOUTH, "US South", event); + break; + case "list": + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.regionchange.regions.title", + "") + .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") + .build()).queue(); + break; + } + } else + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } else event.getTextChannel().sendMessage( event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.regionchange.regions.title", "") .setDescription("**LOCKED:**\n`amsterdam` `frankfurt` `eu-west` `eu-central` `london`\n\n**UNLOCKED:**\n`europe` `brazil` `hongkong` `india` `japan` `singapore` `south-africa` `sydney` `us-central` `us-east` `us-west` `us-south`") - .build()).queue(); + .build()).queue(); } public void setRegion (Region region, String region_name, CommandEvent event) { diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java index f8fac2a..9c914bb 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java @@ -2,81 +2,81 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Role; +@Perms(Perm.MANAGE_ROLES) public class RoleCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - String action = args[0].toLowerCase(); - switch (action) { - case "add": - if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { - for (Member member : event.getMessage().getMentionedMembers()) { - for (Role role : event.getMessage().getMentionedRoles()) { - if (event.getGuild().getSelfMember().canInteract(member)) { - if (event.getGuild().getSelfMember().canInteract(role)) { - event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } - } - event.getChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.role.add.success.title", - "✅", - "", - "commands.moderation.role.add.success.description", - String.valueOf(event.getMessage().getMentionedRoles().size()), - String.valueOf(event.getMessage().getMentionedMembers().size())) - .build()).queue(); - } - break; - case "remove": - if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { - for (Member member : event.getMessage().getMentionedMembers()) { - for (Role role : event.getMessage().getMentionedRoles()) { - if (event.getGuild().getSelfMember().canInteract(member)) { - if (event.getGuild().getSelfMember().canInteract(role)) { - event.getGuild().removeRoleFromMember(member, role).reason("Role removed by " + event.getAuthor().getAsTag()).queue(); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } + String action = args[0].toLowerCase(); + switch (action) { + case "add": + if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { + for (Member member : event.getMessage().getMentionedMembers()) { + for (Role role : event.getMessage().getMentionedRoles()) { + if (event.getGuild().getSelfMember().canInteract(member)) { + if (event.getGuild().getSelfMember().canInteract(role)) { + event.getGuild().addRoleToMember(member, role).reason("Role added by " + event.getAuthor().getAsTag()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } - event.getChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.role.remove.success.title", - "✅", - "", - "commands.moderation.role.remove.success.description", - String.valueOf(event.getMessage().getMentionedRoles().size()), - String.valueOf(event.getMessage().getMentionedMembers().size())) - .build()).queue(); } - break; - } - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + event.getChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.role.add.success.title", + "✅", + "", + "commands.moderation.role.add.success.description", + String.valueOf(event.getMessage().getMentionedRoles().size()), + String.valueOf(event.getMessage().getMentionedMembers().size())) + .build()).queue(); + } + break; + + case "remove": + if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { + for (Member member : event.getMessage().getMentionedMembers()) { + for (Role role : event.getMessage().getMentionedRoles()) { + if (event.getGuild().getSelfMember().canInteract(member)) { + if (event.getGuild().getSelfMember().canInteract(role)) { + event.getGuild().removeRoleFromMember(member, role).reason("Role removed by " + event.getAuthor().getAsTag()).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } + } + event.getChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.role.remove.success.title", + "✅", + "", + "commands.moderation.role.remove.success.description", + String.valueOf(event.getMessage().getMentionedRoles().size()), + String.valueOf(event.getMessage().getMentionedMembers().size())) + .build()).queue(); + } + break; } } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index f39dd5c..23fb16e 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -6,6 +6,8 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; @@ -15,48 +17,45 @@ import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.TextChannel; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; +@Perms(Perm.MANAGE_SERVER) public class RulesCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.moderation.rules.setup.title", - "commands.moderation.rules.setup.description") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event1 -> { - if (event1.getMessage().getMentionedChannels().size() == 1) { - try { - TextChannel channel = event1.getMessage().getMentionedChannels().get(0); - createRules(event, event1, channel); - } catch (Exception e) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, - "commands.moderation.rules.channel.error.title", - "commands.moderation.rules.channel.error.description") - .build()).queue(); - } - } else { - try { - TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); - createRules(event, event1, channel); - } catch (Exception e) { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage( - MessageEditor.MessageType.ERROR, - "commands.moderation.rules.channel.error.title", - "commands.moderation.rules.channel.error.description") - .build()).queue(); - } + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.INFO, + "commands.moderation.rules.setup.title", + "commands.moderation.rules.setup.description") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event1 -> { + if (event1.getMessage().getMentionedChannels().size() == 1) { + try { + TextChannel channel = event1.getMessage().getMentionedChannels().get(0); + createRules(event, event1, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.moderation.rules.channel.error.title", + "commands.moderation.rules.channel.error.description") + .build()).queue(); } - }, event.getJDA(), event.getAuthor()); - } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } + } else { + try { + TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); + createRules(event, event1, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.ERROR, + "commands.moderation.rules.channel.error.title", + "commands.moderation.rules.channel.error.description") + .build()).queue(); + } + } + }, event.getJDA(), event.getAuthor()); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java index fbabb35..50d6987 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java @@ -6,6 +6,7 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.TextChannel; public class StarBoardCommand implements Command { + @Override public void executed(String[] args, CommandEvent event) { if (event.getMessage().getMentionedChannels().size()==1) { diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java index a7ec8f7..b35d07d 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java @@ -16,23 +16,21 @@ public class GuildLeaveCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - if (args.length > 0) { - Guild guild = event.getJDA().getGuildById(args[0]); - try { - guild.leave().queue(); - event.getTextChannel() - .sendMessage(event.getMessageEditor() - .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", - "", "commands.owner.guildleave.success.description", guild.getName()) - .build()) - .queue(); - } catch (Exception e) { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue(); - } - } else { - event.getHelpCommand().sendHelp(this, event); + if (args.length > 0) { + Guild guild = event.getJDA().getGuildById(args[0]); + try { + guild.leave().queue(); + event.getTextChannel() + .sendMessage(event.getMessageEditor() + .getMessage(MessageEditor.MessageType.INFO, "commands.owner.guildleave.success.title", + "", "commands.owner.guildleave.success.description", guild.getName()) + .build()) + .queue(); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue(); } + } else { + event.getHelpCommand().sendHelp(this, event); } } diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index 44eba79..ae25810 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -10,7 +10,6 @@ import com.bbn.hadder.utils.MessageEditor.MessageType; * @author Skidder / GregTCLTK */ -@Perms(Perm.BOT_OWNER) public class TestCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/core/Perm.java b/src/main/java/com/bbn/hadder/core/Perm.java index a49d3f1..4cd1b7a 100644 --- a/src/main/java/com/bbn/hadder/core/Perm.java +++ b/src/main/java/com/bbn/hadder/core/Perm.java @@ -1,14 +1,11 @@ -/* - * @author Hax / Hax6775 / Schlauer_Hax - */ - package com.bbn.hadder.core; import com.bbn.hadder.commands.CommandEvent; import net.dv8tion.jda.api.Permission; -/* +/** * @author Skidder / GregTCLTK + * @author Hax / Hax6775 / Schlauer_Hax */ public enum Perm { @@ -22,55 +19,55 @@ public enum Perm { MANAGE_MESSAGES { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.MESSAGE_MANAGE); + return event.getMember().hasPermission(Permission.MESSAGE_MANAGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, EMBED_MESSAGES { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS); + return event.getMember().hasPermission(Permission.MESSAGE_EMBED_LINKS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, BAN_MEMBERS { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.BAN_MEMBERS); + return event.getMember().hasPermission(Permission.BAN_MEMBERS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, KICK_MEMBERS { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.KICK_MEMBERS); + return event.getMember().hasPermission(Permission.KICK_MEMBERS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, MANAGE_SERVER { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.MANAGE_SERVER); + return event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, MANAGE_ROLES { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.MANAGE_ROLES); + return event.getMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, CHANGE_NICKNAME { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.NICKNAME_CHANGE); + return event.getMember().hasPermission(Permission.NICKNAME_CHANGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, ADMINISTRATOR { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.ADMINISTRATOR); + return event.getMember().hasPermission(Permission.ADMINISTRATOR) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, MANAGE_WEBHOOKS { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS); + return event.getMember().hasPermission(Permission.MANAGE_WEBHOOKS) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }; diff --git a/src/main/java/com/bbn/hadder/core/Perms.java b/src/main/java/com/bbn/hadder/core/Perms.java index 32773d8..7fc8426 100644 --- a/src/main/java/com/bbn/hadder/core/Perms.java +++ b/src/main/java/com/bbn/hadder/core/Perms.java @@ -1,14 +1,11 @@ -/* - * @author Hax / Hax6775 / Schlauer_Hax - */ - package com.bbn.hadder.core; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -/* +/** * @author Skidder / GregTCLTK + * @author Hax / Hax6775 / Schlauer_Hax */ @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 112f260..c72b94c 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -4,6 +4,7 @@ Hadder = Hadder +user = <@User> searchterm = username = number = /all