commit
4bbb27b79b
9 changed files with 168 additions and 50 deletions
2
pom.xml
2
pom.xml
|
|
@ -19,7 +19,7 @@
|
|||
<dependency>
|
||||
<groupId>net.dv8tion</groupId>
|
||||
<artifactId>JDA</artifactId>
|
||||
<version>4.1.0_81</version>
|
||||
<version>4.1.0_84</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.json</groupId>
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ public class Hadder {
|
|||
new QueueCommand(),
|
||||
new InfoCommand(),
|
||||
new SkipCommand(),
|
||||
new EditRulesCommand(),
|
||||
new StopCommand()), config, helpCommand);
|
||||
|
||||
builder.addEventListeners(
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import com.bbn.hadder.core.Config;
|
|||
import com.rethinkdb.RethinkDB;
|
||||
import com.rethinkdb.gen.exc.ReqlOpFailedError;
|
||||
import com.rethinkdb.net.Connection;
|
||||
import com.rethinkdb.net.Cursor;
|
||||
import org.json.JSONArray;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
|
@ -56,33 +55,31 @@ public class Rethink {
|
|||
|
||||
public Object get(String table, String where, String value, String column) {
|
||||
JSONArray array = this.getAsArray(table, where, value);
|
||||
if (array.length()>0)
|
||||
if (array.length() > 0)
|
||||
if (array.getJSONObject(0).has(column))
|
||||
return array.getJSONObject(0).get(column);
|
||||
else return null;
|
||||
else return null;
|
||||
}
|
||||
|
||||
public String update(String table, String wherevalue, String what, String whatvalue) {
|
||||
String out = "";
|
||||
public void update(String table, String value, String what, String whatvalue) {
|
||||
try {
|
||||
Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn);
|
||||
out=cursor.toString();
|
||||
} catch (ClassCastException ignored) {}
|
||||
return out;
|
||||
r.table(table).get(value).update(r.hashMap(what, whatvalue)).run(conn);
|
||||
} catch (ClassCastException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public String insert(String table, Object object) {
|
||||
String out = "";
|
||||
public void insert(String table, Object object) {
|
||||
try {
|
||||
Cursor cursor = r.table(table).insert(object).run(conn);
|
||||
out = cursor.next().toString();
|
||||
} catch (ClassCastException ignored) {}
|
||||
return out;
|
||||
r.table(table).insert(object).run(conn);
|
||||
} catch (ClassCastException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(String table, String where, String wherevalue) {
|
||||
r.table(table).filter(row -> row.g(where.toLowerCase()).eq(wherevalue)).delete().run(conn);
|
||||
public void remove(String table, String where, String value) {
|
||||
r.table(table).filter(row -> row.g(where.toLowerCase()).eq(value)).delete().run(conn);
|
||||
}
|
||||
|
||||
public void setup() {
|
||||
|
|
@ -108,16 +105,16 @@ public class Rethink {
|
|||
}
|
||||
}
|
||||
|
||||
public void setUserPrefix(String prefix, String userid) {
|
||||
this.update("user", userid, "prefix", prefix);
|
||||
public void setUserPrefix(String prefix, String user_id) {
|
||||
this.update("user", user_id, "prefix", prefix);
|
||||
}
|
||||
|
||||
public String getUserPrefix(String id) {
|
||||
return (String) this.get("user", "id", id, "prefix");
|
||||
}
|
||||
|
||||
public void setGuildPrefix(String prefix, String guildid) {
|
||||
this.update("server", guildid, "prefix", prefix);
|
||||
public void setGuildPrefix(String prefix, String guild_id) {
|
||||
this.update("server", guild_id, "prefix", prefix);
|
||||
}
|
||||
|
||||
public String getGuildPrefix(String id) {
|
||||
|
|
@ -139,40 +136,40 @@ public class Rethink {
|
|||
this.insert("user", r.hashMap("id", id).with("prefix", "h.").with("language", "en"));
|
||||
}
|
||||
|
||||
public void setNeededstars(String stars, String guildid) {
|
||||
this.update("server", guildid, "neededstars", stars);
|
||||
public void setNeededstars(String stars, String guild_id) {
|
||||
this.update("server", guild_id, "neededstars", stars);
|
||||
}
|
||||
|
||||
public String getNeededstars(String guildid) {
|
||||
return (String) this.get("server", "id", guildid, "neededstars");
|
||||
public String getNeededstars(String guild_id) {
|
||||
return (String) this.get("server", "id", guild_id, "neededstars");
|
||||
}
|
||||
|
||||
public void setStarboardChannel(String guildid, String channelid) {
|
||||
this.update("server", guildid, "starboard", channelid);
|
||||
public void setStarboardChannel(String guild_id, String channel_id) {
|
||||
this.update("server", guild_id, "starboard", channel_id);
|
||||
}
|
||||
|
||||
public String getStarboardChannel(String guildid) {
|
||||
return (String) this.get("server", "id", guildid, "starboard");
|
||||
public String getStarboardChannel(String guild_id) {
|
||||
return (String) this.get("server", "id", guild_id, "starboard");
|
||||
}
|
||||
|
||||
public boolean hasStarboardChannel(String guildid) {
|
||||
return !this.get("server", "id", guildid, "starboard").equals("");
|
||||
public boolean hasStarboardChannel(String guild_id) {
|
||||
return !this.get("server", "id", guild_id, "starboard").equals("");
|
||||
}
|
||||
|
||||
public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) {
|
||||
this.insert("stars", r.hashMap("id", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid));
|
||||
public void insertStarboardMessage(String message_id, String guild_id, String starboardmessageid) {
|
||||
this.insert("stars", r.hashMap("id", message_id).with("guild", guild_id).with("starboardmsg", starboardmessageid));
|
||||
}
|
||||
|
||||
public String getStarboardMessage(String messageid) {
|
||||
return (String) this.get("stars", "id", messageid, "starboardmsg");
|
||||
public String getStarboardMessage(String message_id) {
|
||||
return (String) this.get("stars", "id", message_id, "starboardmsg");
|
||||
}
|
||||
|
||||
public void removeStarboardMessage(String messageid) {
|
||||
this.remove("stars", "id", messageid);
|
||||
public void removeStarboardMessage(String message_id) {
|
||||
this.remove("stars", "id", message_id);
|
||||
}
|
||||
|
||||
public boolean hasStarboardMessage(String messageid) {
|
||||
return this.get("stars", "id", messageid, "guild") != null;
|
||||
public boolean hasStarboardMessage(String message_id) {
|
||||
return this.get("stars", "id", message_id, "guild") != null;
|
||||
}
|
||||
|
||||
public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink;
|
|||
import com.bbn.hadder.commands.general.HelpCommand;
|
||||
import com.bbn.hadder.core.CommandHandler;
|
||||
import com.bbn.hadder.core.Config;
|
||||
import com.bbn.hadder.utils.EventWaiter;
|
||||
import com.bbn.hadder.utils.MessageEditor;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
|
|
@ -18,14 +19,16 @@ public class CommandEvent extends MessageReceivedEvent {
|
|||
private CommandHandler commandHandler;
|
||||
private HelpCommand helpCommand;
|
||||
private MessageEditor messageEditor;
|
||||
private EventWaiter eventWaiter;
|
||||
|
||||
public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor) {
|
||||
public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter) {
|
||||
super(api, responseNumber, message);
|
||||
this.rethink = rethink;
|
||||
this.config = config;
|
||||
this.commandHandler = commandHandler;
|
||||
this.helpCommand = helpCommand;
|
||||
this.messageEditor = messageEditor;
|
||||
this.eventWaiter = eventWaiter;
|
||||
}
|
||||
|
||||
public Rethink getRethink() {
|
||||
|
|
@ -47,4 +50,8 @@ public class CommandEvent extends MessageReceivedEvent {
|
|||
public MessageEditor getMessageEditor() {
|
||||
return messageEditor;
|
||||
}
|
||||
|
||||
public EventWaiter getEventWaiter() {
|
||||
return eventWaiter;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ public class FeedbackCommand implements Command {
|
|||
GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken());
|
||||
GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder");
|
||||
GHIssue issue = Hadder.createIssue(title).body("<strong>Feedback by " + event.getAuthor().getAsTag() + "</strong><br>" + description).label("feedback").create();
|
||||
issue.addLabels("feedback");
|
||||
event.getTextChannel().sendMessage(
|
||||
event.getMessageEditor().getMessage(
|
||||
MessageEditor.MessageType.INFO,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
package com.bbn.hadder.commands.moderation;
|
||||
|
||||
import com.bbn.hadder.commands.Command;
|
||||
import com.bbn.hadder.commands.CommandEvent;
|
||||
import com.bbn.hadder.core.Perm;
|
||||
import com.bbn.hadder.core.Perms;
|
||||
import com.bbn.hadder.utils.MessageEditor;
|
||||
import net.dv8tion.jda.api.entities.TextChannel;
|
||||
|
||||
/**
|
||||
* @author Skidder / GregTCLTK
|
||||
*/
|
||||
|
||||
@Perms(Perm.MANAGE_SERVER)
|
||||
public class EditRulesCommand implements Command {
|
||||
|
||||
@Override
|
||||
public void executed(String[] args, CommandEvent event) {
|
||||
if (event.getRethink().getRulesMID(event.getGuild().getId()).length() == 18) {
|
||||
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
|
||||
"commands.moderation.editrules.message.title",
|
||||
"commands.moderation.editrules.message.description").build()).queue();
|
||||
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event1 -> {
|
||||
String rules = event1.getMessage().getContentRaw();
|
||||
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
|
||||
"commands.moderation.editrules.channel.title",
|
||||
"commands.moderation.editrules.channel.description").build()).queue();
|
||||
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event2 -> {
|
||||
if (event2.getMessage().getMentionedChannels().size() == 1) {
|
||||
try {
|
||||
TextChannel channel = event2.getMessage().getMentionedChannels().get(0);
|
||||
checkChannel(event, rules, channel);
|
||||
} catch (Exception e) {
|
||||
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
|
||||
"commands.moderation.editrules.channel.error.title",
|
||||
"commands.moderation.editrules.channel.error.description")
|
||||
.build()).queue();
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
TextChannel channel = event1.getGuild().getTextChannelsByName(event2.getMessage().getContentRaw(), true).get(0);
|
||||
checkChannel(event, rules, channel);
|
||||
} catch (Exception e) {
|
||||
event.getTextChannel().sendMessage(
|
||||
event.getMessageEditor().getMessage(
|
||||
MessageEditor.MessageType.ERROR,
|
||||
"commands.moderation.editrules.channel.error.title",
|
||||
"commands.moderation.editrules.channel.error.description")
|
||||
.build()).queue();
|
||||
}
|
||||
}
|
||||
}, event.getJDA(), event.getAuthor());
|
||||
}, event.getJDA(), event.getAuthor());
|
||||
} else {
|
||||
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
|
||||
"commands.moderation.editrules.error.title", "",
|
||||
"commands.moderation.editrules.error.description", event.getRethink().getGuildPrefix(event.getGuild().getId())).build()).queue();
|
||||
}
|
||||
}
|
||||
|
||||
public void checkChannel(CommandEvent event, String rules, TextChannel channel) {
|
||||
try {
|
||||
channel.retrieveMessageById(event.getRethink().getRulesMID(event.getGuild().getId())).queue();
|
||||
setRules(event, rules, channel);
|
||||
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
|
||||
"commands.moderation.editrules.success.title",
|
||||
"commands.moderation.editrules.success.description").build()).queue();
|
||||
} catch (Exception e) {
|
||||
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
|
||||
"commands.moderation.editrules.channel.message.error.title",
|
||||
"commands.moderation.editrules.channel.message.error.description").build()).queue();
|
||||
}
|
||||
}
|
||||
|
||||
public void setRules(CommandEvent event, String rules, TextChannel channel) {
|
||||
channel.retrieveMessageById(event.getRethink().getRulesMID(event.getGuild().getId())).complete().editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
|
||||
.setTitle("Rules")
|
||||
.setDescription(rules)
|
||||
.build()).queue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] labels() {
|
||||
return new String[]{"editrules", "rulesedit", "edit_rules", "rules_edit"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String description() {
|
||||
return "commands.moderation.editrules.help.description";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String usage() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@ public class RulesCommand implements Command {
|
|||
"commands.moderation.rules.setup.title",
|
||||
"commands.moderation.rules.setup.description")
|
||||
.build()).queue();
|
||||
new EventWaiter().newOnMessageEventWaiter(event1 -> {
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event1 -> {
|
||||
if (event1.getMessage().getMentionedChannels().size() == 1) {
|
||||
try {
|
||||
TextChannel channel = event1.getMessage().getMentionedChannels().get(0);
|
||||
|
|
@ -70,7 +70,7 @@ public class RulesCommand implements Command {
|
|||
"commands.moderation.rules.rules.description",
|
||||
channel.getName())
|
||||
.build()).queue();
|
||||
new EventWaiter().newOnMessageEventWaiter(event2 -> {
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event2 -> {
|
||||
String message = event2.getMessage().getContentRaw();
|
||||
event2.getChannel().sendMessage(
|
||||
event.getMessageEditor().getMessage(
|
||||
|
|
@ -120,16 +120,16 @@ public class RulesCommand implements Command {
|
|||
"",
|
||||
"commands.moderation.rules.emote.accept.description", role.getName())
|
||||
.build()).queue();
|
||||
new EventWaiter().newOnMessageEventWaiter(event4 -> {
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event4 -> {
|
||||
if (event4.getMessage().getEmotes().size() == 1) {
|
||||
Emote aemote = event4.getMessage().getEmotes().get(0);
|
||||
event4.getChannel().sendMessage(
|
||||
event.getMessageEditor().getMessage(
|
||||
MessageEditor.MessageType.INFO,
|
||||
"commands.moderation.rules.emote.decline.title", "",
|
||||
"commands.moderation.rules.emote.decline.title", String.valueOf(aemote))
|
||||
"commands.moderation.rules.emote.decline.description", String.valueOf(aemote))
|
||||
.build()).queue();
|
||||
new EventWaiter().newOnMessageEventWaiter(event5 -> {
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event5 -> {
|
||||
Emote demote = event5.getMessage().getEmotes().get(0);
|
||||
if (!aemote.equals(demote)) {
|
||||
Message rules = channel.sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
|
||||
|
|
@ -174,7 +174,7 @@ public class RulesCommand implements Command {
|
|||
"commands.moderation.rules.emote.decline.title",
|
||||
"commands.moderation.rules.emoji.decline.description")
|
||||
.build()).queue();
|
||||
new EventWaiter().newOnMessageEventWaiter(event5 -> {
|
||||
event.getEventWaiter().newOnMessageEventWaiter(event5 -> {
|
||||
String demote = event5.getMessage().getContentRaw();
|
||||
if (!aemote.equals(demote)) {
|
||||
Message rules = channel.sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink;
|
|||
import com.bbn.hadder.commands.Command;
|
||||
import com.bbn.hadder.commands.CommandEvent;
|
||||
import com.bbn.hadder.commands.general.HelpCommand;
|
||||
import com.bbn.hadder.utils.EventWaiter;
|
||||
import com.bbn.hadder.utils.MessageEditor;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
|
||||
|
|
@ -34,7 +35,7 @@ public class CommandHandler {
|
|||
if (args.length > 0 && args[0].equals("")) args = new String[0];
|
||||
|
||||
CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink,
|
||||
config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()));
|
||||
config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()), new EventWaiter());
|
||||
if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) {
|
||||
for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) {
|
||||
if (!perm.check(commandEvent)) {
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules
|
|||
commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify.
|
||||
commands.moderation.rules.channel.error.title = Channel not found
|
||||
commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again.
|
||||
commands.moderation.rules.rules.title = Rules
|
||||
commands.moderation.rules.rules.title = Rules message
|
||||
commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now.
|
||||
commands.moderation.rules.role.title = Role to assign
|
||||
commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.
|
||||
|
|
@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote
|
|||
commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified.
|
||||
commands.moderation.rules.emote.decline.title = Custom Decline Emote
|
||||
commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote.
|
||||
commands.moderation.rules.success.title = Successfully set the rules
|
||||
commands.moderation.rules.success.description = I successfully send the rules in %extra%.
|
||||
commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s).
|
||||
commands.moderation.rules.emote.error.equal.title = Emotes are equal
|
||||
commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other.
|
||||
commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote.
|
||||
commands.moderation.rules.emoji.error.description = The given emote can't be used.
|
||||
commands.moderation.rules.success.title = Successfully set the rules
|
||||
commands.moderation.rules.success.description = I successfully send the rules in %extra%.
|
||||
commands.moderation.rules.error.message.title = Can't write messages
|
||||
commands.moderation.rules.error.message.description = I can not write messages in the specified channel
|
||||
commands.moderation.rules.help.description = Setup the rules on your Discord server
|
||||
commands.moderation.starboard.success.title = Successfully set the Channel\!
|
||||
commands.moderation.editrules.channel.title = Rules channel
|
||||
commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention
|
||||
commands.moderation.editrules.channel.found.error.title = Channel not found
|
||||
commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again.
|
||||
commands.moderation.editrules.channel.message.error.title = No rules message
|
||||
commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel.
|
||||
commands.moderation.editrules.message.title = New message
|
||||
commands.moderation.editrules.message.description = Please send me the new rules message now.
|
||||
commands.moderation.editrules.error.title = No rules
|
||||
commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules
|
||||
commands.moderation.editrules.success.title = Successfully changed
|
||||
commands.moderation.editrules.success.description = I successfully changed the rules
|
||||
commands.moderation.editrules.help.description = Edits the rules message.
|
||||
|
||||
commands.music.join.success.title = Successfully connected
|
||||
commands.music.join.success.description = I successfully connected to %extra%.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue