From fd2258a6fbfb8be0e74a01bd43128f033c09955a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 08:02:08 +0100 Subject: [PATCH 1/7] GuildPrefix Message Fix --- .../com/bbn/hadder/commands/moderation/GuildPrefixCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java index bd91d1d..38b9d21 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/GuildPrefixCommand.java @@ -14,7 +14,7 @@ public class GuildPrefixCommand implements Command { if (!args[0].contains("\"")) { event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for the guild to " + args[0]).build()).queue(); } else { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("The prefix must not contain **\"**").build()).queue(); } From 40e4215d6098c90da7daeed78b05431057158fb8 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 08:28:20 +0100 Subject: [PATCH 2/7] Invite Link Detector --- src/main/java/com/bbn/hadder/Hadder.java | 2 + src/main/java/com/bbn/hadder/Rethink.java | 45 ++++--- .../moderation/InviteDetectCommand.java | 71 +++++++++++ .../hadder/listener/InviteLinkListener.java | 118 ++++++++++++++++++ .../com/bbn/hadder/listener/LinkListener.java | 5 +- 5 files changed, 221 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java create mode 100644 src/main/java/com/bbn/hadder/listener/InviteLinkListener.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index d228513..8125491 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -78,6 +78,7 @@ public class Hadder { new LeaveCommand(), new GuildLeaveCommand(), new MemeCommand(), + new InviteDetectCommand(), new LinkCommand()), config, helpCommand); builder.addEventListeners( @@ -87,6 +88,7 @@ public class Hadder { new GuildListener(rethink, config), new ReadyListener(rethink, config), new LinkListener(rethink), + new InviteLinkListener(rethink), new RulesListener(rethink)); try { diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index e6ce4d6..5b41cd8 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -32,7 +32,7 @@ public class Rethink { .connect(); System.out.println("DB CONNECTED"); } catch (Exception e) { - System.out.println(e.toString()); + e.printStackTrace(); System.out.println("DB CONNECTION FAILED"); } } @@ -59,7 +59,7 @@ public class Rethink { } private String update(String table, String wherevalue, String what, String whatvalue) { - String out=""; + String out = ""; try { Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn); out=cursor.toString(); @@ -95,16 +95,16 @@ public class Rethink { } - public String setUserPrefix(String prefix, String userid) { - return this.update("user", userid, "prefix", prefix); + public void setUserPrefix(String prefix, String userid) { + this.update("user", userid, "prefix", prefix); } public String getUserPrefix(String id) { return (String) this.get("user", "id", id, "prefix"); } - public String setGuildPrefix(String prefix, String guildid) { - return this.update("server", guildid, "prefix", prefix); + public void setGuildPrefix(String prefix, String guildid) { + this.update("server", guildid, "prefix", prefix); } public String getGuildPrefix(String id) { @@ -115,12 +115,12 @@ public class Rethink { return new JSONArray((String) this.get("server", "id", id, "links")); } - public String addLinkedGuild(String guildid, String linkid) { + public void addLinkedGuild(String guildid, String linkid) { JSONArray links = getLinks(guildid); for (int i = 0; links.length()>i; i++) { - if (links.getString(i).equals(linkid)) return null; + if (links.getString(i).equals(linkid)) return; } - return this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); + this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); } public String removeLinkedGuild(String guildid, String linkid) { @@ -134,26 +134,25 @@ public class Rethink { return this.update("server", guildid, "links", linkedguildslist.toString()); } - public String setLinkChannel(String guildid, String channelid) { - return this.update("server", guildid, "linkchannel", channelid); + public void setLinkChannel(String guildid, String channelid) { + this.update("server", guildid, "linkchannel", channelid); } public String getLinkChannel(String guildid) { return (String) this.get("server", "id", guildid, "linkchannel"); } - public String insertGuild(String id) { - return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "")); + public void insertGuild(String id) { + this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "").with("invite_detect", false)); } - public String insertUser(String id) { - return this.insert("user", r.hashMap("id", id).with("prefix", "h.")); + public void insertUser(String id) { + this.insert("user", r.hashMap("id", id).with("prefix", "h.")); } - public String updateRules(String guild_id, String message_id, String role_id) { + public void updateRules(String guild_id, String message_id, String role_id) { this.update("server", guild_id, "message_id", message_id); this.update("server", guild_id, "role_id", role_id); - return null; } public String getRulesMID(String guild_id) { @@ -164,4 +163,16 @@ public class Rethink { return (String) this.get("server", "id", guild_id, "role_id"); } + public void setInviteDetection(String guild_id, boolean b) { + try { + r.table("server").get(guild_id).update(r.hashMap("invite_detect", b)).run(conn); + } catch (ClassCastException e) { + e.printStackTrace(); + } + } + + public Boolean getInviteDetection(String guild_id) { + return (Boolean) this.get("server", "id", guild_id, "invite_detect"); + } + } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java new file mode 100644 index 0000000..4a5a6d2 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -0,0 +1,71 @@ +package com.bbn.hadder.commands.moderation; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; + +public class InviteDetectCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (args.length == 1) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { + switch (args[0].toLowerCase()) { + case "on": + if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), true); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully activated") + .setDescription("I successfully activated the invite link detection for this guild.") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Already activated") + .setDescription("The invite link detection is already activated on this guild.") + .build()).queue(); + } + break; + + case "off": + if (event.getRethink().getInviteDetection(event.getGuild().getId())) { + event.getRethink().setInviteDetection(event.getGuild().getId(), false); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully deactivated") + .setDescription("I successfully deactivated the invite link detection for this guild.") + .build()).queue(); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Already deactivated") + .setDescription("The invite link detection is already deactivated on this guild.") + .build()).queue(); + } + break; + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } else { + event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); + } + } + + @Override + public String[] labels() { + return new String[]{"invitedetect", "detectinvite"}; + } + + @Override + public String description() { + return "Activate or deactivate the Discord invite link detection."; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java new file mode 100644 index 0000000..96d18f0 --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -0,0 +1,118 @@ +package com.bbn.hadder.listener; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.Rethink; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.ChannelType; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import net.dv8tion.jda.api.events.message.MessageUpdateEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import org.json.JSONObject; + +import javax.annotation.Nonnull; + +public class InviteLinkListener extends ListenerAdapter { + + private Rethink rethink; + + public InviteLinkListener(Rethink rethink) { + this.rethink = rethink; + } + + @Override + public void onMessageReceived(@Nonnull MessageReceivedEvent event) { + if (event.isFromType(ChannelType.TEXT)) { + if (event.getMessage().getContentRaw().contains("discord.gg/")) { + if (!event.getMember().hasPermission(Permission.ADMINISTRATOR)) { + if (rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) { + if (!event.getMember().hasPermission(Permission.ADMINISTRATOR)) { + if (rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } + + @Override + public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { + if (event.isFromType(ChannelType.TEXT)) { + if (event.getMessage().getContentRaw().contains("discord.gg/")) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { + if (rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { + if (rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } +} diff --git a/src/main/java/com/bbn/hadder/listener/LinkListener.java b/src/main/java/com/bbn/hadder/listener/LinkListener.java index 5c34a70..5981d05 100644 --- a/src/main/java/com/bbn/hadder/listener/LinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/LinkListener.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.core.LinkUtils; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; @@ -70,11 +71,9 @@ public class LinkListener extends ListenerAdapter { @Override public void onMessageReceived(@Nonnull MessageReceivedEvent event) { - if (!event.isWebhookMessage()) { - if (event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId()))) { + if (!event.isWebhookMessage() && event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId())) && event.isFromType(ChannelType.TEXT)) { new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() { }, rethink, false); - } } } } From 79c6e5ddee42af6b69afb5c2e646dee73bc807ff Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 08:43:48 +0100 Subject: [PATCH 3/7] Eval Command fix --- .../hadder/commands/owner/EvalCommand.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) 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 216b076..189a156 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -8,14 +8,12 @@ import com.bbn.hadder.Hadder; 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 javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; public class EvalCommand implements Command { @@ -46,11 +44,10 @@ public class EvalCommand implements Command { ScheduledExecutorService service = Executors.newScheduledThreadPool(1); - ScheduledFuture future = service.schedule(() -> { + service.schedule(() -> { long startExec = System.currentTimeMillis(); - Object out = null; - EmbedBuilder builder = new EmbedBuilder(); + Object out; try { String script = ""; @@ -58,17 +55,22 @@ public class EvalCommand implements Command { args[i] = args[i].replace("```java", "").replace("```", ""); script += i == args.length-1 ? args[i]:args[i]+" "; } - builder.addField("Input", "```java\n\n" + script + "```", false); - out = engine.eval(script); - builder.addField("Output", "```java\n\n" + out.toString() + "```", false); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Eval Command") + .addField("Input", "```java\n\n" + script + "```", false) + .addField("Output", "```java\n\n" + out.toString() + "```", false) + .addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false) + .build()).queue(); } catch (Exception ex) { - builder.addField("Error", "```java\n\n" + ex.getMessage() + "```", false); - } + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Eval Command") + .addField("Error", "```java\n\n" + ex.getMessage() + "```", false) + .addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false) + .build()).queue(); - builder.addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false); - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Eval Command").build()).queue(); + } service.shutdownNow(); @@ -89,7 +91,7 @@ public class EvalCommand implements Command { @Override public String description() { - return "You know what a eval command is ;)"; + return "Execute the given code"; } @Override From d53068dd50f640f81b4d2b249e498999def49401 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 08:47:48 +0100 Subject: [PATCH 4/7] Code improvements --- .../{misc => general}/EqualsCommand.java | 6 +++++- .../hadder/commands/general/HelpCommand.java | 2 +- .../{misc => general}/InviteCommand.java | 6 +++++- .../com/bbn/hadder/listener/RulesListener.java | 18 +++++++----------- 4 files changed, 18 insertions(+), 14 deletions(-) rename src/main/java/com/bbn/hadder/commands/{misc => general}/EqualsCommand.java (96%) rename src/main/java/com/bbn/hadder/commands/{misc => general}/InviteCommand.java (92%) diff --git a/src/main/java/com/bbn/hadder/commands/misc/EqualsCommand.java b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java similarity index 96% rename from src/main/java/com/bbn/hadder/commands/misc/EqualsCommand.java rename to src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java index 71e6b47..d23bead 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/EqualsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java @@ -1,10 +1,14 @@ -package com.bbn.hadder.commands.misc; +package com.bbn.hadder.commands.general; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; +/* + * @author Skidder / GregTCLTK + */ + public class EqualsCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java index f86dd29..bb7c868 100644 --- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java @@ -47,7 +47,7 @@ public class HelpCommand implements Command { } else { for (Command cmd : event.getCommandHandler().getCommandList()) { for (String label : cmd.labels()) { - if (label.toLowerCase().equals(args[0])) { + if (label.equalsIgnoreCase(args[0])) { sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel()); } } diff --git a/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java b/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java similarity index 92% rename from src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java rename to src/main/java/com/bbn/hadder/commands/general/InviteCommand.java index a5c90ef..1d99179 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/InviteCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java @@ -1,4 +1,4 @@ -package com.bbn.hadder.commands.misc; +package com.bbn.hadder.commands.general; /* * @author Skidder / GregTCLTK @@ -9,6 +9,10 @@ import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; +/* + * @author Skidder / GregTCLTK + */ + public class InviteCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java index 7b35d9b..221ad4a 100644 --- a/src/main/java/com/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -19,24 +19,20 @@ public class RulesListener extends ListenerAdapter { @Override public void onMessageReactionAdd(MessageReactionAddEvent event) { - if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { - if (!event.getMember().getUser().isBot()) { - if (event.getReactionEmote().getEmoji().equals("✅")) { - event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); - } else if (event.getReactionEmote().getEmoji().equals("❌") && event.getGuild().getSelfMember().canInteract(event.getMember())) { - event.getReaction().removeReaction().queue(); - event.getMember().kick().reason("Declined the rules"); - } + if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) { + if (event.getReactionEmote().getEmoji().equals("✅")) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); + } else if (event.getReactionEmote().getEmoji().equals("❌") && event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getReaction().removeReaction().queue(); + event.getMember().kick().reason("Declined the rules"); } } } @Override public void onMessageReactionRemove(MessageReactionRemoveEvent event) { - if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { - if (!event.getMember().getUser().isBot() && event.getReactionEmote().getEmoji().equals("✅")) { + if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot() && event.getReactionEmote().getEmoji().equals("✅")) { event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue(); - } } } } From 67faa70aaf6a0daa32197f8d7d03037508f6186a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 08:56:36 +0100 Subject: [PATCH 5/7] More code improvements --- .../commands/moderation/LinkCommand.java | 3 +- .../hadder/commands/owner/RebootCommand.java | 2 +- .../commands/owner/ShutdownCommand.java | 2 +- .../com/bbn/hadder/listener/LinkListener.java | 60 +++++++++---------- .../listener/PrivateMessageListener.java | 33 +++++----- 5 files changed, 45 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java index 5e9c393..84a91a3 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/LinkCommand.java @@ -10,8 +10,7 @@ public class LinkCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); - switch (args[0]) { - + switch (args[0].toLowerCase()) { case "add": if (args.length != 2) return; String linkid = args[1]; 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 364c149..cb37c27 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java @@ -14,7 +14,7 @@ public class RebootCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { - System.exit(69); + Runtime.getRuntime().exit(69); } else { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } 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 e904e4c..14cfdd2 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java @@ -16,7 +16,7 @@ public class ShutdownCommand implements Command { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue(); event.getJDA().getShardManager().shutdown(); System.out.println("Bot shut down via Command..."); - System.exit(0); + Runtime.getRuntime().exit(69); } else { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } diff --git a/src/main/java/com/bbn/hadder/listener/LinkListener.java b/src/main/java/com/bbn/hadder/listener/LinkListener.java index 5981d05..968c173 100644 --- a/src/main/java/com/bbn/hadder/listener/LinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/LinkListener.java @@ -15,7 +15,7 @@ import java.util.ArrayList; public class LinkListener extends ListenerAdapter { - Rethink rethink; + private Rethink rethink; public LinkListener(Rethink rethink) { this.rethink = rethink; @@ -26,44 +26,38 @@ public class LinkListener extends ListenerAdapter { event.getChannel().retrieveMessageById(event.getMessageId()).queue( msg -> { if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) { - if (!event.getMember().getUser().equals(event.getJDA().getSelfUser())) { - if (msg.getAuthor().equals(event.getJDA().getSelfUser())) { - if (msg.getEmbeds().size() == 1) { - if (msg.getEmbeds().get(0).getFooter() == null) { - if (msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) { - String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); - String requestguildid = null; - for (int i = requestguild.length() - 1; i >= 0; i--) { - if (String.valueOf(requestguild.charAt(i)).equals("(")) { - requestguildid = requestguild.substring(i + 1); - break; - } - } - if (requestguildid != null) { - if (event.getReactionEmote().getName().equals("✅")) { - rethink.addLinkedGuild(event.getGuild().getId(), requestguildid); - rethink.addLinkedGuild(requestguildid, event.getGuild().getId()); + if (!event.getMember().getUser().equals(event.getJDA().getSelfUser()) && msg.getAuthor().equals(event.getJDA().getSelfUser()) && msg.getEmbeds().size() == 1 && msg.getEmbeds().get(0).getFooter() == null && msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) { + String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); + String requestguildid = null; + for (int i = requestguild.length() - 1; i >= 0; i--) { + if (String.valueOf(requestguild.charAt(i)).equals("(")) { + requestguildid = requestguild.substring(i + 1); + break; + } + } + if (requestguildid != null) { + if (event.getReactionEmote().getName().equals("✅")) { + rethink.addLinkedGuild(event.getGuild().getId(), requestguildid); + rethink.addLinkedGuild(requestguildid, event.getGuild().getId()); - msg.delete().queue(); + msg.delete().queue(); - MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!").build(); - event.getChannel().sendMessage(msgembed).queue(); - event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); - } else if (event.getReactionEmote().getName().equals("❌")) { - msg.delete().queue(); + MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Guilds linked!").setDescription("The Guild allowed the link. Have fun!").build(); + event.getChannel().sendMessage(msgembed).queue(); + event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); + } else if (event.getReactionEmote().getName().equals("❌")) { + msg.delete().queue(); - MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Guild linking denied.").setDescription("The Guild denied the link. :(").build(); - event.getChannel().sendMessage(msgembed).queue(); - event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); - } - } - } - } + MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Guild linking denied.").setDescription("The Guild denied the linking. :(").build(); + event.getChannel().sendMessage(msgembed).queue(); + event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); } } } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } ); diff --git a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java index f0b4b40..8672e28 100644 --- a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java +++ b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java @@ -15,25 +15,22 @@ import java.time.Instant; public class PrivateMessageListener extends ListenerAdapter { public void onMessageReceived(MessageReceivedEvent event) { - if (event.isFromType(ChannelType.PRIVATE)) { - if (!event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { + if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { + PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); + PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); - PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); - PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); - - Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("New DM by " + event.getAuthor().getAsTag()) - .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) - .setDescription(event.getMessage().getContentRaw()) - .setTimestamp(Instant.now()) - .build()).queue(); - Hax.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("New DM by " + event.getAuthor().getAsTag()) - .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) - .setDescription(event.getMessage().getContentRaw()) - .setTimestamp(Instant.now()) - .build()).queue(); - } + Skidder.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("New DM by " + event.getAuthor().getAsTag()) + .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) + .setDescription(event.getMessage().getContentRaw()) + .setTimestamp(Instant.now()) + .build()).queue(); + Hax.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("New DM by " + event.getAuthor().getAsTag()) + .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) + .setDescription(event.getMessage().getContentRaw()) + .setTimestamp(Instant.now()) + .build()).queue(); } } } From 8bea23f41b7420e6c593d0d363008648e9d199c5 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 09:11:15 +0100 Subject: [PATCH 6/7] 4 more improvements --- .../moderation/InviteDetectCommand.java | 3 +- .../commands/moderation/RoleCommand.java | 3 +- .../hadder/listener/InviteLinkListener.java | 112 ++++++++---------- .../com/bbn/hadder/utils/MessageEditor.java | 5 +- 4 files changed, 54 insertions(+), 69 deletions(-) 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 4a5a6d2..f956bd9 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -15,7 +15,8 @@ public class InviteDetectCommand implements Command { public void executed(String[] args, CommandEvent event) { if (args.length == 1) { if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { - switch (args[0].toLowerCase()) { + String opinion = args[0].toLowerCase(); + switch (opinion) { case "on": if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { event.getRethink().setInviteDetection(event.getGuild().getId(), true); 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 1647df8..19dfe54 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java @@ -14,7 +14,8 @@ public class RoleCommand implements Command { 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())) { - switch (args[0].toLowerCase()) { + 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()) { diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java index 96d18f0..0a6310c 100644 --- a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -30,41 +30,35 @@ public class InviteLinkListener extends ListenerAdapter { public void onMessageReceived(@Nonnull MessageReceivedEvent event) { if (event.isFromType(ChannelType.TEXT)) { if (event.getMessage().getContentRaw().contains("discord.gg/")) { - if (!event.getMember().hasPermission(Permission.ADMINISTRATOR)) { - if (rethink.getInviteDetection(event.getGuild().getId())) { - String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; - String invite = split.split(" ")[0]; - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); - try { - Response response = client.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - if (!json.toString().contains("\"message\":")) { - event.getMessage().delete().reason("Invite Link detected").queue(); - } - } catch (Exception e) { - e.printStackTrace(); + if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); } + } catch (Exception e) { + e.printStackTrace(); } - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); } } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) { - if (!event.getMember().hasPermission(Permission.ADMINISTRATOR)) { - if (rethink.getInviteDetection(event.getGuild().getId())) { - String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; - String invite = split.split(" ")[0]; - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); - try { - Response response = client.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - if (!json.toString().contains("\"message\":")) { - event.getMessage().delete().reason("Invite Link detected").queue(); - } - } catch (Exception e) { - e.printStackTrace(); + if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); } + } catch (Exception e) { + e.printStackTrace(); } } } @@ -74,43 +68,33 @@ public class InviteLinkListener extends ListenerAdapter { @Override public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { if (event.isFromType(ChannelType.TEXT)) { - if (event.getMessage().getContentRaw().contains("discord.gg/")) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { - if (rethink.getInviteDetection(event.getGuild().getId())) { - String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; - String invite = split.split(" ")[0]; - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); - try { - Response response = client.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - if (!json.toString().contains("\"message\":")) { - event.getMessage().delete().reason("Invite Link detected").queue(); - } - } catch (Exception e) { - e.printStackTrace(); - } + if (event.getMessage().getContentRaw().contains("discord.gg/") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); } - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); + } catch (Exception e) { + e.printStackTrace(); } - } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { - if (rethink.getInviteDetection(event.getGuild().getId())) { - String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; - String invite = split.split(" ")[0]; - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); - try { - Response response = client.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - if (!json.toString().contains("\"message\":")) { - event.getMessage().delete().reason("Invite Link detected").queue(); - } - } catch (Exception e) { - e.printStackTrace(); - } + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); } + } catch (Exception e) { + e.printStackTrace(); } } } diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index 3f7f619..81425e7 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -9,9 +9,9 @@ public class MessageEditor { public EmbedBuilder setDefaultSettings(MessageType type) { EmbedBuilder builder = new EmbedBuilder(); - switch (type) { + switch (type) { case INFO: - builder.setColor(new Color(47,94,105)).setTimestamp(Instant.now()); + builder.setColor(new Color(47, 94, 105)).setTimestamp(Instant.now()); break; case ERROR: @@ -40,5 +40,4 @@ public class MessageEditor { NO_PERMISSION, NO_SELF_PERMISSION } - } From 2e8a8fb102ac3f09b94f60e3bdee2246d9618ba1 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 09:15:26 +0100 Subject: [PATCH 7/7] Last code improvements :D --- .../hadder/listener/InviteLinkListener.java | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java index 0a6310c..b6564a8 100644 --- a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -67,35 +67,33 @@ public class InviteLinkListener extends ListenerAdapter { @Override public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { - if (event.isFromType(ChannelType.TEXT)) { - if (event.getMessage().getContentRaw().contains("discord.gg/") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) { - String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; - String invite = split.split(" ")[0]; - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); - try { - Response response = client.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - if (!json.toString().contains("\"message\":")) { - event.getMessage().delete().reason("Invite Link detected").queue(); - } - } catch (Exception e) { - e.printStackTrace(); + if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().contains("discord.gg/") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); } - } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) { - String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; - String invite = split.split(" ")[0]; - OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); - try { - Response response = client.newCall(request).execute(); - JSONObject json = new JSONObject(response.body().string()); - if (!json.toString().contains("\"message\":")) { - event.getMessage().delete().reason("Invite Link detected").queue(); - } - } catch (Exception e) { - e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) { + String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; + String invite = split.split(" ")[0]; + OkHttpClient client = new OkHttpClient(); + Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build(); + try { + Response response = client.newCall(request).execute(); + JSONObject json = new JSONObject(response.body().string()); + if (!json.toString().contains("\"message\":")) { + event.getMessage().delete().reason("Invite Link detected").queue(); } + } catch (Exception e) { + e.printStackTrace(); } } }