diff --git a/pom.xml b/pom.xml
index df6a664..6839a25 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
org.json
json
- LATEST
+ 20190722
com.rethinkdb
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..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 {
@@ -19,36 +21,39 @@ 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) {
+ TextChannel channel = event1.getMessage().getMentionedChannels().get(0);
+ event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO, new EmbedBuilder()
.setTitle("Rules")
- .setDescription("Now please send me the rules."))
+ .setDescription("The channel was successfully set to " + channel.getName() + ". 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 -> {
+ String message = event2.getMessage().getContentDisplay();
+ 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("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(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();
- }
+ 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()
+ .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 {
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();
+ }
}
}
}