Very very bad Rules Command. I'll fix this later

This commit is contained in:
GregTCLTK 2019-11-20 11:55:31 -08:00
parent 450253106c
commit 4550179994
No known key found for this signature in database
GPG key ID: A91BADE5C070FF67
4 changed files with 82 additions and 2 deletions

View file

@ -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 {

View file

@ -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");
}
}

View file

@ -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();

View file

@ -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();
}
}
}