From 834b23832ec188bb1a7623b7a101bc243e329a21 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 22 Nov 2019 04:23:34 -0800 Subject: [PATCH 1/4] 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 2/4] 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 3/4] 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 4/4] 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 ""; } }