diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index b12eb65..ca360af 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -119,7 +119,8 @@ public class Hadder { new BlacklistCommand(), new PauseCommand(), new LoopCommand(), - new BassCommand()), config, helpCommand); + new BassCommand(), + new EchoCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index 027bde8..56f3191 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -21,7 +21,9 @@ import com.rethinkdb.RethinkDB; import com.rethinkdb.gen.exc.ReqlOpFailedError; import com.rethinkdb.net.Connection; import org.json.JSONArray; +import org.json.JSONObject; +import java.lang.reflect.Field; import java.util.NoSuchElementException; @@ -79,28 +81,10 @@ public class Rethink { return r.table(table).get(wherevalue).getField(column).run(conn); } - public void update(String table, String where, String what, String value) { - try { - r.table(table).get(where).update(r.hashMap(what, value)).run(conn); - } catch (ClassCastException e) { - e.printStackTrace(); - } - } - - public void update(String table, String where, String what, int value) { - try { - r.table(table).get(where).update(r.hashMap(what, value)).run(conn); - } catch (ClassCastException e) { - e.printStackTrace(); - } - } - - public void update(String table, String where, String what, boolean value) { - try { - r.table(table).get(where).update(r.hashMap(what, value)).run(conn); - } catch (ClassCastException e) { - e.printStackTrace(); - } + public JSONObject getObjectByID(String table, String id) { + String response = r.table(table).get(id).toJson().run(conn); + System.out.println(response); + return new JSONObject(response); } public void insert(String table, Object object) { @@ -124,7 +108,7 @@ public class Rethink { try { r.tableCreate("server").run(conn); } catch (ReqlOpFailedError e) { - System.out.println(e.getMessage()); + System.out.println(e.getMessage()); } try { r.tableCreate("user").run(conn); @@ -138,22 +122,6 @@ public class Rethink { } } - public void setUserPrefix(String prefix, String user_id) { - this.update("user", user_id, "prefix", prefix); - } - - public String getUserPrefix(String id) { - return (String) this.getByID("user", id, "prefix"); - } - - public void setGuildPrefix(String prefix, String guild_id) { - this.update("server", guild_id, "prefix", prefix); - } - - public String getGuildPrefix(String id) { - return (String) this.getByID("server", id, "prefix"); - } - public void insertGuild(String id) { this.insert("server", r .hashMap("id", id) @@ -174,87 +142,54 @@ public class Rethink { .with("blacklisted", "none")); } - public void setBlackListed(String id, String commands) { - this.update("user", id, "blacklisted", commands); - } - - public String getBlackListed(String id) { - return (String) this.getByID("user", id, "blacklisted"); - } - - public void setNeededStars(String stars, String guild_id) { - this.update("server", guild_id, "neededstars", stars); - } - - public String getNeededStars(String guild_id) { - return (String) this.getByID("server", guild_id, "neededstars"); - } - - public void setStarboardChannel(String guild_id, String channel_id) { - this.update("server", guild_id, "starboard", channel_id); - } - - public String getStarboardChannel(String guild_id) { - return (String) this.getByID("server", guild_id, "starboard"); - } - + // TODO public boolean hasStarboardChannel(String guild_id) { return !this.getByID("server", guild_id, "starboard").equals(""); } - + // TODO public void insertStarboardMessage(String message_id, String guild_id, String starboard_message_id) { this.insert("stars", r.hashMap("id", message_id).with("guild", guild_id).with("starboardmsg", starboard_message_id)); } - + // TODO public String getStarboardMessage(String message_id) { return (String) this.getByID("stars", message_id, "starboardmsg"); } - + // TODO public void removeStarboardMessage(String message_id) { this.remove("stars", "id", message_id); } - + // TODO public boolean hasStarboardMessage(String message_id) { return this.getByID("stars", message_id, "guild") != null; } - public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { - this.update("server", guild_id, "message_id", message_id); - this.update("server", guild_id, "role_id", role_id); - this.update("server", guild_id, "accept_emote", accept_emote); - this.update("server", guild_id, "decline_emote", decline_emote); + + public void pushServer(RethinkServer server) { + JSONObject object = new JSONObject(); + for (Field field : server.getClass().getDeclaredFields()) { + if (!field.getName().equals("rethink")) { + try { + object.put(field.getName(), field.get(server)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + r.table("server").get(server.getId()).update(object).run(conn); } - public String getRulesMID(String guild_id) { - return (String) this.getByID("server", guild_id, "message_id"); - } - - public String getRulesRID(String guild_id) { - return (String) this.getByID("server", guild_id, "role_id"); - } - - public String getRulesAEmote(String guild_id) { - return (String) this.getByID("server", guild_id, "accept_emote"); - } - - public String getRulesDEmote(String guild_id) { - return (String) this.getByID("server", guild_id, "decline_emote"); - } - - public void setInviteDetection(String guild_id, boolean b) { - this.update("server", guild_id, "invite_detect", b); - } - - public Boolean getInviteDetection(String guild_id) { - return (Boolean) this.getByID("server", guild_id, "invite_detect"); - } - - public void setLanguage(String user_id, String language) { - this.update("user", user_id, "language", language); - } - - public String getLanguage(String user_id) { - return (String) this.getByID("user", user_id, "language"); + public void pushUser(RethinkUser user) { + JSONObject object = new JSONObject(); + for (Field field : user.getClass().getDeclaredFields()) { + if (!field.getName().equals("rethink")) { + try { + object.put(field.getName(), field.get(user)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + r.table("user").get(user.getId()).update(object).run(conn); } } diff --git a/src/main/java/com/bbn/hadder/RethinkServer.java b/src/main/java/com/bbn/hadder/RethinkServer.java new file mode 100644 index 0000000..69813c1 --- /dev/null +++ b/src/main/java/com/bbn/hadder/RethinkServer.java @@ -0,0 +1,117 @@ +/* + * @author Hax / Hax6775 / Schlauer_Hax + */ + +package com.bbn.hadder; + +import org.json.JSONObject; + +import java.lang.reflect.Field; + +public class RethinkServer { + + private Rethink rethink; + + String accept_emote = ""; + String decline_emote = ""; + String id; + boolean invite_detect = false; + String message_id = ""; + String neededstars = "3"; + String prefix = "h."; + String role_id = ""; + String starboard = ""; + + public RethinkServer(JSONObject object, Rethink rethink) { + for (Field field : this.getClass().getDeclaredFields()) { + if (!field.getName().equals("rethink")) { + try { + if (object.has(field.getName())) + field.set(this, object.get(field.getName())); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + this.rethink = rethink; + } + + public String getAccept_emote() { + return accept_emote; + } + + public void setAccept_emote(String accept_emote) { + this.accept_emote = accept_emote; + } + + public String getDecline_emote() { + return decline_emote; + } + + public void setDecline_emote(String decline_emote) { + this.decline_emote = decline_emote; + } + + public String getId() { + return id; + } + + public boolean isInvite_detect() { + return invite_detect; + } + + public void setInvite_detect(boolean invite_detect) { + this.invite_detect = invite_detect; + } + + public String getMessage_id() { + return message_id; + } + + public void setMessage_id(String message_id) { + this.message_id = message_id; + } + + public String getNeededstars() { + return neededstars; + } + + public void setNeededstars(String neededstars) { + this.neededstars = neededstars; + } + + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + public String getRole_id() { + return role_id; + } + + public void setRole_id(String role_id) { + this.role_id = role_id; + } + + public String getStarboard() { + return starboard; + } + + public void setStarboard(String starboard) { + this.starboard = starboard; + } + + public void updateRules(String message_id, String role_id, String accept_emote, String decline_emote) { + this.setMessage_id(message_id); + this.setRole_id(role_id); + this.setAccept_emote(accept_emote); + this.setDecline_emote(decline_emote); + } + + public void push() { + rethink.pushServer(this); + } +} diff --git a/src/main/java/com/bbn/hadder/RethinkUser.java b/src/main/java/com/bbn/hadder/RethinkUser.java new file mode 100644 index 0000000..fd74fd4 --- /dev/null +++ b/src/main/java/com/bbn/hadder/RethinkUser.java @@ -0,0 +1,77 @@ +/* + * @author Hax / Hax6775 / Schlauer_Hax + */ + +package com.bbn.hadder; + +import org.json.JSONObject; + +import java.lang.reflect.Field; + +public class RethinkUser { + + private Rethink rethink; + + String id; + String prefix = "h."; + String language = "en"; + String blacklisted = "none"; + + public RethinkUser(JSONObject object, Rethink rethink) { + for (Field field : this.getClass().getDeclaredFields()) { + if (!field.getName().equals("rethink")) { + try { + if (object.has(field.getName())) + field.set(this, object.getString(field.getName())); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + this.rethink = rethink; + } + + public RethinkUser(String id) { + this.id = id; + } + + public Rethink getRethink() { + return rethink; + } + + public void setRethink(Rethink rethink) { + this.rethink = rethink; + } + + public String getId() { + return id; + } + + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + public String getBlacklisted() { + return blacklisted; + } + + public void setBlacklisted(String blacklisted) { + this.blacklisted = blacklisted; + } + + public void push() { + rethink.pushUser(this); + } +} \ No newline at end of file diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java index 072ddc0..91cb6ea 100644 --- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java @@ -17,6 +17,8 @@ package com.bbn.hadder.commands; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; +import com.bbn.hadder.RethinkUser; import com.bbn.hadder.audio.AudioManager; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.core.CommandHandler; @@ -26,6 +28,7 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; +import org.json.JSONObject; import javax.annotation.Nonnull; @@ -38,8 +41,13 @@ public class CommandEvent extends MessageReceivedEvent { private MessageEditor messageEditor; private EventWaiter eventWaiter; private AudioManager audioManager; + private RethinkUser rethinkUser; + private RethinkServer rethinkServer; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter, AudioManager audioManager) { + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, + CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, + EventWaiter eventWaiter, AudioManager audioManager, RethinkUser rethinkUser, + RethinkServer rethinkServer) { super(api, responseNumber, message); this.rethink = rethink; this.config = config; @@ -48,17 +56,8 @@ public class CommandEvent extends MessageReceivedEvent { this.messageEditor = messageEditor; this.eventWaiter = eventWaiter; this.audioManager = audioManager; - } - - public CommandEvent(MessageReceivedEvent event, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter, AudioManager audioManager) { - super(event.getJDA(), event.getResponseNumber(), event.getMessage()); - this.rethink = rethink; - this.config = config; - this.commandHandler = commandHandler; - this.helpCommand = helpCommand; - this.messageEditor = messageEditor; - this.eventWaiter = eventWaiter; - this.audioManager = audioManager; + this.rethinkUser = rethinkUser; + this.rethinkServer = rethinkServer; } public Rethink getRethink() { @@ -88,4 +87,12 @@ public class CommandEvent extends MessageReceivedEvent { public AudioManager getAudioManager() { return audioManager; } + + public RethinkServer getRethinkServer() { + return rethinkServer; + } + + public RethinkUser getRethinkUser() { + return rethinkUser; + } } diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java index d9ed365..2b8e89d 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java @@ -38,9 +38,9 @@ public class ClydeCommand implements Command { @Override public void executed(String[] args, CommandEvent e) { if (args.length > 0) { - if (e.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { - TextChannel channel = e.getMessage().getTextChannel(); - String content = e.getMessage().getContentRaw().replace(e.getRethink().getGuildPrefix(e.getGuild().getId()), "").replace(e.getRethink().getUserPrefix(e.getAuthor().getId()), "").replace("clyde", ""); + if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { + TextChannel channel = event.getMessage().getTextChannel(); + String content = event.getMessage().getContentRaw().replace(event.getRethinkServer().getPrefix(), "").replace(event.getRethinkUser().getPrefix(), "").replace("clyde", ""); Webhook webhook = channel.createWebhook(e.getConfig().getClydeName()).complete(); try { diff --git a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java index 1b51fe0..89cc9d2 100644 --- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java @@ -79,10 +79,10 @@ public class HelpCommand implements Command { StringBuilder b = new StringBuilder(); b.append(e.getMessageEditor().getTerm("commands.general.help.description")).append(" ").append(e.getMessageEditor().getTerm(cmd.description())).append("\n"); if (cmd.usage() != null) { - b.append(e.getMessageEditor().getTerm("commands.general.help.usage")).append(" ").append(e.getRethink().getGuildPrefix(e.getGuild().getId())).append(name).append(" ").append(cmd.usage()).append("\n"); + b.append(event.getMessageEditor().getTerm("commands.general.help.usage")).append(" ").append(event.getRethinkServer().getPrefix()).append(name).append(" ").append(cmd.usage()).append("\n"); } if (cmd.example() != null) { - b.append(e.getMessageEditor().getTerm("commands.general.help.example")).append(" ").append(e.getRethink().getGuildPrefix(e.getGuild().getId())).append(name).append(" ").append(cmd.example()); + b.append(event.getMessageEditor().getTerm("commands.general.help.example")).append(" ").append(event.getRethinkServer().getPrefix()).append(name).append(" ").append(cmd.example()); } e.getChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java index a949c9a..b213b27 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java @@ -27,9 +27,9 @@ import net.dv8tion.jda.api.entities.TextChannel; public class EditRulesCommand implements Command { @Override - public void executed(String[] args, CommandEvent e) { - if (e.getRethink().getRulesMID(e.getGuild().getId()).length() == 18) { - e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + public void executed(String[] args, CommandEvent event) { + if (event.getRethinkServer().getMessage_id().length() == 18) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.editrules.message.title", "commands.moderation.editrules.message.description").build()).queue(); @@ -68,15 +68,15 @@ public class EditRulesCommand implements Command { } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.editrules.error.title", "", - "commands.moderation.editrules.error.description", e.getRethink().getGuildPrefix(e.getGuild().getId())).build()).queue(); + "commands.moderation.editrules.error.description", event.getRethinkServer().getPrefix()).build()).queue(); } } public void checkChannel(CommandEvent e, String rules, TextChannel channel) { try { - channel.retrieveMessageById(e.getRethink().getRulesMID(e.getGuild().getId())).queue(); - setRules(e, rules, channel); - e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + channel.retrieveMessageById(event.getRethinkServer().getMessage_id()).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 ex) { @@ -86,8 +86,8 @@ public class EditRulesCommand implements Command { } } - public void setRules(CommandEvent e, String rules, TextChannel channel) { - channel.retrieveMessageById(e.getRethink().getRulesMID(e.getGuild().getId())).complete().editMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) + public void setRules(CommandEvent event, String rules, TextChannel channel) { + channel.retrieveMessageById(event.getRethinkServer().getMessage_id()).complete().editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setTitle("Rules") .setDescription(rules) .build()).queue(); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java index ce692f4..c2548ea 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -31,14 +31,15 @@ public class InviteDetectCommand implements Command { String opinion = args[0].toLowerCase(); switch (opinion) { case "on": - if (!e.getRethink().getInviteDetection(e.getGuild().getId())) { - e.getRethink().setInviteDetection(e.getGuild().getId(), true); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage( + if (!event.getRethinkServer().isInvite_detect()) { + event.getRethinkServer().setInvite_detect(true); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.invitedetect.activate.success.title", "commands.moderation.invitedetect.activate.success.description") .build()).queue(); + event.getRethinkServer().push(); } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.ERROR, @@ -49,13 +50,14 @@ public class InviteDetectCommand implements Command { break; case "off": - if (e.getRethink().getInviteDetection(e.getGuild().getId())) { - e.getRethink().setInviteDetection(e.getGuild().getId(), false); - e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( + if (event.getRethinkServer().isInvite_detect()) { + event.getRethinkServer().setInvite_detect(false); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.invitedetect.deactivate.success.title", "commands.moderation.invitedetect.deactivate.success.description") .build()).queue(); + event.getRethinkServer().push(); } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.ERROR, diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java index df3b9fe..491da7d 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java @@ -34,20 +34,20 @@ public class NickCommand implements Command { if (!e.getMessage().getMentionedMembers().get(0).getId().equals(e.getGuild().getSelfMember().getId())) { if (e.getGuild().getSelfMember().canInteract(e.getMessage().getMentionedMembers().get(0))) { if (args.length > 1) { - if (e.getMessage().getContentRaw().startsWith(e.getRethink().getUserPrefix(e.getMember().getId()))) { - e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getRethink().getUserPrefix(e.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage( + if (event.getMessage().getContentRaw().startsWith(event.getRethinkUser().getPrefix())) { + event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.nick.success.title", "✅", "commands.moderation.nick.success.description", e.getMessage().getMentionedMembers().get(0).getUser().getAsTag() ).build()).queue(); - } else if (e.getMessage().getContentRaw().startsWith(e.getRethink().getGuildPrefix(e.getGuild().getId()))) { - e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getRethink().getGuildPrefix(e.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage( + } else if (event.getMessage().getContentRaw().startsWith(event.getRethinkServer().getPrefix())) { + event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.nick.success.title", "✅", @@ -61,19 +61,19 @@ public class NickCommand implements Command { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } } else { - if (e.getMessage().getContentRaw().startsWith(e.getRethink().getUserPrefix(e.getMember().getId()))) { - e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getRethink().getUserPrefix(e.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage( + if (event.getMessage().getContentRaw().startsWith(event.getRethinkUser().getPrefix())) { + event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.nick.success.title", "✅", "commands.moderation.nick.myself.success.description", "").build()).queue(); - } else if (e.getMessage().getContentRaw().startsWith(e.getRethink().getGuildPrefix(e.getGuild().getId()))) { - e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getRethink().getGuildPrefix(e.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage( + } else if (event.getMessage().getContentRaw().startsWith(event.getRethinkServer().getPrefix())) { + event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.nick.success.title", "✅", diff --git a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java index 0cb2b75..45c891c 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java @@ -29,8 +29,9 @@ public class PrefixCommand implements Command { public void executed(String[] args, CommandEvent e) { if (args.length == 1) { if (!args[0].contains("\"")) { - e.getRethink().setGuildPrefix(args[0], e.getGuild().getId()); - e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( + event.getRethinkServer().setPrefix(args[0]); + event.getRethinkServer().push(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.prefix.success.title", "✅", 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 2521394..2c92d0f 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -172,7 +172,8 @@ public class RulesCommand implements Command { .build()).queue(); ex.printStackTrace(); } - e.getRethink().updateRules(e.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString()); + event.getRethinkServer().updateRules(rules.getId(), role.getId(), aemote.toString(), demote.toString()); + event.getRethinkServer().push(); } else { e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( @@ -217,7 +218,8 @@ public class RulesCommand implements Command { .build()).queue(); ex.printStackTrace(); } - e.getRethink().updateRules(e.getGuild().getId(), rules.getId(), role.getId(), aemote, demote); + event.getRethinkServer().updateRules(rules.getId(), role.getId(), aemote, demote); + event.getRethinkServer().push(); } else { e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( diff --git a/src/main/java/com/bbn/hadder/commands/moderation/StarboardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarboardCommand.java index 53d6789..bd5ab44 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/StarboardCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/StarboardCommand.java @@ -24,11 +24,11 @@ import net.dv8tion.jda.api.entities.TextChannel; public class StarboardCommand implements Command { @Override - public void executed(String[] args, CommandEvent e) { - if (e.getMessage().getMentionedChannels().size()==1) { - e.getRethink().setStarboardChannel(e.getGuild().getId(), e.getMessage().getMentionedChannels().get(0).getId()); - e.getChannel().sendMessage( - e.getMessageEditor().getMessage( + public void executed(String[] args, CommandEvent event) { + if (event.getMessage().getMentionedChannels().size()==1) { + event.getRethinkServer().setStarboard(event.getMessage().getMentionedChannels().get(0).getId()); + event.getChannel().sendMessage( + event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.starboard.success.title","") .build()) @@ -37,7 +37,7 @@ public class StarboardCommand implements Command { if (args.length>0) { TextChannel channel = e.getGuild().getTextChannelById(args[0]); if (channel!=null) { - e.getRethink().setStarboardChannel(e.getGuild().getId(), channel.getId()); + event.getRethinkServer().setStarboard(channel.getId()); } } else { e.getHelpCommand().sendHelp(this, e); @@ -45,8 +45,10 @@ public class StarboardCommand implements Command { } if (args.length==2) { - e.getRethink().setNeededStars(args[1], e.getGuild().getId()); + event.getRethinkServer().setNeededstars(args[1]); } + + event.getRethinkServer().push(); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java index 75ac6e3..f93cab2 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -29,8 +29,8 @@ public class PlayCommand implements Command { @Override public void executed(String[] args, CommandEvent e) { if (args.length > 0) { - if (e.getMember().getVoiceState().inVoiceChannel()) { - String input = e.getMessage().getContentRaw().replaceFirst(e.getRethink().getGuildPrefix(e.getGuild().getId()) + "play ", "").replaceFirst(e.getRethink().getUserPrefix(e.getAuthor().getId()) + "play ", ""); + if (event.getMember().getVoiceState().inVoiceChannel()) { + String input = event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "play ", "").replaceFirst(event.getRethinkUser().getPrefix() + "play ", ""); try { new URL(input).toURI(); Message msg = e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, diff --git a/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java b/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java index 3b18dfb..d1ef9c4 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java @@ -40,8 +40,8 @@ public class BlacklistCommand implements Command { switch (args[0].toLowerCase()) { case "add": if (args.length == 3) { - Member member = e.getMessage().getMentionedMembers().get(0); - String blacklisted = e.getRethink().getBlackListed(member.getId()); + Member member = event.getMessage().getMentionedMembers().get(0); + String blacklisted = event.getRethinkUser().getBlacklisted(); List commands = new ArrayList<>(); if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(","))); commands.addAll(Arrays.asList(args[1].split(","))); @@ -49,19 +49,20 @@ public class BlacklistCommand implements Command { ArrayList commandsWithoutDuplicates = new ArrayList<>(hashSet); String newblacklisted = ((commandsWithoutDuplicates.size()!=0) ? String.join(",", commandsWithoutDuplicates) : "none"); - e.getRethink().setBlackListed(member.getId(), newblacklisted); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) + event.getRethinkUser().setBlacklisted(newblacklisted); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setTitle("Removed Blacklisted Commands from User") .setDescription("Blacklisted commands: "+newblacklisted) .build()).queue(); + event.getRethinkUser().push(); } break; case "remove": if (args.length == 3) { - Member member = e.getMessage().getMentionedMembers().get(0); - String blacklisted = e.getRethink().getBlackListed(member.getId()); + Member member = event.getMessage().getMentionedMembers().get(0); + String blacklisted = event.getRethinkUser().getBlacklisted(); List commands = new ArrayList<>(); if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(","))); commands.removeAll(Arrays.asList(args[1].split(","))); @@ -69,20 +70,21 @@ public class BlacklistCommand implements Command { ArrayList commandsWithoutDuplicates = new ArrayList<>(hashSet); String newblacklisted = ((commandsWithoutDuplicates.size()!=0) ? String.join(",", commandsWithoutDuplicates) : "none"); - e.getRethink().setBlackListed(member.getId(), newblacklisted); - e.getTextChannel().sendMessage( - e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) + event.getRethinkUser().setBlacklisted(newblacklisted); + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setTitle("Removed Blacklisted Commands from User") .setDescription("Blacklisted commands: "+newblacklisted) .build()).queue(); + event.getRethinkUser().push(); } break; case "list": StringBuilder stringBuilder = new StringBuilder(); - for (User user : e.getJDA().getUsers()) { - if (!user.getId().equals(e.getJDA().getSelfUser().getId())) { - String blacklisted = e.getRethink().getBlackListed(user.getId()); + for (User user : event.getJDA().getUsers()) { + if (!user.getId().equals(event.getJDA().getSelfUser().getId())) { + String blacklisted = event.getRethinkUser().getBlacklisted(); if (!"none".equals(blacklisted)) { stringBuilder.append(user.getAsTag()).append(" (").append(user.getId()).append(") - ").append(blacklisted).append("\n"); } diff --git a/src/main/java/com/bbn/hadder/commands/owner/EchoCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EchoCommand.java new file mode 100644 index 0000000..2044fa3 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/owner/EchoCommand.java @@ -0,0 +1,88 @@ +/* + * @author Hax / Hax6775 / Schlauer_Hax + */ + +package com.bbn.hadder.commands.owner; + +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 net.dv8tion.jda.api.audio.*; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.User; +import net.dv8tion.jda.api.managers.AudioManager; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.nio.ByteBuffer; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; + +@Perms(Perm.BOT_OWNER) +public class EchoCommand implements Command { + @Override + public void executed(String[] args, CommandEvent event) { + Guild guild = event.getMember().getVoiceState().getChannel().getGuild(); + AudioManager audioManager = guild.getAudioManager(); + EchoHandler handler = new EchoHandler(); + if (!audioManager.isConnected()) { + audioManager.setSendingHandler(handler); + audioManager.setReceivingHandler(handler); + audioManager.openAudioConnection(event.getMember().getVoiceState().getChannel()); + } else { + audioManager.closeAudioConnection(); + } + } + + @Override + public String[] labels() { + return new String[]{"echo"}; + } + + @Override + public String description() { + return null; + } + + @Override + public String usage() { + return null; + } + + @Override + public String example() { + return null; + } + + public static class EchoHandler implements AudioSendHandler, AudioReceiveHandler { + + private final Queue queue = new ConcurrentLinkedQueue<>(); + + @Override + public boolean canProvide() { + return !queue.isEmpty(); + } + + @Nullable + @Override + public ByteBuffer provide20MsAudio() { + byte[] data = queue.poll(); + return data == null ? null : ByteBuffer.wrap(data); // Wrap this in a java.nio.ByteBuffer + } + + @Override + public boolean canReceiveCombined() { + return queue.size() < 10; + } + + @Override + public void handleCombinedAudio(@Nonnull CombinedAudio combinedAudio) { + if (combinedAudio.getUsers().isEmpty()) + return; + + byte[] data = combinedAudio.getAudioData(1.0f); // volume at 100% = 1.0 (50% = 0.5 / 55% = 0.55) + queue.add(data); + } + } +} diff --git a/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java b/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java index 2e014e0..18cbe81 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java @@ -53,15 +53,16 @@ public class LanguageCommand implements Command { } } - public void setLanguage(String language_code, String language, CommandEvent e) { - e.getRethink().setLanguage(e.getAuthor().getId(), language_code); - e.getTextChannel() + public void setLanguage(String language_code, String language, CommandEvent event) { + event.getRethinkUser().setLanguage(language_code); + event.getTextChannel() .sendMessage( e.getMessageEditor() .getMessage(MessageEditor.MessageType.INFO, "commands.settings.language.success.title", "", "commands.settings.language.success.description", language) .build()) .queue(); + event.getRethinkUser().push(); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java index 48735f9..f9e96f3 100644 --- a/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java @@ -24,13 +24,14 @@ public class UserPrefixCommand implements Command { public void executed(String[] args, CommandEvent e) { if (args.length == 1) { - e.getRethink().setUserPrefix(args[0], e.getAuthor().getId()); - e.getTextChannel() - .sendMessage(e.getMessageEditor() + event.getRethinkUser().setPrefix(args[0]); + event.getTextChannel() + .sendMessage(event.getMessageEditor() .getMessage(MessageEditor.MessageType.INFO, "commands.settings.prefix.success.title", "", "commands.settings.prefix.success.description", args[0]) .build()) .queue(); + event.getRethinkUser().push(); } else { e.getHelpCommand().sendHelp(this, e); } diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index d612be5..49d9600 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -17,6 +17,8 @@ package com.bbn.hadder.core; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; +import com.bbn.hadder.RethinkUser; import com.bbn.hadder.audio.AudioManager; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; @@ -24,6 +26,7 @@ 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; +import org.json.JSONObject; import java.util.Arrays; import java.util.List; @@ -40,7 +43,7 @@ public class CommandHandler { this.helpCommand = helpCommand; } - public void handle(MessageReceivedEvent event, Rethink rethink, String prefix, AudioManager audioManager) { + public void handle(MessageReceivedEvent event, Rethink rethink, String prefix, AudioManager audioManager, RethinkUser rethinkUser, RethinkServer rethinkServer) { String invoke = event.getMessage().getContentRaw().replaceFirst(prefix, "").split(" ")[0]; for (Command cmd : commandList) { for (String label : cmd.labels()) { @@ -52,7 +55,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()), new EventWaiter(), audioManager); + config, this, helpCommand, new MessageEditor(rethinkUser, event.getAuthor()), new EventWaiter(), audioManager, rethinkUser, rethinkServer); 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)) { @@ -66,7 +69,7 @@ public class CommandHandler { } boolean run = true; - String blacklisted = rethink.getBlackListed(event.getAuthor().getId()); + String blacklisted = rethinkUser.getBlacklisted(); if (!"none".equals(blacklisted)) { for (String BLLabel : blacklisted.split(",")) { if (Arrays.asList(cmd.labels()).contains(BLLabel)) { diff --git a/src/main/java/com/bbn/hadder/listener/CommandListener.java b/src/main/java/com/bbn/hadder/listener/CommandListener.java index f6e72bc..b8dc44a 100644 --- a/src/main/java/com/bbn/hadder/listener/CommandListener.java +++ b/src/main/java/com/bbn/hadder/listener/CommandListener.java @@ -17,11 +17,14 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; +import com.bbn.hadder.RethinkUser; import com.bbn.hadder.audio.AudioManager; import com.bbn.hadder.core.CommandHandler; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; +import org.json.JSONObject; public class CommandListener extends ListenerAdapter { @@ -36,17 +39,21 @@ public class CommandListener extends ListenerAdapter { } @Override - public void onMessageReceived(MessageReceivedEvent e) { - if (e.isFromType(ChannelType.TEXT) && !e.getAuthor().isBot()) { + public void onMessageReceived(MessageReceivedEvent event) { + if (event.isFromType(ChannelType.TEXT) && !event.getAuthor().isBot()) { + RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", event.getAuthor().getId()), rethink); + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + rethinkUser.push(); + rethinkServer.push(); String[] prefixes = { - rethink.getUserPrefix(e.getAuthor().getId()), rethink.getGuildPrefix(e.getGuild().getId()), - e.getGuild().getSelfMember().getAsMention() + " ", e.getGuild().getSelfMember().getAsMention(), - e.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ", - e.getGuild().getSelfMember().getAsMention().replace("@", "@!") + rethinkUser.getPrefix(), rethinkServer.getPrefix(), + event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention(), + event.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ", + event.getGuild().getSelfMember().getAsMention().replace("@", "@!") }; for (String prefix : prefixes) { - if (e.getMessage().getContentRaw().startsWith(prefix)) { - handler.handle(e, rethink, prefix, audioManager); + if (event.getMessage().getContentRaw().startsWith(prefix)) { + handler.handle(event, rethink, prefix, audioManager, rethinkUser, rethinkServer); return; } } diff --git a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java index 4c842fe..2274600 100644 --- a/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java +++ b/src/main/java/com/bbn/hadder/listener/InviteLinkListener.java @@ -17,6 +17,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Message; @@ -39,12 +40,13 @@ public class InviteLinkListener extends ListenerAdapter { } @Override - public void onMessageReceived(@Nonnull MessageReceivedEvent e) { - if (e.isFromType(ChannelType.TEXT)) { - if (e.getMessage().getContentRaw().contains("discord.gg/") && (!e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId()))) { - checkInvite(e.getMessage(), "discord.gg/"); - } else if (e.getMessage().getContentRaw().contains("discordapp.com/invite") && (!e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId()))) { - checkInvite(e.getMessage(), "discordapp.com/invite/"); + public void onMessageReceived(@Nonnull MessageReceivedEvent event) { + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + if (event.isFromType(ChannelType.TEXT)) { + if (event.getMessage().getContentRaw().contains("discord.gg/") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) { + checkInvite(event.getMessage(), "discord.gg/"); + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) { + checkInvite(event.getMessage(), "discordapp.com/invite/"); } } } @@ -66,12 +68,13 @@ public class InviteLinkListener extends ListenerAdapter { } @Override - public void onMessageUpdate(@Nonnull MessageUpdateEvent e) { - if (e.isFromType(ChannelType.TEXT)) { - if (e.getMessage().getContentRaw().contains("discord.gg/") && !e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId())) { - checkInvite(e.getMessage(), "discord.gg/"); - } else if (e.getMessage().getContentRaw().contains("discordapp.com/invite") && !e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId())) { - checkInvite(e.getMessage(), "discordapp.com/invite/"); + public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + if (event.isFromType(ChannelType.TEXT)) { + if (event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) { + checkInvite(event.getMessage(), "discord.gg/"); + } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) { + checkInvite(event.getMessage(), "discordapp.com/invite/"); } } } diff --git a/src/main/java/com/bbn/hadder/listener/MentionListener.java b/src/main/java/com/bbn/hadder/listener/MentionListener.java index 7388fac..c399fe7 100644 --- a/src/main/java/com/bbn/hadder/listener/MentionListener.java +++ b/src/main/java/com/bbn/hadder/listener/MentionListener.java @@ -17,6 +17,8 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; +import com.bbn.hadder.RethinkUser; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -34,21 +36,25 @@ public class MentionListener extends ListenerAdapter { } @Override - public void onMessageReceived(@Nonnull MessageReceivedEvent e) { - if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention())|| - e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { - e.getChannel().sendMessage(new MessageEditor(rethink, e.getAuthor()).getMessage(MessageEditor.MessageType.INFO) - .setTitle("Hello I'm Hadder.") - .setAuthor(e.getJDA().getSelfUser().getName(), e.getJDA().getSelfUser().getAvatarUrl(), e.getJDA().getSelfUser().getAvatarUrl()) - .addField("Users", String.valueOf(e.getJDA().getUsers().size()), false) - .addField("Guilds", String.valueOf(e.getJDA().getGuilds().size()), false) - .addField("Prefix (User)", rethink.getUserPrefix(e.getAuthor().getId()), false) - .addField("Prefix (Guild)", rethink.getGuildPrefix(e.getGuild().getId()), false) - .build()).queue(); - } else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) { - int member = new Random().nextInt(e.getGuild().getMembers().size()-1); - if (member>0&&member 0 && member < event.getGuild().getMembers().size()) { + event.getChannel().sendMessage(event.getGuild().getMembers().get(member).getAsMention() + " (Executed by: " + event.getAuthor().getAsTag() + ")").queue(); + } } } } diff --git a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java index 681fd1d..66eff6e 100644 --- a/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java +++ b/src/main/java/com/bbn/hadder/listener/PrivateMessageListener.java @@ -17,6 +17,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkUser; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.PrivateChannel; @@ -33,21 +34,22 @@ public class PrivateMessageListener extends ListenerAdapter { this.rethink = rethink; } - public void onMessageReceived(MessageReceivedEvent e) { - if (e.isFromType(ChannelType.PRIVATE) && !e.getAuthor().getId().equals(e.getJDA().getSelfUser().getId())) { - PrivateChannel Skidder = e.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); - PrivateChannel Hax = e.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); + public void onMessageReceived(MessageReceivedEvent event) { + if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { + PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); + PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); + RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", "261083609148948488"), rethink); - Skidder.sendMessage(new MessageEditor(rethink, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) - .setTitle("New DM by " + e.getAuthor().getAsTag()) - .setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl()) - .setDescription(e.getMessage().getContentRaw()) + Skidder.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) + .setTitle("New DM by " + event.getAuthor().getAsTag()) + .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) + .setDescription(event.getMessage().getContentRaw()) .setTimestamp(Instant.now()) .build()).queue(); - Hax.sendMessage(new MessageEditor(rethink, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) - .setTitle("New DM by " + e.getAuthor().getAsTag()) - .setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl()) - .setDescription(e.getMessage().getContentRaw()) + Hax.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) + .setTitle("New DM by " + event.getAuthor().getAsTag()) + .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) + .setDescription(event.getMessage().getContentRaw()) .setTimestamp(Instant.now()) .build()).queue(); } diff --git a/src/main/java/com/bbn/hadder/listener/RulesListener.java b/src/main/java/com/bbn/hadder/listener/RulesListener.java index f1bbca5..d056011 100644 --- a/src/main/java/com/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/com/bbn/hadder/listener/RulesListener.java @@ -17,6 +17,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -30,40 +31,43 @@ public class RulesListener extends ListenerAdapter { } @Override - public void onMessageReactionAdd(MessageReactionAddEvent e) { - if (e.getMessageId().equals(rethink.getRulesMID(e.getGuild().getId())) && !e.getMember().getUser().isBot()) { - if (e.getReactionEmote().isEmote()) { - if (rethink.getRulesAEmote(e.getGuild().getId()).equals(e.getReactionEmote().getId())) { - addRole(e); - } else if (rethink.getRulesDEmote(e.getGuild().getId()).equals(e.getReactionEmote().getId())) { - e.getReaction().removeReaction(e.getUser()).queue(); - if (e.getGuild().getSelfMember().canInteract(e.getMember())) { - e.getMember().kick().reason("Declined the rules"); + public void onMessageReactionAdd(MessageReactionAddEvent event) { + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) { + if (event.getReactionEmote().isEmote()) { + if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getId())) { + addRole(event); + } else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getId())) { + event.getReaction().removeReaction(event.getUser()).queue(); + if (event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getMember().kick().reason("Declined the rules"); } } - } else if (e.getReactionEmote().isEmoji()) { - if (rethink.getRulesAEmote(e.getGuild().getId()).equals(e.getReactionEmote().getEmoji())) { - addRole(e); - } else if (rethink.getRulesDEmote(e.getGuild().getId()).equals(e.getReactionEmote().getEmoji())) { - e.getReaction().removeReaction(e.getUser()).queue(); - if (e.getGuild().getSelfMember().canInteract(e.getMember())) { - e.getMember().kick().reason("Declined the rules"); + } else if (event.getReactionEmote().isEmoji()) { + if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getEmoji())) { + addRole(event); + } else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getEmoji())) { + event.getReaction().removeReaction(event.getUser()).queue(); + if (event.getGuild().getSelfMember().canInteract(event.getMember())) { + event.getMember().kick().reason("Declined the rules"); } } } } } - private void addRole(MessageReactionAddEvent e) { - if (e.getMember().getRoles().contains(e.getGuild().getRoleById(rethink.getRulesRID(e.getGuild().getId())))) { - e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethink.getRulesRID(e.getGuild().getId()))).reason("Accepted rules").queue(); - } else e.getGuild().addRoleToMember(e.getMember(), e.getGuild().getRoleById(rethink.getRulesRID(e.getGuild().getId()))).reason("Accepted rules").queue(); + private void addRole(MessageReactionAddEvent event) { + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + if (event.getMember().getRoles().contains(event.getGuild().getRoleById(rethinkServer.getMessage_id()))) { + event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getMessage_id())).reason("Accepted rules").queue(); + } else event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getRole_id())).reason("Accepted rules").queue(); } @Override - public void onMessageReactionRemove(MessageReactionRemoveEvent e) { - if (e.getMessageId().equals(rethink.getRulesMID(e.getGuild().getId())) && !e.getMember().getUser().isBot()) { - e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethink.getRulesRID(e.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue(); + public void onMessageReactionRemove(MessageReactionRemoveEvent event) { + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) { + event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getRole_id())).reason("Withdrawal of the acceptance of the rules").queue(); } } } diff --git a/src/main/java/com/bbn/hadder/listener/StarboardListener.java b/src/main/java/com/bbn/hadder/listener/StarboardListener.java index d15a839..15e136d 100644 --- a/src/main/java/com/bbn/hadder/listener/StarboardListener.java +++ b/src/main/java/com/bbn/hadder/listener/StarboardListener.java @@ -17,6 +17,7 @@ package com.bbn.hadder.listener; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkServer; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.entities.MessageReaction; @@ -45,12 +46,12 @@ public class StarboardListener extends ListenerAdapter { update(e); } - public void update(GenericMessageReactionEvent e) { - if (e.getReaction().getReactionEmote().getName().equals("⭐")) { - if (!rethink.hasStarboardMessage(e.getMessageId())) { - if (rethink.hasStarboardChannel(e.getGuild().getId())) { - - e.getTextChannel().retrieveMessageById(e.getMessageId()).queue( + public void update(GenericMessageReactionEvent event) { + if (event.getReaction().getReactionEmote().getName().equals("⭐")) { + RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink); + if (!rethink.hasStarboardMessage(event.getMessageId())) { + if (rethink.hasStarboardChannel(event.getGuild().getId())) { + event.getTextChannel().retrieveMessageById(event.getMessageId()).queue( msg -> { Integer stars = 0; for (MessageReaction reaction : msg.getReactions()) { @@ -59,8 +60,8 @@ public class StarboardListener extends ListenerAdapter { } } - if (Integer.parseInt(rethink.getNeededStars(e.getGuild().getId())) <= stars) { - e.getGuild().getTextChannelById(rethink.getStarboardChannel(e.getGuild().getId())) + if (Integer.parseInt(rethinkServer.getNeededstars()) <= stars) { + event.getGuild().getTextChannelById(rethinkServer.getStarboard()) .sendMessage(new MessageBuilder() .setContent("⭐ 1" + " " + e.getTextChannel().getAsMention()) .setEmbed( @@ -89,11 +90,11 @@ public class StarboardListener extends ListenerAdapter { } Integer finalStars = stars; - e.getGuild().getTextChannelById(rethink.getStarboardChannel(e.getGuild().getId())) - .retrieveMessageById(rethink.getStarboardMessage(e.getMessageId())).queue( + event.getGuild().getTextChannelById(rethinkServer.getStarboard()) + .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue( msg2 -> { - if (Integer.parseInt(rethink.getNeededStars(e.getGuild().getId())) <= finalStars) { + if (Integer.parseInt(rethinkServer.getNeededstars()) <= finalStars) { msg2.editMessage(new MessageBuilder() .setContent("⭐ " + finalStars + " " + e.getTextChannel().getAsMention()) .setEmbed( diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index c5b7cf3..5bf9369 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -17,6 +17,7 @@ package com.bbn.hadder.utils; import com.bbn.hadder.Rethink; +import com.bbn.hadder.RethinkUser; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.User; @@ -27,11 +28,11 @@ import java.util.ResourceBundle; public class MessageEditor { - private Rethink rethink; + private RethinkUser rethinkUser; private User user; - public MessageEditor(Rethink rethink, User user) { - this.rethink = rethink; + public MessageEditor(RethinkUser rethinkUser, User user) { + this.rethinkUser = rethinkUser; this.user = user; } @@ -50,7 +51,7 @@ public class MessageEditor { public EmbedBuilder getMessage(MessageType type, String title, String title_extra, String title_extra_two, String description, String description_extra, String description_extra_two) { - String language = (this.user!=null) ? rethink.getLanguage(this.user.getId()) : null; + String language = (this.user!=null) ? rethinkUser.getLanguage() : null; EmbedBuilder eb = this.getDefaultSettings(type); if (!"".equals(title)) eb.setTitle(this.handle(language, title, title_extra, title_extra_two)); if (!"".equals(description)) eb.setDescription(this.handle(language, description, description_extra, description_extra_two)); @@ -121,11 +122,11 @@ public class MessageEditor { } public String getTerm(String string) { - return this.handle(rethink.getLanguage(user.getId()), string, "", ""); + return this.handle(rethinkUser.getLanguage(), string, "", ""); } public String getTerm(String string, String extra, String extra_two) { - return this.handle(rethink.getLanguage(user.getId()), string, extra, extra_two); + return this.handle(rethinkUser.getLanguage(), string, extra, extra_two); } private String handle(String language_code, String string, String extra, String extra_two) {