Improved Database Performance, Added Test Echo Command

This commit is contained in:
Hax 2020-01-20 21:54:16 +01:00
parent 46960abbbe
commit 229d3f2a3f
26 changed files with 454 additions and 194 deletions

View file

@ -103,7 +103,8 @@ public class Hadder {
new BlacklistCommand(), new BlacklistCommand(),
new PauseCommand(), new PauseCommand(),
new LoopCommand(), new LoopCommand(),
new BassCommand()), config, helpCommand); new BassCommand(),
new EchoCommand()), config, helpCommand);
builder.addEventListeners( builder.addEventListeners(
new MentionListener(rethink), new MentionListener(rethink),

View file

@ -5,7 +5,9 @@ import com.rethinkdb.RethinkDB;
import com.rethinkdb.gen.exc.ReqlOpFailedError; import com.rethinkdb.gen.exc.ReqlOpFailedError;
import com.rethinkdb.net.Connection; import com.rethinkdb.net.Connection;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject;
import java.lang.reflect.Field;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
/* /*
@ -66,28 +68,10 @@ public class Rethink {
return r.table(table).get(wherevalue).getField(column).run(conn); return r.table(table).get(wherevalue).getField(column).run(conn);
} }
public void update(String table, String where, String what, String value) { public JSONObject getObjectByID(String table, String id) {
try { String response = r.table(table).get(id).toJson().run(conn);
r.table(table).get(where).update(r.hashMap(what, value)).run(conn); System.out.println(response);
} catch (ClassCastException e) { return new JSONObject(response);
e.printStackTrace();
}
}
public void update(String table, String where, String what, int value) {
try {
r.table(table).get(where).update(r.hashMap(what, value)).run(conn);
} catch (ClassCastException e) {
e.printStackTrace();
}
}
public void update(String table, String where, String what, boolean value) {
try {
r.table(table).get(where).update(r.hashMap(what, value)).run(conn);
} catch (ClassCastException e) {
e.printStackTrace();
}
} }
public void insert(String table, Object object) { public void insert(String table, Object object) {
@ -125,22 +109,6 @@ public class Rethink {
} }
} }
public void setUserPrefix(String prefix, String user_id) {
this.update("user", user_id, "prefix", prefix);
}
public String getUserPrefix(String id) {
return (String) this.getByID("user", id, "prefix");
}
public void setGuildPrefix(String prefix, String guild_id) {
this.update("server", guild_id, "prefix", prefix);
}
public String getGuildPrefix(String id) {
return (String) this.getByID("server", id, "prefix");
}
public void insertGuild(String id) { public void insertGuild(String id) {
this.insert("server", r this.insert("server", r
.hashMap("id", id) .hashMap("id", id)
@ -161,87 +129,54 @@ public class Rethink {
.with("blacklisted", "none")); .with("blacklisted", "none"));
} }
public void setBlackListed(String id, String commands) { // TODO
this.update("user", id, "blacklisted", commands);
}
public String getBlackListed(String id) {
return (String) this.getByID("user", id, "blacklisted");
}
public void setNeededStars(String stars, String guild_id) {
this.update("server", guild_id, "neededstars", stars);
}
public String getNeededStars(String guild_id) {
return (String) this.getByID("server", guild_id, "neededstars");
}
public void setStarboardChannel(String guild_id, String channel_id) {
this.update("server", guild_id, "starboard", channel_id);
}
public String getStarboardChannel(String guild_id) {
return (String) this.getByID("server", guild_id, "starboard");
}
public boolean hasStarboardChannel(String guild_id) { public boolean hasStarboardChannel(String guild_id) {
return !this.getByID("server", guild_id, "starboard").equals(""); return !this.getByID("server", guild_id, "starboard").equals("");
} }
// TODO
public void insertStarboardMessage(String message_id, String guild_id, String starboard_message_id) { 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)); this.insert("stars", r.hashMap("id", message_id).with("guild", guild_id).with("starboardmsg", starboard_message_id));
} }
// TODO
public String getStarboardMessage(String message_id) { public String getStarboardMessage(String message_id) {
return (String) this.getByID("stars", message_id, "starboardmsg"); return (String) this.getByID("stars", message_id, "starboardmsg");
} }
// TODO
public void removeStarboardMessage(String message_id) { public void removeStarboardMessage(String message_id) {
this.remove("stars", "id", message_id); this.remove("stars", "id", message_id);
} }
// TODO
public boolean hasStarboardMessage(String message_id) { public boolean hasStarboardMessage(String message_id) {
return this.getByID("stars", message_id, "guild") != null; return this.getByID("stars", message_id, "guild") != null;
} }
public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {
this.update("server", guild_id, "message_id", message_id); public void pushServer(RethinkServer server) {
this.update("server", guild_id, "role_id", role_id); JSONObject object = new JSONObject();
this.update("server", guild_id, "accept_emote", accept_emote); for (Field field : server.getClass().getDeclaredFields()) {
this.update("server", guild_id, "decline_emote", decline_emote); if (!field.getName().equals("rethink")) {
try {
object.put(field.getName(), field.get(server));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
r.table("server").get(server.getId()).update(object).run(conn);
} }
public String getRulesMID(String guild_id) { public void pushUser(RethinkUser user) {
return (String) this.getByID("server", guild_id, "message_id"); 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();
} }
public String getRulesRID(String guild_id) {
return (String) this.getByID("server", guild_id, "role_id");
} }
public String getRulesAEmote(String guild_id) {
return (String) this.getByID("server", guild_id, "accept_emote");
} }
r.table("user").get(user.getId()).update(object).run(conn);
public String getRulesDEmote(String guild_id) {
return (String) this.getByID("server", guild_id, "decline_emote");
}
public void setInviteDetection(String guild_id, boolean b) {
this.update("server", guild_id, "invite_detect", b);
}
public Boolean getInviteDetection(String guild_id) {
return (Boolean) this.getByID("server", guild_id, "invite_detect");
}
public void setLanguage(String user_id, String language) {
this.update("user", user_id, "language", language);
}
public String getLanguage(String user_id) {
return (String) this.getByID("user", user_id, "language");
} }
} }

View file

@ -0,0 +1,117 @@
/*
* @author Hax / Hax6775 / Schlauer_Hax
*/
package com.bbn.hadder;
import org.json.JSONObject;
import java.lang.reflect.Field;
public class RethinkServer {
private Rethink rethink;
String accept_emote = "";
String decline_emote = "";
String id;
boolean invite_detect = false;
String message_id = "";
String neededstars = "3";
String prefix = "h.";
String role_id = "";
String starboard = "";
public RethinkServer(JSONObject object, Rethink rethink) {
for (Field field : this.getClass().getDeclaredFields()) {
if (!field.getName().equals("rethink")) {
try {
if (object.has(field.getName()))
field.set(this, object.get(field.getName()));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
this.rethink = rethink;
}
public String getAccept_emote() {
return accept_emote;
}
public void setAccept_emote(String accept_emote) {
this.accept_emote = accept_emote;
}
public String getDecline_emote() {
return decline_emote;
}
public void setDecline_emote(String decline_emote) {
this.decline_emote = decline_emote;
}
public String getId() {
return id;
}
public boolean isInvite_detect() {
return invite_detect;
}
public void setInvite_detect(boolean invite_detect) {
this.invite_detect = invite_detect;
}
public String getMessage_id() {
return message_id;
}
public void setMessage_id(String message_id) {
this.message_id = message_id;
}
public String getNeededstars() {
return neededstars;
}
public void setNeededstars(String neededstars) {
this.neededstars = neededstars;
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getRole_id() {
return role_id;
}
public void setRole_id(String role_id) {
this.role_id = role_id;
}
public String getStarboard() {
return starboard;
}
public void setStarboard(String starboard) {
this.starboard = starboard;
}
public void updateRules(String message_id, String role_id, String accept_emote, String decline_emote) {
this.setMessage_id(message_id);
this.setRole_id(role_id);
this.setAccept_emote(accept_emote);
this.setDecline_emote(decline_emote);
}
public void push() {
rethink.pushServer(this);
}
}

View file

@ -0,0 +1,77 @@
/*
* @author Hax / Hax6775 / Schlauer_Hax
*/
package com.bbn.hadder;
import org.json.JSONObject;
import java.lang.reflect.Field;
public class RethinkUser {
private Rethink rethink;
String id;
String prefix = "h.";
String language = "en";
String blacklisted = "none";
public RethinkUser(JSONObject object, Rethink rethink) {
for (Field field : this.getClass().getDeclaredFields()) {
if (!field.getName().equals("rethink")) {
try {
if (object.has(field.getName()))
field.set(this, object.getString(field.getName()));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
this.rethink = rethink;
}
public RethinkUser(String id) {
this.id = id;
}
public Rethink getRethink() {
return rethink;
}
public void setRethink(Rethink rethink) {
this.rethink = rethink;
}
public String getId() {
return id;
}
public String getPrefix() {
return prefix;
}
public void setPrefix(String prefix) {
this.prefix = prefix;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getBlacklisted() {
return blacklisted;
}
public void setBlacklisted(String blacklisted) {
this.blacklisted = blacklisted;
}
public void push() {
rethink.pushUser(this);
}
}

View file

@ -1,6 +1,8 @@
package com.bbn.hadder.commands; package com.bbn.hadder.commands;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.audio.AudioManager; import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.commands.general.HelpCommand;
import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.CommandHandler;
@ -10,6 +12,7 @@ import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import org.json.JSONObject;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@ -22,8 +25,13 @@ public class CommandEvent extends MessageReceivedEvent {
private MessageEditor messageEditor; private MessageEditor messageEditor;
private EventWaiter eventWaiter; private EventWaiter eventWaiter;
private AudioManager audioManager; private AudioManager audioManager;
private RethinkUser rethinkUser;
private RethinkServer rethinkServer;
public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter, AudioManager audioManager) { public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config,
CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor,
EventWaiter eventWaiter, AudioManager audioManager, RethinkUser rethinkUser,
RethinkServer rethinkServer) {
super(api, responseNumber, message); super(api, responseNumber, message);
this.rethink = rethink; this.rethink = rethink;
this.config = config; this.config = config;
@ -32,17 +40,8 @@ public class CommandEvent extends MessageReceivedEvent {
this.messageEditor = messageEditor; this.messageEditor = messageEditor;
this.eventWaiter = eventWaiter; this.eventWaiter = eventWaiter;
this.audioManager = audioManager; this.audioManager = audioManager;
} this.rethinkUser = rethinkUser;
this.rethinkServer = rethinkServer;
public CommandEvent(MessageReceivedEvent event, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter, AudioManager audioManager) {
super(event.getJDA(), event.getResponseNumber(), event.getMessage());
this.rethink = rethink;
this.config = config;
this.commandHandler = commandHandler;
this.helpCommand = helpCommand;
this.messageEditor = messageEditor;
this.eventWaiter = eventWaiter;
this.audioManager = audioManager;
} }
public Rethink getRethink() { public Rethink getRethink() {
@ -72,4 +71,12 @@ public class CommandEvent extends MessageReceivedEvent {
public AudioManager getAudioManager() { public AudioManager getAudioManager() {
return audioManager; return audioManager;
} }
public RethinkServer getRethinkServer() {
return rethinkServer;
}
public RethinkUser getRethinkUser() {
return rethinkUser;
}
} }

View file

@ -28,7 +28,7 @@ public class ClydeCommand implements Command {
if (args.length > 0) { if (args.length > 0) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_WEBHOOKS)) {
TextChannel channel = event.getMessage().getTextChannel(); TextChannel channel = event.getMessage().getTextChannel();
String content = event.getMessage().getContentRaw().replace(event.getRethink().getGuildPrefix(event.getGuild().getId()), "").replace(event.getRethink().getUserPrefix(event.getAuthor().getId()), "").replace("clyde", ""); String content = event.getMessage().getContentRaw().replace(event.getRethinkServer().getPrefix(), "").replace(event.getRethinkUser().getPrefix(), "").replace("clyde", "");
Webhook webhook = channel.createWebhook(event.getConfig().getClydeName()).complete(); Webhook webhook = channel.createWebhook(event.getConfig().getClydeName()).complete();
try { try {

View file

@ -63,10 +63,10 @@ public class HelpCommand implements Command {
StringBuilder b = new StringBuilder(); StringBuilder b = new StringBuilder();
b.append(event.getMessageEditor().getTerm("commands.general.help.description")).append(" ").append(event.getMessageEditor().getTerm(cmd.description())).append("\n"); b.append(event.getMessageEditor().getTerm("commands.general.help.description")).append(" ").append(event.getMessageEditor().getTerm(cmd.description())).append("\n");
if (cmd.usage() != null) { if (cmd.usage() != null) {
b.append(event.getMessageEditor().getTerm("commands.general.help.usage")).append(" ").append(event.getRethink().getGuildPrefix(event.getGuild().getId())).append(name).append(" ").append(cmd.usage()).append("\n"); b.append(event.getMessageEditor().getTerm("commands.general.help.usage")).append(" ").append(event.getRethinkServer().getPrefix()).append(name).append(" ").append(cmd.usage()).append("\n");
} }
if (cmd.example() != null) { if (cmd.example() != null) {
b.append(event.getMessageEditor().getTerm("commands.general.help.example")).append(" ").append(event.getRethink().getGuildPrefix(event.getGuild().getId())).append(name).append(" ").append(cmd.example()); b.append(event.getMessageEditor().getTerm("commands.general.help.example")).append(" ").append(event.getRethinkServer().getPrefix()).append(name).append(" ").append(cmd.example());
} }
event.getChannel().sendMessage(event.getMessageEditor().getMessage( event.getChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO) MessageEditor.MessageType.INFO)

View file

@ -16,7 +16,7 @@ public class EditRulesCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getRethink().getRulesMID(event.getGuild().getId()).length() == 18) { if (event.getRethinkServer().getMessage_id().length() == 18) {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
"commands.moderation.editrules.message.title", "commands.moderation.editrules.message.title",
"commands.moderation.editrules.message.description").build()).queue(); "commands.moderation.editrules.message.description").build()).queue();
@ -56,13 +56,13 @@ public class EditRulesCommand implements Command {
} else { } else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
"commands.moderation.editrules.error.title", "", "commands.moderation.editrules.error.title", "",
"commands.moderation.editrules.error.description", event.getRethink().getGuildPrefix(event.getGuild().getId())).build()).queue(); "commands.moderation.editrules.error.description", event.getRethinkServer().getPrefix()).build()).queue();
} }
} }
public void checkChannel(CommandEvent event, String rules, TextChannel channel) { public void checkChannel(CommandEvent event, String rules, TextChannel channel) {
try { try {
channel.retrieveMessageById(event.getRethink().getRulesMID(event.getGuild().getId())).queue(); channel.retrieveMessageById(event.getRethinkServer().getMessage_id()).queue();
setRules(event, rules, channel); setRules(event, rules, channel);
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
"commands.moderation.editrules.success.title", "commands.moderation.editrules.success.title",
@ -75,7 +75,7 @@ public class EditRulesCommand implements Command {
} }
public void setRules(CommandEvent event, String rules, TextChannel channel) { public void setRules(CommandEvent event, String rules, TextChannel channel) {
channel.retrieveMessageById(event.getRethink().getRulesMID(event.getGuild().getId())).complete().editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) channel.retrieveMessageById(event.getRethinkServer().getMessage_id()).complete().editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setTitle("Rules") .setTitle("Rules")
.setDescription(rules) .setDescription(rules)
.build()).queue(); .build()).queue();

View file

@ -19,14 +19,15 @@ public class InviteDetectCommand implements Command {
String opinion = args[0].toLowerCase(); String opinion = args[0].toLowerCase();
switch (opinion) { switch (opinion) {
case "on": case "on":
if (!event.getRethink().getInviteDetection(event.getGuild().getId())) { if (!event.getRethinkServer().isInvite_detect()) {
event.getRethink().setInviteDetection(event.getGuild().getId(), true); event.getRethinkServer().setInvite_detect(true);
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.invitedetect.activate.success.title", "commands.moderation.invitedetect.activate.success.title",
"commands.moderation.invitedetect.activate.success.description") "commands.moderation.invitedetect.activate.success.description")
.build()).queue(); .build()).queue();
event.getRethinkServer().push();
} else { } else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.ERROR, MessageEditor.MessageType.ERROR,
@ -37,13 +38,14 @@ public class InviteDetectCommand implements Command {
break; break;
case "off": case "off":
if (event.getRethink().getInviteDetection(event.getGuild().getId())) { if (event.getRethinkServer().isInvite_detect()) {
event.getRethink().setInviteDetection(event.getGuild().getId(), false); event.getRethinkServer().setInvite_detect(false);
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.invitedetect.deactivate.success.title", "commands.moderation.invitedetect.deactivate.success.title",
"commands.moderation.invitedetect.deactivate.success.description") "commands.moderation.invitedetect.deactivate.success.description")
.build()).queue(); .build()).queue();
event.getRethinkServer().push();
} else { } else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.ERROR, MessageEditor.MessageType.ERROR,

View file

@ -22,8 +22,8 @@ public class NickCommand implements Command {
if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) { if (!event.getMessage().getMentionedMembers().get(0).getId().equals(event.getGuild().getSelfMember().getId())) {
if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) { if (event.getGuild().getSelfMember().canInteract(event.getMessage().getMentionedMembers().get(0))) {
if (args.length > 1) { if (args.length > 1) {
if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { if (event.getMessage().getContentRaw().startsWith(event.getRethinkUser().getPrefix())) {
event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
@ -32,8 +32,8 @@ public class NickCommand implements Command {
"commands.moderation.nick.success.description", "commands.moderation.nick.success.description",
event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() event.getMessage().getMentionedMembers().get(0).getUser().getAsTag()
).build()).queue(); ).build()).queue();
} else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().startsWith(event.getRethinkServer().getPrefix())) {
event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
@ -49,8 +49,8 @@ public class NickCommand implements Command {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
} }
} else { } else {
if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) { if (event.getMessage().getContentRaw().startsWith(event.getRethinkUser().getPrefix())) {
event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
@ -58,8 +58,8 @@ public class NickCommand implements Command {
"", "",
"commands.moderation.nick.myself.success.description", "commands.moderation.nick.myself.success.description",
"").build()).queue(); "").build()).queue();
} else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().startsWith(event.getRethinkServer().getPrefix())) {
event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,

View file

@ -13,7 +13,8 @@ public class PrefixCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length == 1) { if (args.length == 1) {
if (!args[0].contains("\"")) { if (!args[0].contains("\"")) {
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); event.getRethinkServer().setPrefix(args[0]);
event.getRethinkServer().push();
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.prefix.success.title", "commands.moderation.prefix.success.title",

View file

@ -160,7 +160,8 @@ public class RulesCommand implements Command {
.build()).queue(); .build()).queue();
e.printStackTrace(); e.printStackTrace();
} }
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote.toString(), demote.toString()); event.getRethinkServer().updateRules(rules.getId(), role.getId(), aemote.toString(), demote.toString());
event.getRethinkServer().push();
} else { } else {
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
@ -205,7 +206,8 @@ public class RulesCommand implements Command {
.build()).queue(); .build()).queue();
e.printStackTrace(); e.printStackTrace();
} }
event.getRethink().updateRules(event.getGuild().getId(), rules.getId(), role.getId(), aemote, demote); event.getRethinkServer().updateRules(rules.getId(), role.getId(), aemote, demote);
event.getRethinkServer().push();
} else { } else {
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(

View file

@ -10,7 +10,7 @@ public class StarboardCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getMessage().getMentionedChannels().size()==1) { if (event.getMessage().getMentionedChannels().size()==1) {
event.getRethink().setStarboardChannel(event.getGuild().getId(), event.getMessage().getMentionedChannels().get(0).getId()); event.getRethinkServer().setStarboard(event.getMessage().getMentionedChannels().get(0).getId());
event.getChannel().sendMessage( event.getChannel().sendMessage(
event.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
@ -21,7 +21,7 @@ public class StarboardCommand implements Command {
if (args.length>0) { if (args.length>0) {
TextChannel channel = event.getGuild().getTextChannelById(args[0]); TextChannel channel = event.getGuild().getTextChannelById(args[0]);
if (channel!=null) { if (channel!=null) {
event.getRethink().setStarboardChannel(event.getGuild().getId(), channel.getId()); event.getRethinkServer().setStarboard(channel.getId());
} }
} else { } else {
event.getHelpCommand().sendHelp(this, event); event.getHelpCommand().sendHelp(this, event);
@ -29,8 +29,10 @@ public class StarboardCommand implements Command {
} }
if (args.length==2) { if (args.length==2) {
event.getRethink().setNeededStars(args[1], event.getGuild().getId()); event.getRethinkServer().setNeededstars(args[1]);
} }
event.getRethinkServer().push();
} }
@Override @Override

View file

@ -18,7 +18,7 @@ public class PlayCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length > 0) { if (args.length > 0) {
if (event.getMember().getVoiceState().inVoiceChannel()) { if (event.getMember().getVoiceState().inVoiceChannel()) {
String input = event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "play ", "").replaceFirst(event.getRethink().getUserPrefix(event.getAuthor().getId()) + "play ", ""); String input = event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "play ", "").replaceFirst(event.getRethinkUser().getPrefix() + "play ", "");
try { try {
new URL(input).toURI(); new URL(input).toURI();
Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,

View file

@ -29,7 +29,7 @@ public class BlacklistCommand implements Command {
case "add": case "add":
if (args.length == 3) { if (args.length == 3) {
Member member = event.getMessage().getMentionedMembers().get(0); Member member = event.getMessage().getMentionedMembers().get(0);
String blacklisted = event.getRethink().getBlackListed(member.getId()); String blacklisted = event.getRethinkUser().getBlacklisted();
List<String> commands = new ArrayList<>(); List<String> commands = new ArrayList<>();
if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(","))); if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(",")));
commands.addAll(Arrays.asList(args[1].split(","))); commands.addAll(Arrays.asList(args[1].split(",")));
@ -37,19 +37,20 @@ public class BlacklistCommand implements Command {
ArrayList<String> commandsWithoutDuplicates = new ArrayList<>(hashSet); ArrayList<String> commandsWithoutDuplicates = new ArrayList<>(hashSet);
String newblacklisted = ((commandsWithoutDuplicates.size()!=0) ? String.join(",", commandsWithoutDuplicates) : "none"); String newblacklisted = ((commandsWithoutDuplicates.size()!=0) ? String.join(",", commandsWithoutDuplicates) : "none");
event.getRethink().setBlackListed(member.getId(), newblacklisted); event.getRethinkUser().setBlacklisted(newblacklisted);
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setTitle("Removed Blacklisted Commands from User") .setTitle("Removed Blacklisted Commands from User")
.setDescription("Blacklisted commands: "+newblacklisted) .setDescription("Blacklisted commands: "+newblacklisted)
.build()).queue(); .build()).queue();
event.getRethinkUser().push();
} }
break; break;
case "remove": case "remove":
if (args.length == 3) { if (args.length == 3) {
Member member = event.getMessage().getMentionedMembers().get(0); Member member = event.getMessage().getMentionedMembers().get(0);
String blacklisted = event.getRethink().getBlackListed(member.getId()); String blacklisted = event.getRethinkUser().getBlacklisted();
List<String> commands = new ArrayList<>(); List<String> commands = new ArrayList<>();
if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(","))); if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(",")));
commands.removeAll(Arrays.asList(args[1].split(","))); commands.removeAll(Arrays.asList(args[1].split(",")));
@ -57,12 +58,13 @@ public class BlacklistCommand implements Command {
ArrayList<String> commandsWithoutDuplicates = new ArrayList<>(hashSet); ArrayList<String> commandsWithoutDuplicates = new ArrayList<>(hashSet);
String newblacklisted = ((commandsWithoutDuplicates.size()!=0) ? String.join(",", commandsWithoutDuplicates) : "none"); String newblacklisted = ((commandsWithoutDuplicates.size()!=0) ? String.join(",", commandsWithoutDuplicates) : "none");
event.getRethink().setBlackListed(member.getId(), newblacklisted); event.getRethinkUser().setBlacklisted(newblacklisted);
event.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
.setTitle("Removed Blacklisted Commands from User") .setTitle("Removed Blacklisted Commands from User")
.setDescription("Blacklisted commands: "+newblacklisted) .setDescription("Blacklisted commands: "+newblacklisted)
.build()).queue(); .build()).queue();
event.getRethinkUser().push();
} }
break; break;
@ -70,7 +72,7 @@ public class BlacklistCommand implements Command {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
for (User user : event.getJDA().getUsers()) { for (User user : event.getJDA().getUsers()) {
if (!user.getId().equals(event.getJDA().getSelfUser().getId())) { if (!user.getId().equals(event.getJDA().getSelfUser().getId())) {
String blacklisted = event.getRethink().getBlackListed(user.getId()); String blacklisted = event.getRethinkUser().getBlacklisted();
if (!"none".equals(blacklisted)) { if (!"none".equals(blacklisted)) {
stringBuilder.append(user.getAsTag()).append(" (").append(user.getId()).append(") - ").append(blacklisted).append("\n"); stringBuilder.append(user.getAsTag()).append(" (").append(user.getId()).append(") - ").append(blacklisted).append("\n");
} }

View file

@ -0,0 +1,85 @@
/*
* @author Hax / Hax6775 / Schlauer_Hax
*/
package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import net.dv8tion.jda.api.audio.*;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.managers.AudioManager;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
public class EchoCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
Guild guild = event.getMember().getVoiceState().getChannel().getGuild();
AudioManager audioManager = guild.getAudioManager();
EchoHandler handler = new EchoHandler();
if (!audioManager.isConnected()) {
audioManager.setSendingHandler(handler);
audioManager.setReceivingHandler(handler);
audioManager.openAudioConnection(event.getMember().getVoiceState().getChannel());
} else {
audioManager.closeAudioConnection();
}
}
@Override
public String[] labels() {
return new String[]{"echo"};
}
@Override
public String description() {
return null;
}
@Override
public String usage() {
return null;
}
@Override
public String example() {
return null;
}
public static class EchoHandler implements AudioSendHandler, AudioReceiveHandler {
private final Queue<byte[]> queue = new ConcurrentLinkedQueue<>();
@Override
public boolean canProvide() {
return !queue.isEmpty();
}
@Nullable
@Override
public ByteBuffer provide20MsAudio() {
byte[] data = queue.poll();
return data == null ? null : ByteBuffer.wrap(data); // Wrap this in a java.nio.ByteBuffer
}
@Override
public boolean canReceiveCombined() {
return queue.size() < 10;
}
@Override
public void handleCombinedAudio(@Nonnull CombinedAudio combinedAudio) {
if (combinedAudio.getUsers().isEmpty())
return;
byte[] data = combinedAudio.getAudioData(1.0f); // volume at 100% = 1.0 (50% = 0.5 / 55% = 0.55)
queue.add(data);
}
}
}

View file

@ -42,7 +42,7 @@ public class LanguageCommand implements Command {
} }
public void setLanguage(String language_code, String language, CommandEvent event) { public void setLanguage(String language_code, String language, CommandEvent event) {
event.getRethink().setLanguage(event.getAuthor().getId(), language_code); event.getRethinkUser().setLanguage(language_code);
event.getTextChannel() event.getTextChannel()
.sendMessage( .sendMessage(
event.getMessageEditor() event.getMessageEditor()
@ -50,6 +50,7 @@ public class LanguageCommand implements Command {
"", "commands.settings.language.success.description", language) "", "commands.settings.language.success.description", language)
.build()) .build())
.queue(); .queue();
event.getRethinkUser().push();
} }
@Override @Override

View file

@ -12,13 +12,14 @@ public class UserPrefixCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length == 1) { if (args.length == 1) {
event.getRethink().setUserPrefix(args[0], event.getAuthor().getId()); event.getRethinkUser().setPrefix(args[0]);
event.getTextChannel() event.getTextChannel()
.sendMessage(event.getMessageEditor() .sendMessage(event.getMessageEditor()
.getMessage(MessageEditor.MessageType.INFO, "commands.settings.prefix.success.title", "", .getMessage(MessageEditor.MessageType.INFO, "commands.settings.prefix.success.title", "",
"commands.settings.prefix.success.description", args[0]) "commands.settings.prefix.success.description", args[0])
.build()) .build())
.queue(); .queue();
event.getRethinkUser().push();
} else { } else {
event.getHelpCommand().sendHelp(this, event); event.getHelpCommand().sendHelp(this, event);
} }

