From e7e55e44ba22e200a034509673764a133fc38f48 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 18:38:43 +0100 Subject: [PATCH 1/3] Rules Command feature --- example-config.json | 25 +- src/main/java/com/bbn/hadder/Rethink.java | 12 +- .../moderation/InviteDetectCommand.java | 2 +- .../commands/moderation/RulesCommand.java | 225 +++++++++--------- .../hadder/listener/InviteLinkListener.java | 1 - .../bbn/hadder/listener/RulesListener.java | 25 +- 6 files changed, 153 insertions(+), 137 deletions(-) diff --git a/example-config.json b/example-config.json index b56984e..f201256 100644 --- a/example-config.json +++ b/example-config.json @@ -2,22 +2,23 @@ "Owners": [], "Database":{"IP":"", - "Port":6775, - "DBName":"", - "Username":"", - "Password":""}, - "Tokens":{ - "BotToken":"", - "Giphy":"", + "Port": 6775, + "DBName": "", + "Username": "", + "Password": ""}, + "Tokens": { + "BotToken": "", + "Giphy": "", "GitHub": "", - "MythicalBotList":"", - "BotsForDiscord":"", - "DiscordBotList":"", - "DiscordBestBots":"", + "MythicalBotList": "", + "BotsForDiscord": "", + "DiscordBotList": "", + "DiscordBestBots": "", "DiscordBoats": "", "YetAnotherBotList": "", "DiscordExtremeList": "", "DiscordBotReviews": "", - "DiscordBots": "" + "DiscordBots": "", + "BotListSpace": "" } } diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 5b41cd8..283a1a1 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -150,9 +150,11 @@ public class Rethink { this.insert("user", r.hashMap("id", id).with("prefix", "h.")); } - public void updateRules(String guild_id, String message_id, String role_id) { + public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { this.update("server", guild_id, "message_id", message_id); this.update("server", guild_id, "role_id", role_id); + this.update("server", guild_id, "accept_emote", accept_emote); + this.update("server", guild_id, "decline_emote", decline_emote); } public String getRulesMID(String guild_id) { @@ -163,6 +165,14 @@ public class Rethink { return (String) this.get("server", "id", guild_id, "role_id"); } + public String getRulesAEmote(String guild_id) { + return (String) this.get("server", "id", guild_id, "accept_emote"); + } + + public String getRulesDEmote(String guild_id) { + return (String) this.get("server", "id", guild_id, "decline_emote"); + } + public void setInviteDetection(String guild_id, boolean b) { try { r.table("server").get(guild_id).update(r.hashMap("invite_detect", b)).run(conn); 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 f956bd9..12ddc03 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -14,7 +14,7 @@ public class InviteDetectCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (args.length == 1) { - if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { String opinion = args[0].toLowerCase(); switch (opinion) { case "on": 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 4903b7b..9ae75f5 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -9,9 +9,11 @@ import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Emote; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; public class RulesCommand implements Command { @@ -27,64 +29,7 @@ public class RulesCommand implements Command { if (event1.getMessage().getMentionedChannels().size() == 1) { try { TextChannel channel = event1.getMessage().getMentionedChannels().get(0); - if (channel.getGuild().getId().equals(event1.getGuild().getId())) { - if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event2 -> { - String message = event2.getMessage().getContentDisplay(); - event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Role to assign") - .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event3 -> { - if (event.getMessage().getMentionedRoles().size() == 1) { - Role role = event.getMessage().getMentionedRoles().get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("The role has been successfully set to " + role.getName() + ".") - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("The role has been successfully set to " + role.getName() + ".") - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION) - .build()).queue(); - } - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!") - .build()).queue(); - } + createRules(event, event1, channel); } catch (Exception e) { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) .setTitle("Channel not found") @@ -94,64 +39,7 @@ public class RulesCommand implements Command { } else { try { TextChannel channel = event1.getGuild().getTextChannelsByName(event1.getMessage().getContentRaw(), true).get(0); - if (channel.getGuild().getId().equals(event1.getGuild().getId())) { - if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event2 -> { - String message = event2.getMessage().getContentDisplay(); - event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Role to assign") - .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") - .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event3 -> { - if (event.getMessage().getMentionedRoles().size() == 1) { - Role role = event.getMessage().getMentionedRoles().get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("The role has been successfully set to " + role.getName() + ".") - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } else { - Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); - if (event3.getGuild().getSelfMember().canInteract(role)) { - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("The role has been successfully set to " + role.getName() + ".") - .build()).queue(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription(message) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); - } - } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION) - .build()).queue(); - } - } else { - event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) - .setTitle("Wrong Guild") - .setDescription("The mentioned channel must be on this guid!") - .build()).queue(); - } + createRules(event, event1, channel); } catch (Exception e) { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) .setTitle("Channel not found") @@ -168,6 +56,111 @@ public class RulesCommand implements Command { } } + public void createRules(CommandEvent event, GuildMessageReceivedEvent event1, TextChannel channel) { + if (channel.getGuild().getId().equals(event1.getGuild().getId())) { + if (event.getGuild().getSelfMember().hasPermission(channel, Permission.MESSAGE_WRITE)) { + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event2 -> { + String message = event2.getMessage().getContentDisplay(); + event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Role to assign") + .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event3 -> { + if (event.getMessage().getMentionedRoles().size() == 1) { + Role role = event.getMessage().getMentionedRoles().get(0); + setRole(event, channel, message, event3, role); + } else { + Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); + setRole(event, channel, message, event3, role); + } + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION) + .build()).queue(); + } + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!") + .build()).queue(); + } + } + + public void setRole(CommandEvent event, TextChannel channel, String message, GuildMessageReceivedEvent event3, Role role) { + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Custom Accept Emote") + .setDescription("The role has been successfully set to " + role.getName() + ". Now send me the emote on which your user should react to to get verified.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event4 -> { + if (event4.getMessage().getEmotes().size() == 1) { + Emote aemote = event4.getMessage().getEmotes().get(0); + event4.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Custom Decline Emote") + .setDescription("The first emote has been successfully set to " + aemote + ". Please send me now the decline emote.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event5 -> { + Emote demote = event5.getMessage().getEmotes().get(0); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(message) + .build()).complete(); + try { + rules.addReaction(aemote).queue(); + rules.addReaction(demote).queue(); + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully set the rules") + .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + .build()).queue(); + } catch (Exception e) { + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error") + .setDescription("I can not access the custom emote(s),") + .build()).queue(); + e.printStackTrace(); + } + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString()); + }, event.getJDA(), event.getAuthor()); + } else { + String aemote = event4.getMessage().getContentRaw(); + event4.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Custom Decline Emote") + .setDescription("The first emote has been successfully set. Please send me now the decline emote.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event5 -> { + String demote = event5.getMessage().getContentRaw(); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(message) + .build()).complete(); + try { + rules.addReaction(aemote).queue(); + rules.addReaction(demote).queue(); + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully set the rules") + .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + .build()).queue(); + } catch (Exception e) { + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error") + .setDescription("The given emote can't be used.") + .build()).queue(); + e.printStackTrace(); + } + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote, demote); + }, event.getJDA(), event.getAuthor()); + } + }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); + } + } + @Override public String[] labels() { return new String[]{"rules", "rule", "setup"}; diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java index b77f536..dfac529 100644 --- a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -5,7 +5,6 @@ package com.bbn.hadder.listener; */ 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; diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java index 221ad4a..43ca93f 100644 --- a/src/main/java/com/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -20,18 +20,31 @@ public class RulesListener extends ListenerAdapter { @Override public void onMessageReactionAdd(MessageReactionAddEvent event) { 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"); + if (event.getReactionEmote().isEmote()) { + if (rethink.getRulesAEmote(event.getGuild().getId()).contains(event.getReactionEmote().getId())) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); + } else if (rethink.getRulesDEmote(event.getGuild().getId()).contains(event.getReactionEmote().getId())) { + event.getReaction().removeReaction(event.getUser()).queue(); + if (event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getMember().kick().reason("Declined the rules"); + } + } + } else { + if (event.getReactionEmote().getEmoji().equals(rethink.getRulesAEmote(event.getGuild().getId()))) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); + } else if (event.getReactionEmote().getEmoji().equals(rethink.getRulesDEmote(event.getGuild().getId()))) { + event.getReaction().removeReaction(event.getUser()).queue(); + if (event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getMember().kick().reason("Declined the rules"); + } + } } } } @Override public void onMessageReactionRemove(MessageReactionRemoveEvent event) { - if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot() && event.getReactionEmote().getEmoji().equals("✅")) { + if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) { event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue(); } } -- 2.45.3 From f41dd11d3efbb02c9bb959ea590c93ca345f4f1a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 18:51:05 +0100 Subject: [PATCH 2/3] Combine one if else statement --- .../hadder/listener/InviteLinkListener.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java index dfac529..b8bc2bb 100644 --- a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -44,21 +44,19 @@ public class InviteLinkListener extends ListenerAdapter { e.printStackTrace(); } } - } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) { - 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(); + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !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(); } } } -- 2.45.3 From f838793e19d43fcc4d53ce6e882c6abb85d28078 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 2 Dec 2019 19:31:15 +0100 Subject: [PATCH 3/3] Rules Command improvement --- .../commands/moderation/RulesCommand.java | 82 +++++++++++-------- .../com/bbn/hadder/utils/MessageEditor.java | 29 +++++-- 2 files changed, 72 insertions(+), 39 deletions(-) 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 9ae75f5..d6e80f8 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -106,25 +106,32 @@ public class RulesCommand implements Command { .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event5 -> { Emote demote = event5.getMessage().getEmotes().get(0); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription(message) - .build()).complete(); - try { - rules.addReaction(aemote).queue(); - rules.addReaction(demote).queue(); - event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Successfully set the rules") - .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + if (!aemote.equals(demote)) { + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(message) + .build()).complete(); + try { + rules.addReaction(aemote).queue(); + rules.addReaction(demote).queue(); + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully set the rules") + .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + .build()).queue(); + } catch (Exception e) { + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error") + .setDescription("I can not access the custom emote(s),") + .build()).queue(); + e.printStackTrace(); + } + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Emotes are equal") + .setDescription("The 1st and 2nd emote equals each other.") .build()).queue(); - } catch (Exception e) { - event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) - .setTitle("Error") - .setDescription("I can not access the custom emote(s),") - .build()).queue(); - e.printStackTrace(); } - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString()); }, event.getJDA(), event.getAuthor()); } else { String aemote = event4.getMessage().getContentRaw(); @@ -134,25 +141,32 @@ public class RulesCommand implements Command { .build()).queue(); new EventWaiter().newOnMessageEventWaiter(event5 -> { String demote = event5.getMessage().getContentRaw(); - Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Rules") - .setDescription(message) - .build()).complete(); - try { - rules.addReaction(aemote).queue(); - rules.addReaction(demote).queue(); - event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) - .setTitle("Successfully set the rules") - .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + if (!aemote.equals(demote)) { + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(message) + .build()).complete(); + try { + rules.addReaction(aemote).queue(); + rules.addReaction(demote).queue(); + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) + .setTitle("Successfully set the rules") + .setDescription("I successfully send the rules in " + channel.getAsMention() + ".") + .build()).queue(); + } catch (Exception e) { + event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) + .setTitle("Error") + .setDescription("The given emote can't be used.") + .build()).queue(); + e.printStackTrace(); + } + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote, demote); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) + .setTitle("Emotes are equal") + .setDescription("The 1st and 2nd emote equals each other.") .build()).queue(); - } catch (Exception e) { - event5.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR) - .setTitle("Error") - .setDescription("The given emote can't be used.") - .build()).queue(); - e.printStackTrace(); } - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote, demote); }, event.getJDA(), event.getAuthor()); } }, event.getJDA(), event.getAuthor()); diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index 81425e7..0121acd 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -11,23 +11,42 @@ public class MessageEditor { EmbedBuilder builder = new EmbedBuilder(); switch (type) { case INFO: - builder.setColor(new Color(47, 94, 105)).setTimestamp(Instant.now()); + builder + .setColor(new Color(47, 94, 105)) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case ERROR: - builder.setColor(Color.RED).setTimestamp(Instant.now()); + builder + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case WARNING: - builder.setColor(Color.ORANGE).setTimestamp(Instant.now()); + builder + .setColor(Color.ORANGE) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case NO_PERMISSION: - builder.setTitle("⛔ No Permission ⛔").setDescription("You are not authorized to execute this command!").setColor(Color.RED).setTimestamp(Instant.now()); + builder + .setTitle("⛔ No Permission ⛔") + .setDescription("You are not authorized to execute this command!") + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; case NO_SELF_PERMISSION: - builder.setTitle("⛔ No Permission ⛔").setDescription("Unfortunately, I do not have the required rights to perform this action").setColor(Color.RED).setTimestamp(Instant.now()); + builder + .setTitle("⛔ No Permission ⛔") + .setDescription("Unfortunately, I do not have the required rights to perform this action") + .setColor(Color.RED) + .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") + .setTimestamp(Instant.now()); break; } return builder; -- 2.45.3