From d6109a767e67e835cbcc63dfd036dbe92940b098 Mon Sep 17 00:00:00 2001 From: Greg Date: Fri, 26 Mar 2021 15:17:17 +0100 Subject: [PATCH] Finally move to MongoDB --- pom.xml | 10 +- src/main/java/one/bbn/hadder/Hadder.java | 22 +-- .../one/bbn/hadder/commands/CommandEvent.java | 36 ++-- .../bbn/hadder/commands/fun/ClydeCommand.java | 2 +- .../hadder/commands/general/HelpCommand.java | 4 +- .../commands/moderation/EditRulesCommand.java | 8 +- .../moderation/InviteDetectCommand.java | 12 +- .../commands/moderation/NickCommand.java | 16 +- .../commands/moderation/PrefixCommand.java | 4 +- .../commands/moderation/RulesCommand.java | 8 +- .../commands/moderation/StarboardCommand.java | 8 +- .../hadder/commands/music/PauseCommand.java | 2 +- .../hadder/commands/music/PlayCommand.java | 2 +- .../commands/owner/BlacklistCommand.java | 8 +- .../hadder/commands/owner/EvalCommand.java | 2 +- .../commands/settings/LanguageCommand.java | 4 +- .../commands/settings/UserPrefixCommand.java | 4 +- .../one/bbn/hadder/core/CommandHandler.java | 14 +- src/main/java/one/bbn/hadder/db/Mongo.java | 160 ++++++++++++++++ .../{RethinkServer.java => MongoServer.java} | 12 +- .../db/{RethinkUser.java => MongoUser.java} | 16 +- src/main/java/one/bbn/hadder/db/Rethink.java | 176 ------------------ .../bbn/hadder/listener/CommandListener.java | 24 +-- .../bbn/hadder/listener/GuildListener.java | 14 +- .../hadder/listener/InviteLinkListener.java | 18 +- .../bbn/hadder/listener/MentionListener.java | 20 +- .../listener/PrivateMessageListener.java | 14 +- .../bbn/hadder/listener/ReadyListener.java | 19 +- .../bbn/hadder/listener/RulesListener.java | 36 ++-- .../hadder/listener/StarboardListener.java | 30 +-- .../one/bbn/hadder/utils/MessageEditor.java | 14 +- 31 files changed, 343 insertions(+), 376 deletions(-) create mode 100644 src/main/java/one/bbn/hadder/db/Mongo.java rename src/main/java/one/bbn/hadder/db/{RethinkServer.java => MongoServer.java} (93%) rename src/main/java/one/bbn/hadder/db/{RethinkUser.java => MongoUser.java} (85%) delete mode 100644 src/main/java/one/bbn/hadder/db/Rethink.java diff --git a/pom.xml b/pom.xml index f807592..c9f51f6 100644 --- a/pom.xml +++ b/pom.xml @@ -76,11 +76,6 @@ json 20210307 - - com.rethinkdb - rethinkdb-driver - 2.4.4 - org.slf4j slf4j-simple @@ -106,6 +101,11 @@ jackson-annotations 2.12.2 + + org.mongodb + mongodb-driver-sync + 4.2.2 + diff --git a/src/main/java/one/bbn/hadder/Hadder.java b/src/main/java/one/bbn/hadder/Hadder.java index 47f9724..d91d12e 100644 --- a/src/main/java/one/bbn/hadder/Hadder.java +++ b/src/main/java/one/bbn/hadder/Hadder.java @@ -31,7 +31,7 @@ import one.bbn.hadder.commands.settings.LanguageCommand; import one.bbn.hadder.commands.settings.UserPrefixCommand; import one.bbn.hadder.core.CommandHandler; import one.bbn.hadder.core.Config; -import one.bbn.hadder.db.Rethink; +import one.bbn.hadder.db.Mongo; import one.bbn.hadder.listener.*; import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.entities.Activity; @@ -55,8 +55,8 @@ public class Hadder { if (!config.fileExists()) config.create(); config.load(); - Rethink rethink = new Rethink(config); - rethink.connect(); + Mongo mongo = new Mongo(config); + mongo.connect(); DefaultShardManagerBuilder builder = DefaultShardManagerBuilder.create(GatewayIntent.getIntents(32509)); @@ -137,14 +137,14 @@ public class Hadder { new CoronaCommand()), config, helpCommand); builder.addEventListeners( - new MentionListener(rethink, config), - new PrivateMessageListener(rethink), - new CommandListener(rethink, commandHandler, audioManager), - new GuildListener(rethink, config), - new ReadyListener(rethink, config), - new InviteLinkListener(rethink), - new RulesListener(rethink), - new StarboardListener(rethink), + new MentionListener(mongo, config), + new PrivateMessageListener(mongo), + new CommandListener(mongo, commandHandler, audioManager), + new GuildListener(mongo, config), + new ReadyListener(config), + new InviteLinkListener(mongo), + new RulesListener(mongo), + new StarboardListener(mongo), new VoiceLeaveListener(audioManager), new OwnerMessageListener(config)); diff --git a/src/main/java/one/bbn/hadder/commands/CommandEvent.java b/src/main/java/one/bbn/hadder/commands/CommandEvent.java index e09b20c..8aedb09 100644 --- a/src/main/java/one/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/one/bbn/hadder/commands/CommandEvent.java @@ -20,9 +20,9 @@ import one.bbn.hadder.audio.AudioManager; import one.bbn.hadder.commands.general.HelpCommand; import one.bbn.hadder.core.CommandHandler; import one.bbn.hadder.core.Config; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; +import one.bbn.hadder.db.MongoUser; import one.bbn.hadder.utils.EventWaiter; import one.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.JDA; @@ -33,34 +33,34 @@ import javax.annotation.Nonnull; public class CommandEvent extends MessageReceivedEvent { - private Rethink rethink; + private Mongo mongo; private Config config; private CommandHandler commandHandler; private HelpCommand helpCommand; private MessageEditor messageEditor; private EventWaiter eventWaiter; private AudioManager audioManager; - private RethinkUser rethinkUser; - private RethinkServer rethinkServer; + private MongoUser mongoUser; + private MongoServer mongoServer; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Mongo mongo, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, - EventWaiter eventWaiter, AudioManager audioManager, RethinkUser rethinkUser, - RethinkServer rethinkServer) { + EventWaiter eventWaiter, AudioManager audioManager, MongoUser mongoUser, + MongoServer mongoServer) { super(api, responseNumber, message); - this.rethink = rethink; + this.mongo = mongo; this.config = config; this.commandHandler = commandHandler; this.helpCommand = helpCommand; this.messageEditor = messageEditor; this.eventWaiter = eventWaiter; this.audioManager = audioManager; - this.rethinkUser = rethinkUser; - this.rethinkServer = rethinkServer; + this.mongoUser = mongoUser; + this.mongoServer = mongoServer; } - public Rethink getRethink() { - return rethink; + public Mongo getMongo() { + return mongo; } public Config getConfig() { @@ -87,11 +87,11 @@ public class CommandEvent extends MessageReceivedEvent { return audioManager; } - public RethinkServer getRethinkServer() { - return rethinkServer; + public MongoServer getMongoServer() { + return mongoServer; } - public RethinkUser getRethinkUser() { - return rethinkUser; + public MongoUser getMongoUser() { + return mongoUser; } } diff --git a/src/main/java/one/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/one/bbn/hadder/commands/fun/ClydeCommand.java index 29d29aa..d80576f 100644 --- a/src/main/java/one/bbn/hadder/commands/fun/ClydeCommand.java +++ b/src/main/java/one/bbn/hadder/commands/fun/ClydeCommand.java @@ -40,7 +40,7 @@ public class ClydeCommand implements Command { if (args.length > 0) { if (e.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { TextChannel channel = e.getMessage().getTextChannel(); - String content = e.getMessage().getContentRaw().replace(e.getRethinkServer().getPrefix(), "").replace(e.getRethinkUser().getPrefix(), "").replace("clyde", ""); + String content = e.getMessage().getContentRaw().replace(e.getMongoServer().getPrefix(), "").replace(e.getMongoUser().getPrefix(), "").replace("clyde", ""); Webhook webhook = channel.createWebhook(e.getConfig().getClydeName()).complete(); try { diff --git a/src/main/java/one/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/one/bbn/hadder/commands/general/HelpCommand.java index 7469e1b..a449d14 100644 --- a/src/main/java/one/bbn/hadder/commands/general/HelpCommand.java +++ b/src/main/java/one/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.getRethinkServer().getPrefix()).append(name).append(" ").append(cmd.usage()).append("\n"); + b.append(e.getMessageEditor().getTerm("commands.general.help.usage")).append(" ").append(e.getMongoServer().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.getRethinkServer().getPrefix()).append(name).append(" ").append(cmd.example()); + b.append(e.getMessageEditor().getTerm("commands.general.help.example")).append(" ").append(e.getMongoServer().getPrefix()).append(name).append(" ").append(cmd.example()); } e.getChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO) diff --git a/src/main/java/one/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/one/bbn/hadder/commands/moderation/EditRulesCommand.java index 5a3b360..757bf53 100644 --- a/src/main/java/one/bbn/hadder/commands/moderation/EditRulesCommand.java +++ b/src/main/java/one/bbn/hadder/commands/moderation/EditRulesCommand.java @@ -28,7 +28,7 @@ public class EditRulesCommand implements Command { @Override public void executed(String[] args, CommandEvent e) { - if (e.getRethinkServer().getMessageID().length() == 18) { + if (e.getMongoServer().getMessageID().length() == 18) { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.editrules.message.title", "commands.moderation.editrules.message.description").build()).queue(); @@ -68,13 +68,13 @@ 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.getRethinkServer().getPrefix()).build()).queue(); + "commands.moderation.editrules.error.description", e.getMongoServer().getPrefix()).build()).queue(); } } public void checkChannel(CommandEvent e, String rules, TextChannel channel) { try { - channel.retrieveMessageById(e.getRethinkServer().getMessageID()).queue(); + channel.retrieveMessageById(e.getMongoServer().getMessageID()).queue(); setRules(e, rules, channel); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.editrules.success.title", @@ -87,7 +87,7 @@ public class EditRulesCommand implements Command { } public void setRules(CommandEvent e, String rules, TextChannel channel) { - channel.retrieveMessageById(e.getRethinkServer().getMessageID()).complete().editMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) + channel.retrieveMessageById(e.getMongoServer().getMessageID()).complete().editMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) .setTitle("Rules") .setDescription(rules) .build()).queue(); diff --git a/src/main/java/one/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/one/bbn/hadder/commands/moderation/InviteDetectCommand.java index 12994d9..2fe4f67 100644 --- a/src/main/java/one/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/one/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -31,15 +31,15 @@ public class InviteDetectCommand implements Command { String opinion = args[0].toLowerCase(); switch (opinion) { case "on": - if (!e.getRethinkServer().hasInviteDetect()) { - e.getRethinkServer().setInviteDetect(true); + if (!e.getMongoServer().hasInviteDetect()) { + e.getMongoServer().setInviteDetect(true); e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.invitedetect.activate.success.title", "commands.moderation.invitedetect.activate.success.description") .build()).queue(); - e.getRethinkServer().push(); + e.getMongoServer().push(); } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.ERROR, @@ -50,14 +50,14 @@ public class InviteDetectCommand implements Command { break; case "off": - if (e.getRethinkServer().hasInviteDetect()) { - e.getRethinkServer().setInviteDetect(false); + if (e.getMongoServer().hasInviteDetect()) { + e.getMongoServer().setInviteDetect(false); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.invitedetect.deactivate.success.title", "commands.moderation.invitedetect.deactivate.success.description") .build()).queue(); - e.getRethinkServer().push(); + e.getMongoServer().push(); } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.ERROR, diff --git a/src/main/java/one/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/one/bbn/hadder/commands/moderation/NickCommand.java index 6bbcab4..8d277fa 100644 --- a/src/main/java/one/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/one/bbn/hadder/commands/moderation/NickCommand.java @@ -34,8 +34,8 @@ 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.getRethinkUser().getPrefix())) { - e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); + if (e.getMessage().getContentRaw().startsWith(e.getMongoUser().getPrefix())) { + e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getMongoUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, @@ -44,8 +44,8 @@ public class NickCommand implements Command { "commands.moderation.nick.success.description", e.getMessage().getMentionedMembers().get(0).getUser().getAsTag() ).build()).queue(); - } else if (e.getMessage().getContentRaw().startsWith(e.getRethinkServer().getPrefix())) { - e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); + } else if (e.getMessage().getContentRaw().startsWith(e.getMongoServer().getPrefix())) { + e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getMongoServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, @@ -59,8 +59,8 @@ 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.getRethinkUser().getPrefix())) { - e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); + if (e.getMessage().getContentRaw().startsWith(e.getMongoUser().getPrefix())) { + e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getMongoUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, @@ -68,8 +68,8 @@ public class NickCommand implements Command { "✅", "commands.moderation.nick.myself.success.description", "").build()).queue(); - } else if (e.getMessage().getContentRaw().startsWith(e.getRethinkServer().getPrefix())) { - e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); + } else if (e.getMessage().getContentRaw().startsWith(e.getMongoServer().getPrefix())) { + e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getMongoServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, diff --git a/src/main/java/one/bbn/hadder/commands/moderation/PrefixCommand.java b/src/main/java/one/bbn/hadder/commands/moderation/PrefixCommand.java index 60c3758..26e578a 100644 --- a/src/main/java/one/bbn/hadder/commands/moderation/PrefixCommand.java +++ b/src/main/java/one/bbn/hadder/commands/moderation/PrefixCommand.java @@ -29,8 +29,8 @@ public class PrefixCommand implements Command { public void executed(String[] args, CommandEvent e) { if (args.length == 1) { if (!args[0].contains("\"")) { - e.getRethinkServer().setPrefix(args[0]); - e.getRethinkServer().push(); + e.getMongoServer().setPrefix(args[0]); + e.getMongoServer().push(); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.prefix.success.title", diff --git a/src/main/java/one/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/one/bbn/hadder/commands/moderation/RulesCommand.java index 03d505f..33f8a20 100644 --- a/src/main/java/one/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/one/bbn/hadder/commands/moderation/RulesCommand.java @@ -174,8 +174,8 @@ public class RulesCommand implements Command { .build()).queue(); ex.printStackTrace(); } - e.getRethinkServer().updateRules(rules.getId(), role.getId(), aemote.toString(), demote.toString()); - e.getRethinkServer().push(); + e.getMongoServer().updateRules(rules.getId(), role.getId(), aemote.toString(), demote.toString()); + e.getMongoServer().push(); } else { e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( @@ -220,8 +220,8 @@ public class RulesCommand implements Command { .build()).queue(); ex.printStackTrace(); } - e.getRethinkServer().updateRules(rules.getId(), role.getId(), aemote, demote); - e.getRethinkServer().push(); + e.getMongoServer().updateRules(rules.getId(), role.getId(), aemote, demote); + e.getMongoServer().push(); } else { e.getTextChannel().sendMessage( e.getMessageEditor().getMessage( diff --git a/src/main/java/one/bbn/hadder/commands/moderation/StarboardCommand.java b/src/main/java/one/bbn/hadder/commands/moderation/StarboardCommand.java index bf202dc..6737627 100644 --- a/src/main/java/one/bbn/hadder/commands/moderation/StarboardCommand.java +++ b/src/main/java/one/bbn/hadder/commands/moderation/StarboardCommand.java @@ -26,7 +26,7 @@ public class StarboardCommand implements Command { @Override public void executed(String[] args, CommandEvent e) { if (e.getMessage().getMentionedChannels().size() == 1) { - e.getRethinkServer().setStarboard(e.getMessage().getMentionedChannels().get(0).getId()); + e.getMongoServer().setStarboard(e.getMessage().getMentionedChannels().get(0).getId()); e.getChannel().sendMessage( e.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, @@ -37,16 +37,16 @@ public class StarboardCommand implements Command { if (args.length > 0) { TextChannel channel = e.getGuild().getTextChannelById(args[0]); if (channel != null) { - e.getRethinkServer().setStarboard(channel.getId()); + e.getMongoServer().setStarboard(channel.getId()); } } else e.getHelpCommand().sendHelp(this, e); } if (args.length == 2) { - e.getRethinkServer().setNeededStars(args[1]); + e.getMongoServer().setNeededStars(args[1]); } - e.getRethinkServer().push(); + e.getMongoServer().push(); } @Override diff --git a/src/main/java/one/bbn/hadder/commands/music/PauseCommand.java b/src/main/java/one/bbn/hadder/commands/music/PauseCommand.java index 22854db..bf88b0b 100644 --- a/src/main/java/one/bbn/hadder/commands/music/PauseCommand.java +++ b/src/main/java/one/bbn/hadder/commands/music/PauseCommand.java @@ -35,7 +35,7 @@ public class PauseCommand implements Command { } else { e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.music.pause.error.paused.title", "", - "commands.music.pause.error.paused.description", e.getRethinkServer().getPrefix()) + "commands.music.pause.error.paused.description", e.getMongoServer().getPrefix()) .build()).queue(); } } else { diff --git a/src/main/java/one/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/one/bbn/hadder/commands/music/PlayCommand.java index 1d09985..32a7d3d 100644 --- a/src/main/java/one/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/one/bbn/hadder/commands/music/PlayCommand.java @@ -30,7 +30,7 @@ public class PlayCommand implements Command { public void executed(String[] args, CommandEvent e) { if (args.length > 0) { if (e.getMember().getVoiceState().inVoiceChannel()) { - String input = e.getMessage().getContentRaw().replaceFirst(e.getRethinkServer().getPrefix() + "play ", "").replaceFirst(e.getRethinkUser().getPrefix() + "play ", ""); + String input = e.getMessage().getContentRaw().replaceFirst(e.getMongoServer().getPrefix() + "play ", "").replaceFirst(e.getMongoUser().getPrefix() + "play ", ""); try { new URL(input).toURI(); Message msg = e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, diff --git a/src/main/java/one/bbn/hadder/commands/owner/BlacklistCommand.java b/src/main/java/one/bbn/hadder/commands/owner/BlacklistCommand.java index 4175b63..dd7098f 100644 --- a/src/main/java/one/bbn/hadder/commands/owner/BlacklistCommand.java +++ b/src/main/java/one/bbn/hadder/commands/owner/BlacklistCommand.java @@ -20,7 +20,7 @@ import one.bbn.hadder.commands.Command; import one.bbn.hadder.commands.CommandEvent; import one.bbn.hadder.core.Perm; import one.bbn.hadder.core.Perms; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.MongoUser; import one.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.User; @@ -41,8 +41,8 @@ public class BlacklistCommand implements Command { case "add": case "remove": if (args.length == 3 && e.getMessage().getMentionedUsers().size() == 1) { - RethinkUser u = new RethinkUser(e.getRethink().getObjectByID("user", e.getMessage().getMentionedUsers().get(0).getId()), e.getRethink()); - String blacklisted = e.getRethinkUser().getBlacklisted(); + MongoUser u = new MongoUser(e.getMongo().getObjectByID("user", e.getMessage().getMentionedUsers().get(0).getId()), e.getMongo()); + String blacklisted = e.getMongoUser().getBlacklisted(); List commands = new ArrayList<>(); if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(","))); if (args[0].equalsIgnoreCase("add")) commands.addAll(Arrays.asList(args[1].split(","))); @@ -65,7 +65,7 @@ public class BlacklistCommand implements Command { StringBuilder stringBuilder = new StringBuilder(); for (User user : e.getJDA().getUsers()) { if (!user.getId().equals(e.getJDA().getSelfUser().getId())) { - RethinkUser u = new RethinkUser(e.getRethink().getObjectByID("user", user.getId()), e.getRethink()); + MongoUser u = new MongoUser(e.getMongo().getObjectByID("user", user.getId()), e.getMongo()); String blacklisted = u.getBlacklisted(); if (!"none".equals(blacklisted)) { stringBuilder.append(user.getAsTag()).append(" (").append(user.getId()).append(") - ").append(blacklisted).append("\n"); diff --git a/src/main/java/one/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/one/bbn/hadder/commands/owner/EvalCommand.java index d4e20b0..4a34368 100644 --- a/src/main/java/one/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/one/bbn/hadder/commands/owner/EvalCommand.java @@ -45,7 +45,7 @@ public class EvalCommand implements Command { } engine.put("msg".toLowerCase(), e.getMessage()); engine.put("shardmanager".toLowerCase(), Hadder.shardManager); - engine.put("rethink".toLowerCase(), e.getRethink()); + engine.put("rethink".toLowerCase(), e.getMongo()); engine.put("e".toLowerCase(), e); engine.put("jda".toLowerCase(), e.getJDA()); engine.put("message".toLowerCase(), e.getMessage()); diff --git a/src/main/java/one/bbn/hadder/commands/settings/LanguageCommand.java b/src/main/java/one/bbn/hadder/commands/settings/LanguageCommand.java index 3dbb964..2c587d7 100644 --- a/src/main/java/one/bbn/hadder/commands/settings/LanguageCommand.java +++ b/src/main/java/one/bbn/hadder/commands/settings/LanguageCommand.java @@ -58,14 +58,14 @@ public class LanguageCommand implements Command { } public void setLanguage(String language_code, String language, CommandEvent e) { - e.getRethinkUser().setLanguage(language_code); + e.getMongoUser().setLanguage(language_code); e.getTextChannel() .sendMessage( e.getMessageEditor() .getMessage(MessageEditor.MessageType.INFO, "commands.settings.language.success.title", "", "commands.settings.language.success.description", language) .build()).queue(); - e.getRethinkUser().push(); + e.getMongoUser().push(); } @Override diff --git a/src/main/java/one/bbn/hadder/commands/settings/UserPrefixCommand.java b/src/main/java/one/bbn/hadder/commands/settings/UserPrefixCommand.java index ade95b5..1fc691f 100644 --- a/src/main/java/one/bbn/hadder/commands/settings/UserPrefixCommand.java +++ b/src/main/java/one/bbn/hadder/commands/settings/UserPrefixCommand.java @@ -24,14 +24,14 @@ public class UserPrefixCommand implements Command { public void executed(String[] args, CommandEvent e) { if (args.length == 1) { - e.getRethinkUser().setPrefix(args[0]); + e.getMongoUser().setPrefix(args[0]); e.getTextChannel() .sendMessage(e.getMessageEditor() .getMessage(MessageEditor.MessageType.INFO, "commands.settings.prefix.success.title", "", "commands.settings.prefix.success.description", args[0]) .build()) .queue(); - e.getRethinkUser().push(); + e.getMongoUser().push(); } else e.getHelpCommand().sendHelp(this, e); } diff --git a/src/main/java/one/bbn/hadder/core/CommandHandler.java b/src/main/java/one/bbn/hadder/core/CommandHandler.java index 1c9aef6..6575c33 100644 --- a/src/main/java/one/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/one/bbn/hadder/core/CommandHandler.java @@ -20,9 +20,9 @@ import one.bbn.hadder.audio.AudioManager; import one.bbn.hadder.commands.Command; import one.bbn.hadder.commands.CommandEvent; import one.bbn.hadder.commands.general.HelpCommand; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; +import one.bbn.hadder.db.MongoUser; import one.bbn.hadder.utils.EventWaiter; import one.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -42,7 +42,7 @@ public class CommandHandler { this.helpCommand = helpCommand; } - public void handle(MessageReceivedEvent event, Rethink rethink, String prefix, AudioManager audioManager, RethinkUser rethinkUser, RethinkServer rethinkServer) { + public void handle(MessageReceivedEvent event, Mongo mongo, String prefix, AudioManager audioManager, MongoUser mongoUser, MongoServer mongoServer) { String invoke = event.getMessage().getContentRaw().replaceFirst(prefix, "").split(" ")[0]; for (Command cmd : commandList) { for (String label : cmd.labels()) { @@ -53,8 +53,8 @@ public class CommandHandler { String[] args = argString.split(" "); 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(rethinkUser, event.getAuthor()), new EventWaiter(), audioManager, rethinkUser, rethinkServer); + CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), mongo, + config, this, helpCommand, new MessageEditor(mongoUser, event.getAuthor()), new EventWaiter(), audioManager, mongoUser, mongoServer); 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)) { @@ -68,7 +68,7 @@ public class CommandHandler { } boolean run = true; - String blacklisted = rethinkUser.getBlacklisted(); + String blacklisted = mongoUser.getBlacklisted(); if (!"none".equals(blacklisted)) { for (String BLLabel : blacklisted.split(",")) { if (Arrays.asList(cmd.labels()).contains(BLLabel)) { diff --git a/src/main/java/one/bbn/hadder/db/Mongo.java b/src/main/java/one/bbn/hadder/db/Mongo.java new file mode 100644 index 0000000..508da9d --- /dev/null +++ b/src/main/java/one/bbn/hadder/db/Mongo.java @@ -0,0 +1,160 @@ +/* + * Copyright 2019-2020 GregTCLTK and Schlauer-Hax + * + * Licensed under the GNU Affero General Public License, Version 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.gnu.org/licenses/agpl-3.0.en.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package one.bbn.hadder.db; + +import com.mongodb.BasicDBObject; +import com.mongodb.client.*; +import com.rethinkdb.gen.exc.ReqlNonExistenceError; +import one.bbn.hadder.core.Config; +import org.bson.Document; +import org.json.JSONException; +import org.json.JSONObject; + +import java.lang.reflect.Field; + +public class Mongo { + + MongoClient client; + MongoDatabase db; + Config config; + + public Mongo(Config config) { + this.config = config; + } + + public void connect() { + client = MongoClients.create("mongodb://" + config.getDatabaseUsername() + ":" + config.getDatabasePassword() + "@" + config.getDatabaseIP() + ":" + config.getDatabasePort() + "/?authSource=admin"); + db = client.getDatabase("Hadder"); + } + + public Object getByID(String collection_name, String where, String what, String column) { + MongoCollection collection = db.getCollection(collection_name); + BasicDBObject whereQuery = new BasicDBObject(); + whereQuery.put(where, what); + FindIterable it = collection.find(whereQuery); + return it.cursor().next().get(column); + } + + public JSONObject getObjectByID(String collection, String id) { + BasicDBObject whereQuery = new BasicDBObject(); + whereQuery.put("id", id); + String response = db.getCollection(collection).find(whereQuery).cursor().next().toJson(); + try { + return new JSONObject(response); + } catch (JSONException e) { + insertUser(id); + String response2 = db.getCollection(collection).find(whereQuery).cursor().next().toJson(); + try { + return new JSONObject(response2); + } catch (JSONException ex) { + ex.printStackTrace(); + return null; + } + } + } + + public void remove(String table, String where, String value) { + BasicDBObject whereQuery = new BasicDBObject(); + whereQuery.put(where, value); + client.getDatabase("VoiceAnalyzer").getCollection(table).deleteOne(whereQuery); + } + + public void insert(String table, Document doc) { + client.getDatabase("VoiceAnalyzer").getCollection(table).insertOne(doc); + } + + public void insertUser(String id) { + this.insert("user", new Document("id", id) + .append("prefix", "h.") + .append("language", "en") + .append("blacklisted", "none")); + } + + public void insertGuild(String id) { + this.insert("server", new Document("id", id) + .append("prefix", "h.") + .append("message_id", "") + .append("role_id", "") + .append("invite_detect", false) + .append("starboard", "") + .append("neededstars", "4") + ); + } + + public void push(MongoServer server) { + Document object = new Document(); + for (Field field : server.getClass().getDeclaredFields()) { + if (!field.getName().equals("mongo")) { + try { + object.append(field.getName(), field.get(server)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + BasicDBObject whereQuery = new BasicDBObject(); + whereQuery.put("id", server.getId()); + + BasicDBObject updateObject = new BasicDBObject(); + updateObject.put("$set", object); + + db.getCollection("server").updateOne(whereQuery, updateObject); + } + + public void push(MongoUser user) { + Document object = new Document(); + for (Field field : user.getClass().getDeclaredFields()) { + if (!field.getName().equals("mongo")) { + try { + object.append(field.getName(), field.get(user)); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + BasicDBObject whereQuery = new BasicDBObject(); + whereQuery.put("id", user.getId()); + + BasicDBObject updateObject = new BasicDBObject(); + updateObject.put("$set", object); + + db.getCollection("user").updateOne(whereQuery, updateObject); + } + + public boolean hasStarboardMessage(String message_id) { + try { + this.getByID("stars", "id", message_id, "guild"); + return true; + } catch (ReqlNonExistenceError e) { + return false; + } + } + + public void insertStarboardMessage(String message_id, String guild_id, String starboard_message_id) { + this.insert("stars", new Document("id", message_id).append("guild", guild_id).append("starboardmsg", starboard_message_id)); + } + + public String getStarboardMessage(String message_id) { + return (String) this.getByID("stars", "id", message_id, "starboardmsg"); + } + + public void removeStarboardMessage(String message_id) { + this.remove("stars", "id", message_id); + } +} diff --git a/src/main/java/one/bbn/hadder/db/RethinkServer.java b/src/main/java/one/bbn/hadder/db/MongoServer.java similarity index 93% rename from src/main/java/one/bbn/hadder/db/RethinkServer.java rename to src/main/java/one/bbn/hadder/db/MongoServer.java index 1e037dd..77844c0 100644 --- a/src/main/java/one/bbn/hadder/db/RethinkServer.java +++ b/src/main/java/one/bbn/hadder/db/MongoServer.java @@ -20,9 +20,9 @@ import org.json.JSONObject; import java.lang.reflect.Field; -public class RethinkServer { +public class MongoServer { - private Rethink rethink; + private Mongo mongo; public String accept_emote = ""; public String decline_emote = ""; @@ -34,9 +34,9 @@ public class RethinkServer { public String role_id = ""; public String starboard = ""; - public RethinkServer(JSONObject object, Rethink rethink) { + public MongoServer(JSONObject object, Mongo mongo) { for (Field field : this.getClass().getDeclaredFields()) { - if (!field.getName().equals("rethink")) { + if (!field.getName().equals("mongo")) { try { if (object.has(field.getName())) field.set(this, object.get(field.getName())); @@ -45,7 +45,7 @@ public class RethinkServer { } } } - this.rethink = rethink; + this.mongo = mongo; } public String getAcceptEmote() { @@ -128,6 +128,6 @@ public class RethinkServer { } public void push() { - rethink.push(this); + mongo.push(this); } } diff --git a/src/main/java/one/bbn/hadder/db/RethinkUser.java b/src/main/java/one/bbn/hadder/db/MongoUser.java similarity index 85% rename from src/main/java/one/bbn/hadder/db/RethinkUser.java rename to src/main/java/one/bbn/hadder/db/MongoUser.java index 6199ccd..af86c4f 100644 --- a/src/main/java/one/bbn/hadder/db/RethinkUser.java +++ b/src/main/java/one/bbn/hadder/db/MongoUser.java @@ -20,18 +20,18 @@ import org.json.JSONObject; import java.lang.reflect.Field; -public class RethinkUser { +public class MongoUser { - private Rethink rethink; + private Mongo mongo; public String id; public String prefix = "h."; public String language = "en"; public String blacklisted = "none"; - public RethinkUser(JSONObject object, Rethink rethink) { + public MongoUser(JSONObject object, Mongo mongo) { for (Field field : this.getClass().getDeclaredFields()) { - if (!field.getName().equals("rethink")) { + if (!field.getName().equals("mongo")) { try { if (object.has(field.getName())) field.set(this, object.getString(field.getName())); @@ -40,11 +40,11 @@ public class RethinkUser { } } } - this.rethink = rethink; + this.mongo = mongo; } - public Rethink getRethink() { - return rethink; + public Mongo getMongo() { + return mongo; } public String getId() { @@ -76,6 +76,6 @@ public class RethinkUser { } public void push() { - rethink.push(this); + mongo.push(this); } } diff --git a/src/main/java/one/bbn/hadder/db/Rethink.java b/src/main/java/one/bbn/hadder/db/Rethink.java deleted file mode 100644 index 3e94500..0000000 --- a/src/main/java/one/bbn/hadder/db/Rethink.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright 2019-2020 GregTCLTK and Schlauer-Hax - * - * Licensed under the GNU Affero General Public License, Version 3.0; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.gnu.org/licenses/agpl-3.0.en.html - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package one.bbn.hadder.db; - -import one.bbn.hadder.core.Config; -import com.rethinkdb.RethinkDB; -import com.rethinkdb.gen.exc.ReqlNonExistenceError; -import com.rethinkdb.gen.exc.ReqlOpFailedError; -import com.rethinkdb.net.Connection; -import org.json.JSONException; -import org.json.JSONObject; - -import java.lang.reflect.Field; - -public class Rethink { - private final RethinkDB r = RethinkDB.r; - private Connection conn; - private final Config config; - - public Rethink(Config config) { - this.config = config; - } - - public void connect() { - try { - conn = r.connection() - .hostname(config.getDatabaseIP()) - .db(config.getDatabaseName()) - .port(config.getDatabasePort()) - .user(config.getDatabaseUsername(), config.getDatabasePassword()) - .connect(); - System.out.println("DB CONNECTED"); - } catch (Exception e) { - e.printStackTrace(); - System.out.println("DB CONNECTION FAILED"); - } - } - - public Object getByID(String table, String where, String column) { - return r.table(table).get(where).getField(column).run(conn).first(); - } - - public JSONObject getObjectByID(String table, String id) { - String response = String.valueOf(r.table(table).get(id).toJson().run(conn).first()); - try { - return new JSONObject(response); - } catch (JSONException e) { - insertUser(id); - String response2 = String.valueOf(r.table(table).get(id).toJson().run(conn).first()); - try { - return new JSONObject(response2); - } catch (JSONException ex) { - ex.printStackTrace(); - return null; - } - } - } - - public void insert(String table, Object object) { - try { - r.table(table).insert(object).run(conn); - } catch (ClassCastException e) { - e.printStackTrace(); - } - } - - 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() { - try { - r.dbCreate("Hadder").run(conn); - } catch (ReqlOpFailedError e) { - System.out.println(e.getMessage()); - } - try { - r.tableCreate("server").run(conn); - } catch (ReqlOpFailedError e) { - System.out.println(e.getMessage()); - } - try { - r.tableCreate("user").run(conn); - } catch (ReqlOpFailedError e) { - System.out.println(e.getMessage()); - } - try { - r.tableCreate("stars").run(conn); - } catch (ReqlOpFailedError e) { - System.out.println(e.getMessage()); - } - } - - public void insertGuild(String id) { - this.insert("server", r - .hashMap("id", id) - .with("prefix", "h.") - .with("message_id", "") - .with("role_id", "") - .with("invite_detect", false) - .with("starboard", "") - .with("neededstars", "4") - ); - } - - public void insertUser(String id) { - this.insert("user", r - .hashMap("id", id) - .with("prefix", "h.") - .with("language", "en") - .with("blacklisted", "none")); - } - - 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)); - } - - public String getStarboardMessage(String message_id) { - return (String) this.getByID("stars", message_id, "starboardmsg"); - } - - public void removeStarboardMessage(String message_id) { - this.remove("stars", "id", message_id); - } - - public boolean hasStarboardMessage(String message_id) { - try { - this.getByID("stars", message_id, "guild"); - return true; - } catch (ReqlNonExistenceError e) { - return false; - } - } - - public void push(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.toMap()).run(conn); - } - - public void push(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.toMap()).run(conn); - } -} diff --git a/src/main/java/one/bbn/hadder/listener/CommandListener.java b/src/main/java/one/bbn/hadder/listener/CommandListener.java index a02538f..2dca246 100644 --- a/src/main/java/one/bbn/hadder/listener/CommandListener.java +++ b/src/main/java/one/bbn/hadder/listener/CommandListener.java @@ -18,9 +18,9 @@ package one.bbn.hadder.listener; import one.bbn.hadder.audio.AudioManager; import one.bbn.hadder.core.CommandHandler; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; +import one.bbn.hadder.db.MongoUser; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.ChannelType; @@ -33,12 +33,12 @@ import java.time.Instant; public class CommandListener extends ListenerAdapter { - private final Rethink rethink; + private final Mongo mongo; private final CommandHandler handler; private final AudioManager audioManager; - public CommandListener(Rethink rethink, CommandHandler handler, AudioManager audioManager) { - this.rethink = rethink; + public CommandListener(Mongo mongo, CommandHandler handler, AudioManager audioManager) { + this.mongo = mongo; this.handler = handler; this.audioManager = audioManager; } @@ -48,19 +48,19 @@ public class CommandListener extends ListenerAdapter { if (e.isFromType(ChannelType.TEXT) && !e.getAuthor().isBot()) { if (e.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_WRITE)) { if (e.getGuild().getSelfMember().hasPermission(Permission.MESSAGE_EMBED_LINKS)) { - RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", e.getAuthor().getId()), rethink); - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink); - rethinkUser.push(); - rethinkServer.push(); + MongoUser mongoUser = new MongoUser(mongo.getObjectByID("user", e.getAuthor().getId()), mongo); + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", e.getGuild().getId()), mongo); + mongoUser.push(); + mongoServer.push(); String[] prefixes = { - rethinkUser.getPrefix(), rethinkServer.getPrefix(), + mongoUser.getPrefix(), mongoServer.getPrefix(), e.getGuild().getSelfMember().getAsMention() + " ", e.getGuild().getSelfMember().getAsMention(), e.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ", e.getGuild().getSelfMember().getAsMention().replace("@", "@!") }; for (String prefix : prefixes) { if (e.getMessage().getContentRaw().startsWith(prefix)) { - handler.handle(e, rethink, prefix, audioManager, rethinkUser, rethinkServer); + handler.handle(e, mongo, prefix, audioManager, mongoUser, mongoServer); return; } } diff --git a/src/main/java/one/bbn/hadder/listener/GuildListener.java b/src/main/java/one/bbn/hadder/listener/GuildListener.java index 093a6e4..37a0666 100644 --- a/src/main/java/one/bbn/hadder/listener/GuildListener.java +++ b/src/main/java/one/bbn/hadder/listener/GuildListener.java @@ -17,7 +17,7 @@ package one.bbn.hadder.listener; import one.bbn.hadder.core.Config; -import one.bbn.hadder.db.Rethink; +import one.bbn.hadder.db.Mongo; import one.bbn.hadder.utils.BotList; import one.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.entities.Member; @@ -30,11 +30,11 @@ import java.time.Instant; public class GuildListener extends ListenerAdapter { - private final Rethink rethink; + private final Mongo mongo; private final Config config; - public GuildListener(Rethink rethink, Config config) { - this.rethink = rethink; + public GuildListener(Mongo mongo, Config config) { + this.mongo = mongo; this.config = config; } @@ -42,12 +42,12 @@ public class GuildListener extends ListenerAdapter { new Thread(() -> { for (Member member : e.getGuild().getMembers()) { if (!member.getUser().getId().equals(e.getJDA().getSelfUser().getId())) { - rethink.insertUser(member.getUser().getId()); + mongo.insertUser(member.getUser().getId()); } } }).start(); - rethink.insertGuild(e.getGuild().getId()); + mongo.insertGuild(e.getGuild().getId()); e.getJDA().getTextChannelById("759783393230979142").sendMessage(new MessageEditor(null, null).getMessage(MessageEditor.MessageType.INFO) .setTitle("Joined Server") .setThumbnail(e.getGuild().getIconUrl()) @@ -79,7 +79,7 @@ public class GuildListener extends ListenerAdapter { public void onGuildMemberJoin(GuildMemberJoinEvent e) { if (!e.getUser().getId().equals(e.getJDA().getSelfUser().getId())) { - rethink.insertUser(e.getUser().getId()); + mongo.insertUser(e.getUser().getId()); } } } diff --git a/src/main/java/one/bbn/hadder/listener/InviteLinkListener.java b/src/main/java/one/bbn/hadder/listener/InviteLinkListener.java index 3288275..f293935 100644 --- a/src/main/java/one/bbn/hadder/listener/InviteLinkListener.java +++ b/src/main/java/one/bbn/hadder/listener/InviteLinkListener.java @@ -16,8 +16,8 @@ package one.bbn.hadder.listener; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.Guild; @@ -35,10 +35,10 @@ import javax.annotation.Nonnull; public class InviteLinkListener extends ListenerAdapter { - private Rethink rethink; + private Mongo mongo; - public InviteLinkListener(Rethink rethink) { - this.rethink = rethink; + public InviteLinkListener(Mongo mongo) { + this.mongo = mongo; } @Override @@ -68,12 +68,12 @@ public class InviteLinkListener extends ListenerAdapter { } public void scanMessage(Guild guild, Message message, Member member) { - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", guild.getId()), rethink); - if (message.getContentRaw().contains("discord.gg/") && !member.hasPermission(Permission.ADMINISTRATOR) && rethinkServer.hasInviteDetect()) { + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", guild.getId()), mongo); + if (message.getContentRaw().contains("discord.gg/") && !member.hasPermission(Permission.ADMINISTRATOR) && mongoServer.hasInviteDetect()) { checkInvite(message, "discord.gg/"); - } else if (message.getContentRaw().contains("discord.com/invite") && !member.hasPermission(Permission.ADMINISTRATOR) && rethinkServer.hasInviteDetect()) { + } else if (message.getContentRaw().contains("discord.com/invite") && !member.hasPermission(Permission.ADMINISTRATOR) && mongoServer.hasInviteDetect()) { checkInvite(message, "discord.com/invite/"); - } else if (message.getContentRaw().contains("discordapp.com/invite") && !member.hasPermission(Permission.ADMINISTRATOR) && rethinkServer.hasInviteDetect()) { + } else if (message.getContentRaw().contains("discordapp.com/invite") && !member.hasPermission(Permission.ADMINISTRATOR) && mongoServer.hasInviteDetect()) { checkInvite(message, "discordapp.com/invite/"); } } diff --git a/src/main/java/one/bbn/hadder/listener/MentionListener.java b/src/main/java/one/bbn/hadder/listener/MentionListener.java index 6227075..830eef8 100644 --- a/src/main/java/one/bbn/hadder/listener/MentionListener.java +++ b/src/main/java/one/bbn/hadder/listener/MentionListener.java @@ -17,9 +17,9 @@ package one.bbn.hadder.listener; import one.bbn.hadder.core.Config; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; +import one.bbn.hadder.db.MongoUser; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -33,19 +33,19 @@ import java.util.Random; public class MentionListener extends ListenerAdapter { - private final Rethink rethink; + private final Mongo mongo; private final Config config; - public MentionListener(Rethink rethink, Config config) { - this.rethink = rethink; + public MentionListener(Mongo mongo, Config config) { + this.mongo = mongo; this.config = config; } @Override public void onMessageReceived(@Nonnull MessageReceivedEvent e) { if (!e.getAuthor().isBot() && e.isFromType(ChannelType.TEXT)) { - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink); - RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", e.getAuthor().getId()), rethink); + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", e.getGuild().getId()), mongo); + MongoUser mongoUser = new MongoUser(mongo.getObjectByID("user", e.getAuthor().getId()), mongo); if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) || e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { @@ -62,8 +62,8 @@ public class MentionListener extends ListenerAdapter { EmbedBuilder builder = new EmbedBuilder() .setTitle("Hi!") .addField("Version", version, false) - .addField("User-Prefix", rethinkUser.getPrefix(), true) - .addField("Guild-Prefix", rethinkServer.getPrefix(), true) + .addField("User-Prefix", mongoUser.getPrefix(), true) + .addField("Guild-Prefix", mongoServer.getPrefix(), true) .addField("Join our Dev Server!", "[Click here!](https://discord.gg/nPwjaJk)", true) .addField("Github", "[Click here!](https://github.com/BigBotNetwork/Hadder)", false) .addField("Twitch", "[Click here!](https://www.twitch.tv/bigbotnetwork)", false); diff --git a/src/main/java/one/bbn/hadder/listener/PrivateMessageListener.java b/src/main/java/one/bbn/hadder/listener/PrivateMessageListener.java index f3826ad..28e0107 100644 --- a/src/main/java/one/bbn/hadder/listener/PrivateMessageListener.java +++ b/src/main/java/one/bbn/hadder/listener/PrivateMessageListener.java @@ -16,8 +16,8 @@ package one.bbn.hadder.listener; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoUser; import one.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.ChannelType; @@ -30,18 +30,18 @@ import java.time.Instant; public class PrivateMessageListener extends ListenerAdapter { - private final Rethink rethink; + private final Mongo mongo; - public PrivateMessageListener(Rethink rethink) { - this.rethink = rethink; + public PrivateMessageListener(Mongo mongo) { + this.mongo = mongo; } public void onMessageReceived(MessageReceivedEvent e) { if (e.isFromType(ChannelType.PRIVATE) && !e.getAuthor().getId().equals(e.getJDA().getSelfUser().getId())) { PrivateChannel Skidder = e.getJDA().getUserById("401817301919465482").openPrivateChannel().complete(); PrivateChannel Hax = e.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); - RethinkUser HaxUser = new RethinkUser(rethink.getObjectByID("user", "261083609148948488"), rethink); - RethinkUser SkidderUser = new RethinkUser(rethink.getObjectByID("user", "261083609148948488"), rethink); + MongoUser HaxUser = new MongoUser(mongo.getObjectByID("user", "261083609148948488"), mongo); + MongoUser SkidderUser = new MongoUser(mongo.getObjectByID("user", "261083609148948488"), mongo); Skidder.sendMessage(new MessageEditor(SkidderUser, e.getJDA().getUserById("401817301919465482")).getMessage(MessageEditor.MessageType.INFO) .setTitle("New DM by " + e.getAuthor().getAsTag()) diff --git a/src/main/java/one/bbn/hadder/listener/ReadyListener.java b/src/main/java/one/bbn/hadder/listener/ReadyListener.java index f4112c4..af4c03e 100644 --- a/src/main/java/one/bbn/hadder/listener/ReadyListener.java +++ b/src/main/java/one/bbn/hadder/listener/ReadyListener.java @@ -17,9 +17,6 @@ package one.bbn.hadder.listener; import one.bbn.hadder.core.Config; -import one.bbn.hadder.db.Rethink; -import net.dv8tion.jda.api.entities.Guild; -import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.ReadyEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -27,28 +24,14 @@ import javax.annotation.Nonnull; public class ReadyListener extends ListenerAdapter { - private final Rethink rethink; private final Config config; - public ReadyListener(Rethink rethink, Config config) { - this.rethink = rethink; + public ReadyListener(Config config) { this.config = config; } @Override public void onReady(@Nonnull ReadyEvent e) { - rethink.setup(); - new Thread(() -> { - for (User user : e.getJDA().getUsers()) { - if (!user.getId().equals(e.getJDA().getSelfUser().getId())) { - rethink.insertUser(user.getId()); - } - } - for (Guild g : e.getJDA().getGuilds()) { - rethink.insertGuild(g.getId()); - } - }).start(); - //TODO: Renew all bot lists //new BotList(config).post(); } diff --git a/src/main/java/one/bbn/hadder/listener/RulesListener.java b/src/main/java/one/bbn/hadder/listener/RulesListener.java index 4467c8e..b64d2c3 100644 --- a/src/main/java/one/bbn/hadder/listener/RulesListener.java +++ b/src/main/java/one/bbn/hadder/listener/RulesListener.java @@ -16,37 +16,37 @@ package one.bbn.hadder.listener; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; 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; public class RulesListener extends ListenerAdapter { - private final Rethink rethink; + private final Mongo mongo; - public RulesListener(Rethink rethink) { - this.rethink = rethink; + public RulesListener(Mongo mongo) { + this.mongo = mongo; } @Override public void onMessageReactionAdd(MessageReactionAddEvent e) { - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink); - if (e.getMessageId().equals(rethinkServer.getMessageID()) && !e.getUser().isBot()) { + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", e.getGuild().getId()), mongo); + if (e.getMessageId().equals(mongoServer.getMessageID()) && !e.getUser().isBot()) { if (e.getReactionEmote().isEmote()) { - if (rethinkServer.getAcceptEmote().equals(e.getReactionEmote().getId())) { + if (mongoServer.getAcceptEmote().equals(e.getReactionEmote().getId())) { addRole(e); - } else if (rethinkServer.getDeclineEmote().equals(e.getReactionEmote().getId())) { + } else if (mongoServer.getDeclineEmote().equals(e.getReactionEmote().getId())) { e.getReaction().removeReaction(e.getUser()).queue(); if (e.getGuild().getSelfMember().canInteract(e.getMember())) { e.getMember().kick().reason("Declined the rules"); } } } else if (e.getReactionEmote().isEmoji()) { - if (rethinkServer.getAcceptEmote().equals(e.getReactionEmote().getEmoji())) { + if (mongoServer.getAcceptEmote().equals(e.getReactionEmote().getEmoji())) { addRole(e); - } else if (rethinkServer.getDeclineEmote().equals(e.getReactionEmote().getEmoji())) { + } else if (mongoServer.getDeclineEmote().equals(e.getReactionEmote().getEmoji())) { e.getReaction().removeReaction(e.getUser()).queue(); if (e.getGuild().getSelfMember().canInteract(e.getMember())) { e.getMember().kick().reason("Declined the rules"); @@ -57,18 +57,18 @@ public class RulesListener extends ListenerAdapter { } private void addRole(MessageReactionAddEvent e) { - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink); - if (e.getMember().getRoles().contains(e.getGuild().getRoleById(rethinkServer.getRoleID()))) { - e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethinkServer.getRoleID())).reason("Accepted rules").queue(); + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", e.getGuild().getId()), mongo); + if (e.getMember().getRoles().contains(e.getGuild().getRoleById(mongoServer.getRoleID()))) { + e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(mongoServer.getRoleID())).reason("Accepted rules").queue(); } else - e.getGuild().addRoleToMember(e.getMember(), e.getGuild().getRoleById(rethinkServer.getRoleID())).reason("Accepted rules").queue(); + e.getGuild().addRoleToMember(e.getMember(), e.getGuild().getRoleById(mongoServer.getRoleID())).reason("Accepted rules").queue(); } @Override public void onMessageReactionRemove(MessageReactionRemoveEvent e) { - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink); - if (e.getMessageId().equals(rethinkServer.getMessageID()) && !e.getUser().isBot()) { - e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethinkServer.getRoleID())).reason("Withdrawal of the acceptance of the rules").queue(); + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", e.getGuild().getId()), mongo); + if (e.getMessageId().equals(mongoServer.getMessageID()) && !e.getUser().isBot()) { + e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(mongoServer.getRoleID())).reason("Withdrawal of the acceptance of the rules").queue(); } } } diff --git a/src/main/java/one/bbn/hadder/listener/StarboardListener.java b/src/main/java/one/bbn/hadder/listener/StarboardListener.java index 9e352d9..4f77a93 100644 --- a/src/main/java/one/bbn/hadder/listener/StarboardListener.java +++ b/src/main/java/one/bbn/hadder/listener/StarboardListener.java @@ -16,8 +16,8 @@ package one.bbn.hadder.listener; -import one.bbn.hadder.db.Rethink; -import one.bbn.hadder.db.RethinkServer; +import one.bbn.hadder.db.Mongo; +import one.bbn.hadder.db.MongoServer; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.entities.MessageReaction; @@ -30,10 +30,10 @@ import javax.annotation.Nonnull; public class StarboardListener extends ListenerAdapter { - private final Rethink rethink; + private final Mongo mongo; - public StarboardListener(Rethink rethink) { - this.rethink = rethink; + public StarboardListener(Mongo mongo) { + this.mongo = mongo; } @Override @@ -48,9 +48,9 @@ public class StarboardListener extends ListenerAdapter { public void update(GenericMessageReactionEvent e) { if (e.getReaction().getReactionEmote().getName().equals("⭐")) { - RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", e.getGuild().getId()), rethink); - if (!rethink.hasStarboardMessage(e.getMessageId())) { - if (rethinkServer.hasStarboardChannel()) { + MongoServer mongoServer = new MongoServer(mongo.getObjectByID("server", e.getGuild().getId()), mongo); + if (!mongo.hasStarboardMessage(e.getMessageId())) { + if (mongoServer.hasStarboardChannel()) { e.getTextChannel().retrieveMessageById(e.getMessageId()).queue( msg -> { int stars = 0; @@ -60,8 +60,8 @@ public class StarboardListener extends ListenerAdapter { } } - if (Integer.parseInt(rethinkServer.getNeededStars()) <= stars) { - e.getGuild().getTextChannelById(rethinkServer.getStarboard()) + if (Integer.parseInt(mongoServer.getNeededStars()) <= stars) { + e.getGuild().getTextChannelById(mongoServer.getStarboard()) .sendMessage(new MessageBuilder() .setContent("⭐ 1" + " " + e.getTextChannel().getAsMention()) .setEmbed( @@ -70,7 +70,7 @@ public class StarboardListener extends ListenerAdapter { .setDescription(msg.getContentRaw()) .setTimestamp(msg.getTimeCreated()).build()).build()).queue( starboardmsg -> { - rethink.insertStarboardMessage(msg.getId(), e.getGuild().getId(), starboardmsg.getId()); + mongo.insertStarboardMessage(msg.getId(), e.getGuild().getId(), starboardmsg.getId()); } ); } @@ -90,11 +90,11 @@ public class StarboardListener extends ListenerAdapter { } int finalStars = stars; - e.getGuild().getTextChannelById(rethinkServer.getStarboard()) - .retrieveMessageById(rethink.getStarboardMessage(e.getMessageId())).queue( + e.getGuild().getTextChannelById(mongoServer.getStarboard()) + .retrieveMessageById(mongo.getStarboardMessage(e.getMessageId())).queue( msg2 -> { - if (Integer.parseInt(rethinkServer.getNeededStars()) <= finalStars) { + if (Integer.parseInt(mongoServer.getNeededStars()) <= finalStars) { msg2.editMessage(new MessageBuilder() .setContent("⭐ " + finalStars + " " + e.getTextChannel().getAsMention()) .setEmbed( @@ -104,7 +104,7 @@ public class StarboardListener extends ListenerAdapter { .setTimestamp(msg.getTimeCreated()).build()).build()).queue(); } else { msg2.delete().queue(); - rethink.removeStarboardMessage(msg.getId()); + mongo.removeStarboardMessage(msg.getId()); } } ); diff --git a/src/main/java/one/bbn/hadder/utils/MessageEditor.java b/src/main/java/one/bbn/hadder/utils/MessageEditor.java index fecb120..c1b74e0 100644 --- a/src/main/java/one/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/one/bbn/hadder/utils/MessageEditor.java @@ -16,7 +16,7 @@ package one.bbn.hadder.utils; -import one.bbn.hadder.db.RethinkUser; +import one.bbn.hadder.db.MongoUser; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.entities.User; @@ -27,11 +27,11 @@ import java.util.ResourceBundle; public class MessageEditor { - private final RethinkUser rethinkUser; + private final MongoUser mongoUser; private final User user; - public MessageEditor(RethinkUser rethinkUser, User user) { - this.rethinkUser = rethinkUser; + public MessageEditor(MongoUser mongoUser, User user) { + this.mongoUser = mongoUser; this.user = user; } @@ -50,7 +50,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) ? rethinkUser.getLanguage() : null; + String language = (this.user != null) ? mongoUser.getLanguage() : null; EmbedBuilder eb = this.getDefaultSettings(type); if (!"".equals(title)) eb.setTitle(this.handle(language, title, title_extra, title_extra_two)); if (!"".equals(description)) @@ -122,11 +122,11 @@ public class MessageEditor { } public String getTerm(String string) { - return this.handle(rethinkUser.getLanguage(), string, "", ""); + return this.handle(mongoUser.getLanguage(), string, "", ""); } public String getTerm(String string, String extra, String extra_two) { - return this.handle(rethinkUser.getLanguage(), string, extra, extra_two); + return this.handle(mongoUser.getLanguage(), string, extra, extra_two); } private String handle(String language_code, String string, String extra, String extra_two) {