View file

@ -1,6 +1,8 @@
package com.bbn.hadder.core; package com.bbn.hadder.core;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.audio.AudioManager; import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
@ -8,6 +10,7 @@ import com.bbn.hadder.commands.general.HelpCommand;
import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import org.json.JSONObject;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -24,7 +27,7 @@ public class CommandHandler {
this.helpCommand = helpCommand; this.helpCommand = helpCommand;
} }
public void handle(MessageReceivedEvent event, Rethink rethink, String prefix, AudioManager audioManager) { public void handle(MessageReceivedEvent event, Rethink rethink, String prefix, AudioManager audioManager, RethinkUser rethinkUser, RethinkServer rethinkServer) {
String invoke = event.getMessage().getContentRaw().replaceFirst(prefix, "").split(" ")[0]; String invoke = event.getMessage().getContentRaw().replaceFirst(prefix, "").split(" ")[0];
for (Command cmd : commandList) { for (Command cmd : commandList) {
for (String label : cmd.labels()) { for (String label : cmd.labels()) {
@ -36,7 +39,7 @@ public class CommandHandler {
if (args.length > 0 && args[0].equals("")) args = new String[0]; if (args.length > 0 && args[0].equals("")) args = new String[0];
CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink,
config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()), new EventWaiter(), audioManager); config, this, helpCommand, new MessageEditor(rethinkUser, event.getAuthor()), new EventWaiter(), audioManager, rethinkUser, rethinkServer);
if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) {
for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) {
if (!perm.check(commandEvent)) { if (!perm.check(commandEvent)) {
@ -50,7 +53,7 @@ public class CommandHandler {
} }
boolean run = true; boolean run = true;
String blacklisted = rethink.getBlackListed(event.getAuthor().getId()); String blacklisted = rethinkUser.getBlacklisted();
if (!"none".equals(blacklisted)) { if (!"none".equals(blacklisted)) {
for (String BLLabel : blacklisted.split(",")) { for (String BLLabel : blacklisted.split(",")) {
if (Arrays.asList(cmd.labels()).contains(BLLabel)) { if (Arrays.asList(cmd.labels()).contains(BLLabel)) {

View file

@ -1,11 +1,14 @@
package com.bbn.hadder.listener; package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.audio.AudioManager; import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.CommandHandler;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.json.JSONObject;
/* /*
* @author Skidder / GregTCLTK * @author Skidder / GregTCLTK
@ -26,15 +29,19 @@ public class CommandListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(MessageReceivedEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT) && !event.getAuthor().isBot()) { if (event.isFromType(ChannelType.TEXT) && !event.getAuthor().isBot()) {
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", event.getAuthor().getId()), rethink);
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
rethinkUser.push();
rethinkServer.push();
String[] prefixes = { String[] prefixes = {
rethink.getUserPrefix(event.getAuthor().getId()), rethink.getGuildPrefix(event.getGuild().getId()), rethinkUser.getPrefix(), rethinkServer.getPrefix(),
event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention(), event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention(),
event.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ", event.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ",
event.getGuild().getSelfMember().getAsMention().replace("@", "@!") event.getGuild().getSelfMember().getAsMention().replace("@", "@!")
}; };
for (String prefix : prefixes) { for (String prefix : prefixes) {
if (event.getMessage().getContentRaw().startsWith(prefix)) { if (event.getMessage().getContentRaw().startsWith(prefix)) {
handler.handle(event, rethink, prefix, audioManager); handler.handle(event, rethink, prefix, audioManager, rethinkUser, rethinkServer);
return; return;
} }
} }

View file

@ -5,6 +5,7 @@ package com.bbn.hadder.listener;
*/ */
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
@ -28,10 +29,11 @@ public class InviteLinkListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.isFromType(ChannelType.TEXT)) { if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId()))) { if (event.getMessage().getContentRaw().contains("discord.gg/") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) {
checkInvite(event.getMessage(), "discord.gg/"); checkInvite(event.getMessage(), "discord.gg/");
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) {
checkInvite(event.getMessage(), "discordapp.com/invite/"); checkInvite(event.getMessage(), "discordapp.com/invite/");
} }
} }
@ -55,10 +57,11 @@ public class InviteLinkListener extends ListenerAdapter {
@Override @Override
public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { public void onMessageUpdate(@Nonnull MessageUpdateEvent event) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.isFromType(ChannelType.TEXT)) { if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { if (event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) {
checkInvite(event.getMessage(), "discord.gg/"); checkInvite(event.getMessage(), "discord.gg/");
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) {
checkInvite(event.getMessage(), "discordapp.com/invite/"); checkInvite(event.getMessage(), "discordapp.com/invite/");
} }
} }

View file

@ -1,6 +1,8 @@
package com.bbn.hadder.listener; package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -19,15 +21,18 @@ public class MentionListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (!event.getAuthor().isBot()) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", event.getAuthor().getId()), rethink);
if (event.isFromType(ChannelType.TEXT) && (event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention()) || if (event.isFromType(ChannelType.TEXT) && (event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention()) ||
event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
event.getChannel().sendMessage(new MessageEditor(rethink, event.getAuthor()).getMessage(MessageEditor.MessageType.INFO) event.getChannel().sendMessage(new MessageEditor(rethinkUser, event.getAuthor()).getMessage(MessageEditor.MessageType.INFO)
.setTitle("Hello I'm Hadder.") .setTitle("Hello I'm Hadder.")
.setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl()) .setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl())
.addField("Users", String.valueOf(event.getJDA().getUsers().size()), false) .addField("Users", String.valueOf(event.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false) .addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false)
.addField("Prefix (User)", rethink.getUserPrefix(event.getAuthor().getId()), false) .addField("Prefix (User)", rethinkUser.getPrefix(), false)
.addField("Prefix (Guild)", rethink.getGuildPrefix(event.getGuild().getId()), false) .addField("Prefix (Guild)", rethinkServer.getPrefix(), false)
.build()).queue(); .build()).queue();
} else if (event.getMessage().getContentRaw().equalsIgnoreCase("@someone")) { } else if (event.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(event.getGuild().getMembers().size() - 1); int member = new Random().nextInt(event.getGuild().getMembers().size() - 1);
@ -37,3 +42,4 @@ public class MentionListener extends ListenerAdapter {
} }
} }
} }
}

