Greg dev #79
4 changed files with 82 additions and 2 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
25
src/main/java/com/bbn/hadder/listener/RulesListener.java
Normal file
25
src/main/java/com/bbn/hadder/listener/RulesListener.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue