diff --git a/pom.xml b/pom.xml
index 6839a25..fcd89b3 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/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..6fc8e9a
--- /dev/null
+++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java
@@ -0,0 +1,64 @@
+package com.bbn.hadder.commands.misc;
+
+/*
+ * @author Skidder / GregTCLTK
+ */
+
+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());
+
+ }
+
+ @Override
+ public String[] labels() {
+ return new String[]{"feedback"};
+ }
+
+ @Override
+ public String description() {
+ return "Sends feedback directly to the developers.";
+ }
+
+ @Override
+ public String usage() {
+ return "";
+ }
+}
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"))
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");
}