View file

@ -5,6 +5,7 @@ package com.bbn.hadder.listener;
*/ */
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.PrivateChannel; import net.dv8tion.jda.api.entities.PrivateChannel;
@ -25,14 +26,15 @@ public class PrivateMessageListener extends ListenerAdapter {
if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) { if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", "261083609148948488"), rethink);
Skidder.sendMessage(new MessageEditor(rethink, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) Skidder.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag()) .setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw()) .setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now()) .setTimestamp(Instant.now())
.build()).queue(); .build()).queue();
Hax.sendMessage(new MessageEditor(rethink, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) Hax.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag()) .setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl()) .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw()) .setDescription(event.getMessage().getContentRaw())

View file

@ -5,6 +5,7 @@ package com.bbn.hadder.listener;
*/ */
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionRemoveEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
@ -19,20 +20,21 @@ public class RulesListener extends ListenerAdapter {
@Override @Override
public void onMessageReactionAdd(MessageReactionAddEvent event) { public void onMessageReactionAdd(MessageReactionAddEvent event) {
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) {
if (event.getReactionEmote().isEmote()) { if (event.getReactionEmote().isEmote()) {
if (rethink.getRulesAEmote(event.getGuild().getId()).equals(event.getReactionEmote().getId())) { if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getId())) {
addRole(event); addRole(event);
} else if (rethink.getRulesDEmote(event.getGuild().getId()).equals(event.getReactionEmote().getId())) { } else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getId())) {
event.getReaction().removeReaction(event.getUser()).queue(); event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) { if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules"); event.getMember().kick().reason("Declined the rules");
} }
} }
} else if (event.getReactionEmote().isEmoji()) { } else if (event.getReactionEmote().isEmoji()) {
if (rethink.getRulesAEmote(event.getGuild().getId()).equals(event.getReactionEmote().getEmoji())) { if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getEmoji())) {
addRole(event); addRole(event);
} else if (rethink.getRulesDEmote(event.getGuild().getId()).equals(event.getReactionEmote().getEmoji())) { } else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getEmoji())) {
event.getReaction().removeReaction(event.getUser()).queue(); event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) { if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules"); event.getMember().kick().reason("Declined the rules");
@ -43,15 +45,17 @@ public class RulesListener extends ListenerAdapter {
} }
private void addRole(MessageReactionAddEvent event) { private void addRole(MessageReactionAddEvent event) {
if (event.getMember().getRoles().contains(event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId())))) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); if (event.getMember().getRoles().contains(event.getGuild().getRoleById(rethinkServer.getMessage_id()))) {
} else event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getMessage_id())).reason("Accepted rules").queue();
} else event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getRole_id())).reason("Accepted rules").queue();
} }
@Override @Override
public void onMessageReactionRemove(MessageReactionRemoveEvent event) { public void onMessageReactionRemove(MessageReactionRemoveEvent event) {
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue(); if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) {
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethinkServer.getRole_id())).reason("Withdrawal of the acceptance of the rules").queue();
} }
} }
} }

