Finally move to MongoDB

This commit is contained in:
Greg 2021-03-26 15:17:17 +01:00
parent 8142e592e1
commit d6109a767e
31 changed files with 343 additions and 376 deletions

10
pom.xml
View file

@ -76,11 +76,6 @@
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
<dependency>
<groupId>com.rethinkdb</groupId>
<artifactId>rethinkdb-driver</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
@ -106,6 +101,11 @@
<artifactId>jackson-annotations</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.2.2</version>
</dependency>
</dependencies>
<build>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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",

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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<Document> collection = db.getCollection(collection_name);
BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put(where, what);
FindIterable<Document> 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);
}
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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