From 984fb4e6577a22a2c8138f11da424c732ac20083 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2019 13:21:52 +0000 Subject: [PATCH 01/16] Bump JDA from 4.0.0_61 to 4.0.0_62 Bumps JDA from 4.0.0_61 to 4.0.0_62. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7afe0e1..6e152d2 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ net.dv8tion JDA - 4.0.0_61 + 4.0.0_62 org.json From a72ed14cc5d7d391bfc189a8b0266efcbeff7296 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 20 Nov 2019 07:52:05 -0800 Subject: [PATCH 02/16] Remove --- src/main/java/com/bbn/hadder/commands/owner/TestCommand.java | 3 --- 1 file changed, 3 deletions(-) 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 061b67d..e50a638 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -2,9 +2,6 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import net.dv8tion.jda.api.entities.Activity; - -import java.util.Arrays; /* * @author Skidder / GregTCLTK From 0a04c8185f3501a34c670cad492e411af75fcfb8 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 20 Nov 2019 09:58:27 -0800 Subject: [PATCH 03/16] Rules Command 1/? --- src/main/java/com/bbn/hadder/Hadder.java | 3 +- .../commands/moderation/RulesCommand.java | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 335efc4..efb1536 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -67,8 +67,9 @@ public class Hadder { new FeetCommand(), new EroticCommand(), new RoleCommand(), + new RulesCommand(), new LinkCommand()), config); - + builder.addEventListeners( new MentionListener(rethink), new PrivateMessageListener(), diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java new file mode 100644 index 0000000..6bf5113 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -0,0 +1,31 @@ +package com.bbn.hadder.commands.moderation; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; + +public class RulesCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + } + + @Override + public String[] labels() { + return new String[]{"rules"}; + } + + @Override + public String description() { + return "Setup the rules on your server"; + } + + @Override + public String usage() { + return ""; + } +} From 450253106c6b0c78a3937160943ad8017642594c Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 20 Nov 2019 10:16:23 -0800 Subject: [PATCH 04/16] Perms check --- .../hadder/commands/moderation/RulesCommand.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 6bf5113..be84b17 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -6,12 +6,26 @@ 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.Permission; public class RulesCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { + if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { + + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION, builder).build()).queue(); + } } @Override @@ -21,7 +35,7 @@ public class RulesCommand implements Command { @Override public String description() { - return "Setup the rules on your server"; + return "Setup the rules on your Discord server"; } @Override From 455017999406cfaadc799b1d647c65da968562f3 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 20 Nov 2019 11:55:31 -0800 Subject: [PATCH 05/16] Very very bad Rules Command. I'll fix this later --- src/main/java/com/bbn/hadder/Hadder.java | 1 + src/main/java/com/bbn/hadder/Rethink.java | 16 ++++++- .../commands/moderation/RulesCommand.java | 42 ++++++++++++++++++- .../bbn/hadder/listener/RulesListener.java | 25 +++++++++++ 4 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/listener/RulesListener.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index efb1536..f44cf0e 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -75,6 +75,7 @@ public class Hadder { new PrivateMessageListener(), new CommandListener(rethink, commandHandler), new GuildListener(rethink, config), + new RulesListener(rethink), new ReadyListener(rethink, config)); try { diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index da6602d..c2165b9 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -139,11 +139,25 @@ public class Rethink { } public String insertGuild(String id) { - return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "")); + return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "")); } public String insertUser(String id) { return this.insert("user", r.hashMap("id", id).with("prefix", "h.")); } + public String 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) { + return (String) this.get("server", "id", guild_id, "message_id"); + } + + public String getRulesRID(String guild_id) { + return (String) this.get("server", "id", guild_id, "role_id"); + } + } 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 be84b17..ef656ed 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -6,9 +6,11 @@ package com.bbn.hadder.commands.moderation; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; +import net.dv8tion.jda.api.entities.Message; public class RulesCommand implements Command { @@ -16,8 +18,46 @@ public class RulesCommand implements Command { public void executed(String[] args, CommandEvent event) { if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules setup") + .setDescription("Please mention the channel în which I should send the rules. This should look like #rules.")) + .build()).queue(); - + new EventWaiter().newOnMessageEventWaiter(msgevent -> { + if (msgevent.getMessage().getMentionedChannels().size() > 0) { + msgevent.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules") + .setDescription("Now please send me the rules.")) + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(msgevent2 -> { + msgevent2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Role to assign")) + .setDescription("Now please send me the name of the role which the user will get after he accepted the rules.") + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(msgevent3 -> { + try { + msgevent3.getGuild().getRolesByName(msgevent3.getMessage().getContentRaw(), false).get(0); + msgevent3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder().setTitle("Successfully set the rules")).build()).queue(); + Message rules = msgevent.getMessage().getMentionedChannels().get(0).sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules")) + .setDescription(msgevent2.getMessage().getContentDisplay()) + .build()).complete(); + rules.addReaction("✅").queue(); + rules.addReaction("❌").queue(); + + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), msgevent3.getGuild().getRolesByName(msgevent3.getMessage().getContentRaw(), false).get(0).getId()); + } catch (Exception e) { + e.printStackTrace(); + } + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() + .setTitle("No Channel mentioned")) + .setDescription("Please mention a channel. This should look like #rules") + .build()).queue(); + } + }, event.getJDA(), event.getAuthor()); } else { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java new file mode 100644 index 0000000..0d9bfb1 --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -0,0 +1,25 @@ +package com.bbn.hadder.listener; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.Rethink; +import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; +import net.dv8tion.jda.api.hooks.ListenerAdapter; + +public class RulesListener extends ListenerAdapter { + + private Rethink rethink; + + public RulesListener(Rethink rethink) { + this.rethink = rethink; + } + + @Override + public void onMessageReactionAdd(MessageReactionAddEvent event) { + if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue(); + } + } +} From cc3eee194571564b54b1e4c6056a8e541215c59e Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 20 Nov 2019 12:05:36 -0800 Subject: [PATCH 06/16] LATEST is deprecated my friends --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c3021ff..e790e10 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ org.json json - LATEST + 20190722 com.rethinkdb From 471aaa887dd11336ede4cf7aa4ab2deaf4f405f4 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 20 Nov 2019 12:05:41 -0800 Subject: [PATCH 07/16] Fix --- src/main/java/com/bbn/hadder/listener/RulesListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java index 0d9bfb1..aba0854 100644 --- a/src/main/java/com/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -19,7 +19,9 @@ public class RulesListener extends ListenerAdapter { @Override public void onMessageReactionAdd(MessageReactionAddEvent event) { if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { - event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue(); + if (!event.getMember().getUser().isBot()) { + event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).queue(); + } } } } From 14360eb5124dabd28152e7ec6aa87e45ad42eb13 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 21 Nov 2019 07:39:44 -0800 Subject: [PATCH 08/16] Fix sth. --- .../commands/moderation/RulesCommand.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 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 ef656ed..a1cafa6 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -19,33 +19,33 @@ public class RulesCommand implements Command { if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules setup") - .setDescription("Please mention the channel în which I should send the rules. This should look like #rules.")) + .setTitle("Set up rules") + .setDescription("Please specify the channel on which I should send the rules. Your message should look like: #rules.")) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(msgevent -> { - if (msgevent.getMessage().getMentionedChannels().size() > 0) { - msgevent.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + new EventWaiter().newOnMessageEventWaiter(event1 -> { + if (event1.getMessage().getMentionedChannels().size() > 0) { + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Rules") - .setDescription("Now please send me the rules.")) + .setDescription("Please send me the rules now.")) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(msgevent2 -> { - msgevent2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + new EventWaiter().newOnMessageEventWaiter(event2 -> { + event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Role to assign")) - .setDescription("Now please send me the name of the role which the user will get after he accepted the rules.") + .setDescription("Please send me the name of the role the user receives after he has accepted the rules.") .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(msgevent3 -> { + new EventWaiter().newOnMessageEventWaiter(event3 -> { try { - msgevent3.getGuild().getRolesByName(msgevent3.getMessage().getContentRaw(), false).get(0); - msgevent3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder().setTitle("Successfully set the rules")).build()).queue(); - Message rules = msgevent.getMessage().getMentionedChannels().get(0).sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder().setTitle("Successfully set the rules")).build()).queue(); + Message rules = event1.getMessage().getMentionedChannels().get(0).sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Rules")) - .setDescription(msgevent2.getMessage().getContentDisplay()) + .setDescription(event2.getMessage().getContentDisplay()) .build()).complete(); rules.addReaction("✅").queue(); rules.addReaction("❌").queue(); - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), msgevent3.getGuild().getRolesByName(msgevent3.getMessage().getContentRaw(), false).get(0).getId()); + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), false).get(0).getId()); } catch (Exception e) { e.printStackTrace(); } From 971f6f422d1922da162072c5a4da6310e418a1b4 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 21 Nov 2019 09:24:54 -0800 Subject: [PATCH 09/16] Better code --- .../commands/moderation/RulesCommand.java | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 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 a1cafa6..468d8a6 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -11,6 +11,8 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.Role; +import net.dv8tion.jda.api.entities.TextChannel; public class RulesCommand implements Command { @@ -22,33 +24,36 @@ public class RulesCommand implements Command { .setTitle("Set up rules") .setDescription("Please specify the channel on which I should send the rules. Your message should look like: #rules.")) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event1 -> { if (event1.getMessage().getMentionedChannels().size() > 0) { + TextChannel channel = event1.getMessage().getMentionedChannels().get(0); event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Rules") - .setDescription("Please send me the rules now.")) + .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, new EmbedBuilder() .setTitle("Role to assign")) - .setDescription("Please send me the name of the role the user receives after he has accepted the rules.") + .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 -> { - try { - event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); - event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder().setTitle("Successfully set the rules")).build()).queue(); - Message rules = event1.getMessage().getMentionedChannels().get(0).sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .setTitle("Rules")) - .setDescription(event2.getMessage().getContentDisplay()) - .build()).complete(); - rules.addReaction("✅").queue(); - rules.addReaction("❌").queue(); - - event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), false).get(0).getId()); - } catch (Exception e) { - e.printStackTrace(); - } + Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); + if (event3.getGuild().getSelfMember().canInteract(role)) { + event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("The role has been successfully set to " + role.getName() + ".")) + .build()).queue(); + Message rules = channel.sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules")) + .setDescription(message) + .build()).complete(); + rules.addReaction("✅").queue(); + rules.addReaction("❌").queue(); + event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId()); + } else { + EmbedBuilder builder = new EmbedBuilder(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); + } }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); } else { From f59d66a65f5a149e14011e66dc8128703e2a4e19 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 21 Nov 2019 11:29:47 -0800 Subject: [PATCH 10/16] Discord Bot Reviews --- src/main/java/com/bbn/hadder/core/Config.java | 4 ++++ src/main/java/com/bbn/hadder/utils/BotList.java | 16 ++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java index f8df1e0..d418dce 100644 --- a/src/main/java/com/bbn/hadder/core/Config.java +++ b/src/main/java/com/bbn/hadder/core/Config.java @@ -121,4 +121,8 @@ public class Config { public String getDiscordExtremeListToken() { return config.getJSONObject("Tokens").getString("DiscordExtremeList"); } + + public String getDiscordBotReviewsToken() { + return config.getJSONObject("Tokens").getString("DiscordBotReviews"); + } } diff --git a/src/main/java/com/bbn/hadder/utils/BotList.java b/src/main/java/com/bbn/hadder/utils/BotList.java index e3352a5..c822e95 100644 --- a/src/main/java/com/bbn/hadder/utils/BotList.java +++ b/src/main/java/com/bbn/hadder/utils/BotList.java @@ -25,6 +25,7 @@ public class BotList { private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639"; private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats"; private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639"; + private static String DiscordBotReviews = "https://discordbotreviews.xyz/api/bot/637002314162372639/stats"; private Config config; @@ -146,6 +147,21 @@ public class BotList { } catch (IOException e) { e.printStackTrace(); } + + // Discord Bot Reviews + + Request discordbotreviews = new Request.Builder() + .url(DiscordBotReviews) + .post(body) + .addHeader("Authorizaion", config.getDiscordBotReviewsToken()) + .build(); + + try { + new OkHttpClient().newCall(discordbotreviews).execute().close(); + System.out.println("Successfully posted count to Discord Bot Reviews!"); + } catch (IOException e) { + e.printStackTrace(); + } } } From 834b23832ec188bb1a7623b7a101bc243e329a21 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 04:23:34 -0800 Subject: [PATCH 11/16] Introducing Feedback Command :D --- src/main/java/com/bbn/hadder/Hadder.java | 1 + .../hadder/commands/misc/FeedbackCommand.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index f44cf0e..dcb566e 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -68,6 +68,7 @@ public class Hadder { new EroticCommand(), new RoleCommand(), new RulesCommand(), + new FeedbackCommand(), new LinkCommand()), config); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java new file mode 100644 index 0000000..537e1b1 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -0,0 +1,31 @@ +package com.bbn.hadder.commands.misc; + +/* + * @author Skidder / GregTCLTK + */ + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; + +public class FeedbackCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + } + + @Override + public String[] labels() { + return new String[]{"feedback"}; + } + + @Override + public String description() { + return "Sends feedback directly to the developers."; + } + + @Override + public String usage() { + return ""; + } +} From fe6b8c4887cf2e1ca0be54fee012f2b896138e4e Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 05:39:21 -0800 Subject: [PATCH 12/16] GitHub API and Config --- pom.xml | 6 ++++++ src/main/java/com/bbn/hadder/core/Config.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/pom.xml b/pom.xml index e790e10..d7a21b9 100644 --- a/pom.xml +++ b/pom.xml @@ -57,6 +57,12 @@ discord-webhooks 0.1.8 + + org.kohsuke + github-api + 1.99 + + diff --git a/src/main/java/com/bbn/hadder/core/Config.java b/src/main/java/com/bbn/hadder/core/Config.java index d418dce..69ca2aa 100644 --- a/src/main/java/com/bbn/hadder/core/Config.java +++ b/src/main/java/com/bbn/hadder/core/Config.java @@ -94,6 +94,10 @@ public class Config { return config.getJSONObject("Tokens").getString("Giphy"); } + public String getGitHubToken() { + return config.getJSONObject("Tokens").getString("GitHub"); + } + public String getMythicalBotListToken() { return config.getJSONObject("Tokens").getString("MythicalBotList"); } From 71930bef175b636144b35f5ed4bc343220917164 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 05:55:36 -0800 Subject: [PATCH 13/16] Channel must be on the same guild --- .../commands/moderation/RulesCommand.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 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 468d8a6..67d4622 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -27,17 +27,18 @@ public class RulesCommand implements Command { new EventWaiter().newOnMessageEventWaiter(event1 -> { if (event1.getMessage().getMentionedChannels().size() > 0) { TextChannel channel = event1.getMessage().getMentionedChannels().get(0); - event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() - .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, new EmbedBuilder() - .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.") + if (channel.getGuild().getId().equals(event1.getGuild().getId())) { + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Rules") + .setDescription("The channel was successfully set to " + channel.getName() + ". Please send me the rules now.")) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event3 -> { + new EventWaiter().newOnMessageEventWaiter(event2 -> { + String message = event2.getMessage().getContentDisplay(); + event2.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .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 -> { Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentRaw(), true).get(0); if (event3.getGuild().getSelfMember().canInteract(role)) { event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() @@ -54,8 +55,14 @@ public class RulesCommand implements Command { EmbedBuilder builder = new EmbedBuilder(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION, builder).build()).queue(); } + }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + } else { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() + .setTitle("Wrong Guild") + .setDescription("The mentioned channel must be on this guid!")) + .build()).queue(); + } } else { event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING, new EmbedBuilder() .setTitle("No Channel mentioned")) From cc15d43036d6113e98b2b6774a440735de0f3454 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 06:14:34 -0800 Subject: [PATCH 14/16] Feedback Command --- .../hadder/commands/misc/FeedbackCommand.java | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index 537e1b1..6fc8e9a 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -6,11 +6,44 @@ package com.bbn.hadder.commands.misc; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.EventWaiter; +import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.EmbedBuilder; +import org.kohsuke.github.GHIssue; +import org.kohsuke.github.GHRepository; +import org.kohsuke.github.GitHub; + +import java.io.IOException; public class FeedbackCommand implements Command { - + @Override public void executed(String[] args, CommandEvent event) { + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Feedback Topic") + .setDescription("Please send me the feedback topic.")) + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event1 -> { + String title = event1.getMessage().getContentDisplay(); + event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Feedback Description") + .setDescription("Please send me the feedback description now.")) + .build()).queue(); + new EventWaiter().newOnMessageEventWaiter(event2 -> { + String description = event2.getMessage().getContentDisplay(); + try { + GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken()); + GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder"); + GHIssue issue = Hadder.createIssue(title).body("Feedback by " + event.getAuthor().getAsTag() + "
" + description).create(); + event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() + .setTitle("Feedback successfully sent")) + .setDescription(issue.getHtmlUrl().toString()) + .build()).queue(); + } catch (IOException e) { + e.printStackTrace(); + } + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); } @@ -26,6 +59,6 @@ public class FeedbackCommand implements Command { @Override public String usage() { - return ""; + return ""; } } From 1e7560b1b4e1e7a089812be202560ca329c19284 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 06:24:44 -0800 Subject: [PATCH 15/16] Feedback label --- src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index 6fc8e9a..002939c 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -34,7 +34,7 @@ public class FeedbackCommand implements Command { try { GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken()); GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder"); - GHIssue issue = Hadder.createIssue(title).body("Feedback by " + event.getAuthor().getAsTag() + "
" + description).create(); + GHIssue issue = Hadder.createIssue(title).body("Feedback by " + event.getAuthor().getAsTag() + "
" + description).label("feedback").create(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder() .setTitle("Feedback successfully sent")) .setDescription(issue.getHtmlUrl().toString()) From 66657623b3cb45784a1203ade67ecd26006516cc Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 06:35:27 -0800 Subject: [PATCH 16/16] OOOFFFFFF --- src/main/java/com/bbn/hadder/utils/BotList.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/utils/BotList.java b/src/main/java/com/bbn/hadder/utils/BotList.java index c822e95..be35045 100644 --- a/src/main/java/com/bbn/hadder/utils/BotList.java +++ b/src/main/java/com/bbn/hadder/utils/BotList.java @@ -138,7 +138,7 @@ public class BotList { Request discordextremelist = new Request.Builder() .url(DiscordExtremeList) .post(body) - .addHeader("Authorizaion", config.getDiscordExtremeListToken()) + .addHeader("Authorization", config.getDiscordExtremeListToken()) .build(); try { @@ -153,7 +153,7 @@ public class BotList { Request discordbotreviews = new Request.Builder() .url(DiscordBotReviews) .post(body) - .addHeader("Authorizaion", config.getDiscordBotReviewsToken()) + .addHeader("Authorization", config.getDiscordBotReviewsToken()) .build(); try {