View file

@ -1,6 +1,7 @@
package com.bbn.hadder.listener; package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.MessageBuilder; import net.dv8tion.jda.api.MessageBuilder;
import net.dv8tion.jda.api.entities.MessageReaction; import net.dv8tion.jda.api.entities.MessageReaction;
@ -31,9 +32,9 @@ public class StarboardListener extends ListenerAdapter {
public void update(GenericMessageReactionEvent event) { public void update(GenericMessageReactionEvent event) {
if (event.getReaction().getReactionEmote().getName().equals("")) { if (event.getReaction().getReactionEmote().getName().equals("")) {
RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (!rethink.hasStarboardMessage(event.getMessageId())) { if (!rethink.hasStarboardMessage(event.getMessageId())) {
if (rethink.hasStarboardChannel(event.getGuild().getId())) { if (rethink.hasStarboardChannel(event.getGuild().getId())) {
event.getTextChannel().retrieveMessageById(event.getMessageId()).queue( event.getTextChannel().retrieveMessageById(event.getMessageId()).queue(
msg -> { msg -> {
Integer stars = 0; Integer stars = 0;
@ -43,8 +44,8 @@ public class StarboardListener extends ListenerAdapter {
} }
} }
if (Integer.parseInt(rethink.getNeededStars(event.getGuild().getId())) <= stars) { if (Integer.parseInt(rethinkServer.getNeededstars()) <= stars) {
event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) event.getGuild().getTextChannelById(rethinkServer.getStarboard())
.sendMessage(new MessageBuilder() .sendMessage(new MessageBuilder()
.setContent("⭐ 1" + " " + event.getTextChannel().getAsMention()) .setContent("⭐ 1" + " " + event.getTextChannel().getAsMention())
.setEmbed( .setEmbed(
@ -73,11 +74,11 @@ public class StarboardListener extends ListenerAdapter {
} }
Integer finalStars = stars; Integer finalStars = stars;
event.getGuild().getTextChannelById(rethink.getStarboardChannel(event.getGuild().getId())) event.getGuild().getTextChannelById(rethinkServer.getStarboard())
.retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue( .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue(
msg2 -> { msg2 -> {
if (Integer.parseInt(rethink.getNeededStars(event.getGuild().getId())) <= finalStars) { if (Integer.parseInt(rethinkServer.getNeededstars()) <= finalStars) {
msg2.editMessage(new MessageBuilder() msg2.editMessage(new MessageBuilder()
.setContent("" + finalStars + " " + event.getTextChannel().getAsMention()) .setContent("" + finalStars + " " + event.getTextChannel().getAsMention())
.setEmbed( .setEmbed(

View file

@ -1,6 +1,7 @@
package com.bbn.hadder.utils; package com.bbn.hadder.utils;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkUser;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
@ -11,11 +12,11 @@ import java.util.ResourceBundle;
public class MessageEditor { public class MessageEditor {
private Rethink rethink; private RethinkUser rethinkUser;
private User user; private User user;
public MessageEditor(Rethink rethink, User user) { public MessageEditor(RethinkUser rethinkUser, User user) {
this.rethink = rethink; this.rethinkUser = rethinkUser;
this.user = user; this.user = user;
} }
@ -34,7 +35,7 @@ public class MessageEditor {
public EmbedBuilder getMessage(MessageType type, String title, String title_extra, String title_extra_two, public EmbedBuilder getMessage(MessageType type, String title, String title_extra, String title_extra_two,
String description, String description_extra, String description_extra_two) { String description, String description_extra, String description_extra_two) {
String language = (this.user!=null) ? rethink.getLanguage(this.user.getId()) : null; String language = (this.user!=null) ? rethinkUser.getLanguage() : null;
EmbedBuilder eb = this.getDefaultSettings(type); EmbedBuilder eb = this.getDefaultSettings(type);
if (!"".equals(title)) eb.setTitle(this.handle(language, title, title_extra, title_extra_two)); if (!"".equals(title)) eb.setTitle(this.handle(language, title, title_extra, title_extra_two));
if (!"".equals(description)) eb.setDescription(this.handle(language, description, description_extra, description_extra_two)); if (!"".equals(description)) eb.setDescription(this.handle(language, description, description_extra, description_extra_two));
@ -105,11 +106,11 @@ public class MessageEditor {
} }
public String getTerm(String string) { public String getTerm(String string) {
return this.handle(rethink.getLanguage(user.getId()), string, "", ""); return this.handle(rethinkUser.getLanguage(), string, "", "");
} }
public String getTerm(String string, String extra, String extra_two) { public String getTerm(String string, String extra, String extra_two) {
return this.handle(rethink.getLanguage(user.getId()), string, extra, extra_two); return this.handle(rethinkUser.getLanguage(), string, extra, extra_two);
} }
private String handle(String language_code, String string, String extra, String extra_two) { private String handle(String language_code, String string, String extra, String extra_two) {