Merge pull request #339 from BigBotNetwork/hax-dev

Hax dev
This commit is contained in:
Skidder 2020-01-21 08:18:45 +01:00 committed by GitHub
commit e80909c2b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 537 additions and 274 deletions

View file

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

@ -21,7 +21,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;
@ -79,28 +81,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) {
@ -124,7 +108,7 @@ public class Rethink {
try { try {
r.tableCreate("server").run(conn); r.tableCreate("server").run(conn);
} catch (ReqlOpFailedError e) { } catch (ReqlOpFailedError e) {
System.out.println(e.getMessage()); System.out.println(e.getMessage());
} }
try { try {
r.tableCreate("user").run(conn); r.tableCreate("user").run(conn);
@ -138,22 +122,6 @@ public class Rethink {
} }
} }
public void setUserPrefix(String prefix, String user_id) {
this.update("user", user_id, "prefix", prefix);
}
public String getUserPrefix(String id) {
return (String) this.getByID("user", id, "prefix");
}
public void setGuildPrefix(String prefix, String guild_id) {
this.update("server", guild_id, "prefix", prefix);
}
public String getGuildPrefix(String id) {
return (String) this.getByID("server", id, "prefix");
}
public void insertGuild(String id) { public void insertGuild(String id) {
this.insert("server", r this.insert("server", r
.hashMap("id", id) .hashMap("id", id)
@ -174,87 +142,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")) {
public String getRulesRID(String guild_id) { try {
return (String) this.getByID("server", guild_id, "role_id"); object.put(field.getName(), field.get(user));
} } catch (IllegalAccessException e) {
e.printStackTrace();
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

@ -17,6 +17,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;
@ -26,6 +28,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;
@ -38,8 +41,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;
@ -48,17 +56,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() {
@ -88,4 +87,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

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

View file

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

View file

@ -27,9 +27,9 @@ import net.dv8tion.jda.api.entities.TextChannel;
public class EditRulesCommand implements Command { public class EditRulesCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent e) { public void executed(String[] args, CommandEvent event) {
if (e.getRethink().getRulesMID(e.getGuild().getId()).length() == 18) { if (event.getRethinkServer().getMessage_id().length() == 18) {
e.getTextChannel().sendMessage(e.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();
@ -68,15 +68,15 @@ public class EditRulesCommand implements Command {
} else { } else {
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
"commands.moderation.editrules.error.title", "", "commands.moderation.editrules.error.title", "",
"commands.moderation.editrules.error.description", e.getRethink().getGuildPrefix(e.getGuild().getId())).build()).queue(); "commands.moderation.editrules.error.description", event.getRethinkServer().getPrefix()).build()).queue();
} }
} }
public void checkChannel(CommandEvent e, String rules, TextChannel channel) { public void checkChannel(CommandEvent e, String rules, TextChannel channel) {
try { try {
channel.retrieveMessageById(e.getRethink().getRulesMID(e.getGuild().getId())).queue(); channel.retrieveMessageById(event.getRethinkServer().getMessage_id()).queue();
setRules(e, rules, channel); setRules(event, rules, channel);
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
"commands.moderation.editrules.success.title", "commands.moderation.editrules.success.title",
"commands.moderation.editrules.success.description").build()).queue(); "commands.moderation.editrules.success.description").build()).queue();
} catch (Exception ex) { } catch (Exception ex) {
@ -86,8 +86,8 @@ public class EditRulesCommand implements Command {
} }
} }
public void setRules(CommandEvent e, String rules, TextChannel channel) { public void setRules(CommandEvent event, String rules, TextChannel channel) {
channel.retrieveMessageById(e.getRethink().getRulesMID(e.getGuild().getId())).complete().editMessage(e.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

@ -31,14 +31,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 (!e.getRethink().getInviteDetection(e.getGuild().getId())) { if (!event.getRethinkServer().isInvite_detect()) {
e.getRethink().setInviteDetection(e.getGuild().getId(), true); event.getRethinkServer().setInvite_detect(true);
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.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 {
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(
MessageEditor.MessageType.ERROR, MessageEditor.MessageType.ERROR,
@ -49,13 +50,14 @@ public class InviteDetectCommand implements Command {
break; break;
case "off": case "off":
if (e.getRethink().getInviteDetection(e.getGuild().getId())) { if (event.getRethinkServer().isInvite_detect()) {
e.getRethink().setInviteDetection(e.getGuild().getId(), false); event.getRethinkServer().setInvite_detect(false);
e.getTextChannel().sendMessage(e.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 {
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage( e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(
MessageEditor.MessageType.ERROR, MessageEditor.MessageType.ERROR,

View file

@ -34,20 +34,20 @@ public class NickCommand implements Command {
if (!e.getMessage().getMentionedMembers().get(0).getId().equals(e.getGuild().getSelfMember().getId())) { if (!e.getMessage().getMentionedMembers().get(0).getId().equals(e.getGuild().getSelfMember().getId())) {
if (e.getGuild().getSelfMember().canInteract(e.getMessage().getMentionedMembers().get(0))) { if (e.getGuild().getSelfMember().canInteract(e.getMessage().getMentionedMembers().get(0))) {
if (args.length > 1) { if (args.length > 1) {
if (e.getMessage().getContentRaw().startsWith(e.getRethink().getUserPrefix(e.getMember().getId()))) { if (event.getMessage().getContentRaw().startsWith(event.getRethinkUser().getPrefix())) {
e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getRethink().getUserPrefix(e.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); 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();
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.nick.success.title", "commands.moderation.nick.success.title",
"", "",
"commands.moderation.nick.success.description", "commands.moderation.nick.success.description",
e.getMessage().getMentionedMembers().get(0).getUser().getAsTag() e.getMessage().getMentionedMembers().get(0).getUser().getAsTag()
).build()).queue(); ).build()).queue();
} else if (e.getMessage().getContentRaw().startsWith(e.getRethink().getGuildPrefix(e.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().startsWith(event.getRethinkServer().getPrefix())) {
e.getGuild().modifyNickname(e.getMessage().getMentionedMembers().get(0), e.getMessage().getContentRaw().replaceFirst(e.getRethink().getGuildPrefix(e.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); 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();
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.nick.success.title", "commands.moderation.nick.success.title",
"", "",
@ -61,19 +61,19 @@ public class NickCommand implements Command {
e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
} }
} else { } else {
if (e.getMessage().getContentRaw().startsWith(e.getRethink().getUserPrefix(e.getMember().getId()))) { if (event.getMessage().getContentRaw().startsWith(event.getRethinkUser().getPrefix())) {
e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getRethink().getUserPrefix(e.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethinkUser().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.nick.success.title", "commands.moderation.nick.success.title",
"", "",
"commands.moderation.nick.myself.success.description", "commands.moderation.nick.myself.success.description",
"").build()).queue(); "").build()).queue();
} else if (e.getMessage().getContentRaw().startsWith(e.getRethink().getGuildPrefix(e.getGuild().getId()))) { } else if (event.getMessage().getContentRaw().startsWith(event.getRethinkServer().getPrefix())) {
e.getGuild().getSelfMember().modifyNickname(e.getMessage().getContentRaw().replaceFirst(e.getRethink().getGuildPrefix(e.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + e.getAuthor().getAsTag()).queue(); event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethinkServer().getPrefix() + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.nick.success.title", "commands.moderation.nick.success.title",
"", "",

View file

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

View file

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

View file

@ -24,11 +24,11 @@ import net.dv8tion.jda.api.entities.TextChannel;
public class StarboardCommand implements Command { public class StarboardCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent e) { public void executed(String[] args, CommandEvent event) {
if (e.getMessage().getMentionedChannels().size()==1) { if (event.getMessage().getMentionedChannels().size()==1) {
e.getRethink().setStarboardChannel(e.getGuild().getId(), e.getMessage().getMentionedChannels().get(0).getId()); event.getRethinkServer().setStarboard(event.getMessage().getMentionedChannels().get(0).getId());
e.getChannel().sendMessage( event.getChannel().sendMessage(
e.getMessageEditor().getMessage( event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO, MessageEditor.MessageType.INFO,
"commands.moderation.starboard.success.title","") "commands.moderation.starboard.success.title","")
.build()) .build())
@ -37,7 +37,7 @@ public class StarboardCommand implements Command {
if (args.length>0) { if (args.length>0) {
TextChannel channel = e.getGuild().getTextChannelById(args[0]); TextChannel channel = e.getGuild().getTextChannelById(args[0]);
if (channel!=null) { if (channel!=null) {
e.getRethink().setStarboardChannel(e.getGuild().getId(), channel.getId()); event.getRethinkServer().setStarboard(channel.getId());
} }
} else { } else {
e.getHelpCommand().sendHelp(this, e); e.getHelpCommand().sendHelp(this, e);
@ -45,8 +45,10 @@ public class StarboardCommand implements Command {
} }
if (args.length==2) { if (args.length==2) {
e.getRethink().setNeededStars(args[1], e.getGuild().getId()); event.getRethinkServer().setNeededstars(args[1]);
} }
event.getRethinkServer().push();
} }
@Override @Override

View file

@ -29,8 +29,8 @@ public class PlayCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent e) { public void executed(String[] args, CommandEvent e) {
if (args.length > 0) { if (args.length > 0) {
if (e.getMember().getVoiceState().inVoiceChannel()) { if (event.getMember().getVoiceState().inVoiceChannel()) {
String input = e.getMessage().getContentRaw().replaceFirst(e.getRethink().getGuildPrefix(e.getGuild().getId()) + "play ", "").replaceFirst(e.getRethink().getUserPrefix(e.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 = e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, Message msg = e.getTextChannel().sendMessage(e.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,

View file

@ -40,8 +40,8 @@ public class BlacklistCommand implements Command {
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "add": case "add":
if (args.length == 3) { if (args.length == 3) {
Member member = e.getMessage().getMentionedMembers().get(0); Member member = event.getMessage().getMentionedMembers().get(0);
String blacklisted = e.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(",")));
@ -49,19 +49,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");
e.getRethink().setBlackListed(member.getId(), newblacklisted); event.getRethinkUser().setBlacklisted(newblacklisted);
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.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 = e.getMessage().getMentionedMembers().get(0); Member member = event.getMessage().getMentionedMembers().get(0);
String blacklisted = e.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(",")));
@ -69,20 +70,21 @@ 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");
e.getRethink().setBlackListed(member.getId(), newblacklisted); event.getRethinkUser().setBlacklisted(newblacklisted);
e.getTextChannel().sendMessage( event.getTextChannel().sendMessage(
e.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 "list": case "list":
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
for (User user : e.getJDA().getUsers()) { for (User user : event.getJDA().getUsers()) {
if (!user.getId().equals(e.getJDA().getSelfUser().getId())) { if (!user.getId().equals(event.getJDA().getSelfUser().getId())) {
String blacklisted = e.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,88 @@
/*
* @author Hax / Hax6775 / Schlauer_Hax
*/
package com.bbn.hadder.commands.owner;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
import com.bbn.hadder.core.Perms;
import net.dv8tion.jda.api.audio.*;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.managers.AudioManager;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.nio.ByteBuffer;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
@Perms(Perm.BOT_OWNER)
public class EchoCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
Guild guild = event.getMember().getVoiceState().getChannel().getGuild();
AudioManager audioManager = guild.getAudioManager();
EchoHandler handler = new EchoHandler();
if (!audioManager.isConnected()) {
audioManager.setSendingHandler(handler);
audioManager.setReceivingHandler(handler);
audioManager.openAudioConnection(event.getMember().getVoiceState().getChannel());
} else {
audioManager.closeAudioConnection();
}
}
@Override
public String[] labels() {
return new String[]{"echo"};
}
@Override
public String description() {
return null;
}
@Override
public String usage() {
return null;
}
@Override
public String example() {
return null;
}
public static class EchoHandler implements AudioSendHandler, AudioReceiveHandler {
private final Queue<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

@ -53,15 +53,16 @@ public class LanguageCommand implements Command {
} }
} }
public void setLanguage(String language_code, String language, CommandEvent e) { public void setLanguage(String language_code, String language, CommandEvent event) {
e.getRethink().setLanguage(e.getAuthor().getId(), language_code); event.getRethinkUser().setLanguage(language_code);
e.getTextChannel() event.getTextChannel()
.sendMessage( .sendMessage(
e.getMessageEditor() e.getMessageEditor()
.getMessage(MessageEditor.MessageType.INFO, "commands.settings.language.success.title", .getMessage(MessageEditor.MessageType.INFO, "commands.settings.language.success.title",
"", "commands.settings.language.success.description", language) "", "commands.settings.language.success.description", language)
.build()) .build())
.queue(); .queue();
event.getRethinkUser().push();
} }
@Override @Override

View file

@ -24,13 +24,14 @@ public class UserPrefixCommand implements Command {
public void executed(String[] args, CommandEvent e) { public void executed(String[] args, CommandEvent e) {
if (args.length == 1) { if (args.length == 1) {
e.getRethink().setUserPrefix(args[0], e.getAuthor().getId()); event.getRethinkUser().setPrefix(args[0]);
e.getTextChannel() event.getTextChannel()
.sendMessage(e.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 {
e.getHelpCommand().sendHelp(this, e); e.getHelpCommand().sendHelp(this, e);
} }

View file

@ -17,6 +17,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;
@ -24,6 +26,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;
@ -40,7 +43,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()) {
@ -52,7 +55,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)) {
@ -66,7 +69,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

@ -17,11 +17,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;
public class CommandListener extends ListenerAdapter { public class CommandListener extends ListenerAdapter {
@ -36,17 +39,21 @@ public class CommandListener extends ListenerAdapter {
} }
@Override @Override
public void onMessageReceived(MessageReceivedEvent e) { public void onMessageReceived(MessageReceivedEvent event) {
if (e.isFromType(ChannelType.TEXT) && !e.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(e.getAuthor().getId()), rethink.getGuildPrefix(e.getGuild().getId()), rethinkUser.getPrefix(), rethinkServer.getPrefix(),
e.getGuild().getSelfMember().getAsMention() + " ", e.getGuild().getSelfMember().getAsMention(), event.getGuild().getSelfMember().getAsMention() + " ", event.getGuild().getSelfMember().getAsMention(),
e.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ", event.getGuild().getSelfMember().getAsMention().replace("@", "@!") + " ",
e.getGuild().getSelfMember().getAsMention().replace("@", "@!") event.getGuild().getSelfMember().getAsMention().replace("@", "@!")
}; };
for (String prefix : prefixes) { for (String prefix : prefixes) {
if (e.getMessage().getContentRaw().startsWith(prefix)) { if (event.getMessage().getContentRaw().startsWith(prefix)) {
handler.handle(e, rethink, prefix, audioManager); handler.handle(event, rethink, prefix, audioManager, rethinkUser, rethinkServer);
return; return;
} }
} }

View file

@ -17,6 +17,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.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;
@ -39,12 +40,13 @@ public class InviteLinkListener extends ListenerAdapter {
} }
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent e) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (e.isFromType(ChannelType.TEXT)) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (e.getMessage().getContentRaw().contains("discord.gg/") && (!e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId()))) { if (event.isFromType(ChannelType.TEXT)) {
checkInvite(e.getMessage(), "discord.gg/"); if (event.getMessage().getContentRaw().contains("discord.gg/") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) {
} else if (e.getMessage().getContentRaw().contains("discordapp.com/invite") && (!e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId()))) { checkInvite(event.getMessage(), "discord.gg/");
checkInvite(e.getMessage(), "discordapp.com/invite/"); } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect())) {
checkInvite(event.getMessage(), "discordapp.com/invite/");
} }
} }
} }
@ -66,12 +68,13 @@ public class InviteLinkListener extends ListenerAdapter {
} }
@Override @Override
public void onMessageUpdate(@Nonnull MessageUpdateEvent e) { public void onMessageUpdate(@Nonnull MessageUpdateEvent event) {
if (e.isFromType(ChannelType.TEXT)) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (e.getMessage().getContentRaw().contains("discord.gg/") && !e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId())) { if (event.isFromType(ChannelType.TEXT)) {
checkInvite(e.getMessage(), "discord.gg/"); if (event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) {
} else if (e.getMessage().getContentRaw().contains("discordapp.com/invite") && !e.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(e.getGuild().getId())) { checkInvite(event.getMessage(), "discord.gg/");
checkInvite(e.getMessage(), "discordapp.com/invite/"); } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethinkServer.isInvite_detect()) {
checkInvite(event.getMessage(), "discordapp.com/invite/");
} }
} }
} }

View file

@ -17,6 +17,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;
@ -34,21 +36,25 @@ public class MentionListener extends ListenerAdapter {
} }
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent e) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention())|| if (!event.getAuthor().isBot()) {
e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
e.getChannel().sendMessage(new MessageEditor(rethink, e.getAuthor()).getMessage(MessageEditor.MessageType.INFO) RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", event.getAuthor().getId()), rethink);
.setTitle("Hello I'm Hadder.") if (event.isFromType(ChannelType.TEXT) && (event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention()) ||
.setAuthor(e.getJDA().getSelfUser().getName(), e.getJDA().getSelfUser().getAvatarUrl(), e.getJDA().getSelfUser().getAvatarUrl()) event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
.addField("Users", String.valueOf(e.getJDA().getUsers().size()), false) event.getChannel().sendMessage(new MessageEditor(rethinkUser, event.getAuthor()).getMessage(MessageEditor.MessageType.INFO)
.addField("Guilds", String.valueOf(e.getJDA().getGuilds().size()), false) .setTitle("Hello I'm Hadder.")
.addField("Prefix (User)", rethink.getUserPrefix(e.getAuthor().getId()), false) .setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl())
.addField("Prefix (Guild)", rethink.getGuildPrefix(e.getGuild().getId()), false) .addField("Users", String.valueOf(event.getJDA().getUsers().size()), false)
.build()).queue(); .addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false)
} else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) { .addField("Prefix (User)", rethinkUser.getPrefix(), false)
int member = new Random().nextInt(e.getGuild().getMembers().size()-1); .addField("Prefix (Guild)", rethinkServer.getPrefix(), false)
if (member>0&&member<e.getGuild().getMembers().size()) { .build()).queue();
e.getChannel().sendMessage(e.getGuild().getMembers().get(member).getAsMention()+ " (Executed by: "+e.getAuthor().getAsTag()+")").queue(); } else if (event.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(event.getGuild().getMembers().size() - 1);
if (member > 0 && member < event.getGuild().getMembers().size()) {
event.getChannel().sendMessage(event.getGuild().getMembers().get(member).getAsMention() + " (Executed by: " + event.getAuthor().getAsTag() + ")").queue();
}
} }
} }
} }

View file

@ -17,6 +17,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.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;
@ -33,21 +34,22 @@ public class PrivateMessageListener extends ListenerAdapter {
this.rethink = rethink; this.rethink = rethink;
} }
public void onMessageReceived(MessageReceivedEvent e) { public void onMessageReceived(MessageReceivedEvent event) {
if (e.isFromType(ChannelType.PRIVATE) && !e.getAuthor().getId().equals(e.getJDA().getSelfUser().getId())) { if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = e.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = e.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, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) Skidder.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + e.getAuthor().getAsTag()) .setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl()) .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(e.getMessage().getContentRaw()) .setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now()) .setTimestamp(Instant.now())
.build()).queue(); .build()).queue();
Hax.sendMessage(new MessageEditor(rethink, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO) Hax.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + e.getAuthor().getAsTag()) .setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl()) .setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(e.getMessage().getContentRaw()) .setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now()) .setTimestamp(Instant.now())
.build()).queue(); .build()).queue();
} }

View file

@ -17,6 +17,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.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;
@ -30,40 +31,43 @@ public class RulesListener extends ListenerAdapter {
} }
@Override @Override
public void onMessageReactionAdd(MessageReactionAddEvent e) { public void onMessageReactionAdd(MessageReactionAddEvent event) {
if (e.getMessageId().equals(rethink.getRulesMID(e.getGuild().getId())) && !e.getMember().getUser().isBot()) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (e.getReactionEmote().isEmote()) { if (event.getMessageId().equals(rethinkServer.getMessage_id()) && !event.getMember().getUser().isBot()) {
if (rethink.getRulesAEmote(e.getGuild().getId()).equals(e.getReactionEmote().getId())) { if (event.getReactionEmote().isEmote()) {
addRole(e); if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getId())) {
} else if (rethink.getRulesDEmote(e.getGuild().getId()).equals(e.getReactionEmote().getId())) { addRole(event);
e.getReaction().removeReaction(e.getUser()).queue(); } else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getId())) {
if (e.getGuild().getSelfMember().canInteract(e.getMember())) { event.getReaction().removeReaction(event.getUser()).queue();
e.getMember().kick().reason("Declined the rules"); if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules");
} }
} }
} else if (e.getReactionEmote().isEmoji()) { } else if (event.getReactionEmote().isEmoji()) {
if (rethink.getRulesAEmote(e.getGuild().getId()).equals(e.getReactionEmote().getEmoji())) { if (rethinkServer.getAccept_emote().equals(event.getReactionEmote().getEmoji())) {
addRole(e); addRole(event);
} else if (rethink.getRulesDEmote(e.getGuild().getId()).equals(e.getReactionEmote().getEmoji())) { } else if (rethinkServer.getDecline_emote().equals(event.getReactionEmote().getEmoji())) {
e.getReaction().removeReaction(e.getUser()).queue(); event.getReaction().removeReaction(event.getUser()).queue();
if (e.getGuild().getSelfMember().canInteract(e.getMember())) { if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
e.getMember().kick().reason("Declined the rules"); event.getMember().kick().reason("Declined the rules");
} }
} }
} }
} }
} }
private void addRole(MessageReactionAddEvent e) { private void addRole(MessageReactionAddEvent event) {
if (e.getMember().getRoles().contains(e.getGuild().getRoleById(rethink.getRulesRID(e.getGuild().getId())))) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethink.getRulesRID(e.getGuild().getId()))).reason("Accepted rules").queue(); if (event.getMember().getRoles().contains(event.getGuild().getRoleById(rethinkServer.getMessage_id()))) {
} else e.getGuild().addRoleToMember(e.getMember(), e.getGuild().getRoleById(rethink.getRulesRID(e.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 e) { public void onMessageReactionRemove(MessageReactionRemoveEvent event) {
if (e.getMessageId().equals(rethink.getRulesMID(e.getGuild().getId())) && !e.getMember().getUser().isBot()) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
e.getGuild().removeRoleFromMember(e.getMember(), e.getGuild().getRoleById(rethink.getRulesRID(e.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

@ -17,6 +17,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;
@ -45,12 +46,12 @@ public class StarboardListener extends ListenerAdapter {
update(e); update(e);
} }
public void update(GenericMessageReactionEvent e) { public void update(GenericMessageReactionEvent event) {
if (e.getReaction().getReactionEmote().getName().equals("")) { if (event.getReaction().getReactionEmote().getName().equals("")) {
if (!rethink.hasStarboardMessage(e.getMessageId())) { RethinkServer rethinkServer = new RethinkServer(rethink.getObjectByID("server", event.getGuild().getId()), rethink);
if (rethink.hasStarboardChannel(e.getGuild().getId())) { if (!rethink.hasStarboardMessage(event.getMessageId())) {
if (rethink.hasStarboardChannel(event.getGuild().getId())) {
e.getTextChannel().retrieveMessageById(e.getMessageId()).queue( event.getTextChannel().retrieveMessageById(event.getMessageId()).queue(
msg -> { msg -> {
Integer stars = 0; Integer stars = 0;
for (MessageReaction reaction : msg.getReactions()) { for (MessageReaction reaction : msg.getReactions()) {
@ -59,8 +60,8 @@ public class StarboardListener extends ListenerAdapter {
} }
} }
if (Integer.parseInt(rethink.getNeededStars(e.getGuild().getId())) <= stars) { if (Integer.parseInt(rethinkServer.getNeededstars()) <= stars) {
e.getGuild().getTextChannelById(rethink.getStarboardChannel(e.getGuild().getId())) event.getGuild().getTextChannelById(rethinkServer.getStarboard())
.sendMessage(new MessageBuilder() .sendMessage(new MessageBuilder()
.setContent("⭐ 1" + " " + e.getTextChannel().getAsMention()) .setContent("⭐ 1" + " " + e.getTextChannel().getAsMention())
.setEmbed( .setEmbed(
@ -89,11 +90,11 @@ public class StarboardListener extends ListenerAdapter {
} }
Integer finalStars = stars; Integer finalStars = stars;
e.getGuild().getTextChannelById(rethink.getStarboardChannel(e.getGuild().getId())) event.getGuild().getTextChannelById(rethinkServer.getStarboard())
.retrieveMessageById(rethink.getStarboardMessage(e.getMessageId())).queue( .retrieveMessageById(rethink.getStarboardMessage(event.getMessageId())).queue(
msg2 -> { msg2 -> {
if (Integer.parseInt(rethink.getNeededStars(e.getGuild().getId())) <= finalStars) { if (Integer.parseInt(rethinkServer.getNeededstars()) <= finalStars) {
msg2.editMessage(new MessageBuilder() msg2.editMessage(new MessageBuilder()
.setContent("" + finalStars + " " + e.getTextChannel().getAsMention()) .setContent("" + finalStars + " " + e.getTextChannel().getAsMention())
.setEmbed( .setEmbed(

View file

@ -17,6 +17,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;
@ -27,11 +28,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;
} }
@ -50,7 +51,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));
@ -121,11 +122,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) {