Release v1.0.0 #345

Merged
greg6775 merged 68 commits from greg-dev into master 2020-01-24 17:49:10 +01:00
26 changed files with 537 additions and 274 deletions
Showing only changes of commit e80909c2b1 - Show all commits

View file

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

View file

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

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;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.general.HelpCommand;
import com.bbn.hadder.core.CommandHandler;
@ -26,6 +28,7 @@ import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import org.json.JSONObject;
import javax.annotation.Nonnull;
@ -38,8 +41,13 @@ public class CommandEvent extends MessageReceivedEvent {
private MessageEditor messageEditor;
private EventWaiter eventWaiter;
private AudioManager audioManager;
private RethinkUser rethinkUser;
private RethinkServer rethinkServer;
public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter, AudioManager audioManager) {
public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config,
CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor,
EventWaiter eventWaiter, AudioManager audioManager, RethinkUser rethinkUser,
RethinkServer rethinkServer) {
super(api, responseNumber, message);
this.rethink = rethink;
this.config = config;
@ -48,17 +56,8 @@ public class CommandEvent extends MessageReceivedEvent {
this.messageEditor = messageEditor;
this.eventWaiter = eventWaiter;
this.audioManager = audioManager;
}
public CommandEvent(MessageReceivedEvent event, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter, AudioManager audioManager) {
super(event.getJDA(), event.getResponseNumber(), event.getMessage());
this.rethink = rethink;
this.config = config;
this.commandHandler = commandHandler;
this.helpCommand = helpCommand;
this.messageEditor = messageEditor;
this.eventWaiter = eventWaiter;
this.audioManager = audioManager;
this.rethinkUser = rethinkUser;
this.rethinkServer = rethinkServer;
}
public Rethink getRethink() {
@ -88,4 +87,12 @@ public class CommandEvent extends MessageReceivedEvent {
public AudioManager getAudioManager() {
return audioManager;
}
public RethinkServer getRethinkServer() {
return rethinkServer;
}
public RethinkUser getRethinkUser() {
return rethinkUser;
}
}

View file

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

View file

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

View file

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

View file

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

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) {
e.getRethink().setLanguage(e.getAuthor().getId(), language_code);
e.getTextChannel()
public void setLanguage(String language_code, String language, CommandEvent event) {
event.getRethinkUser().setLanguage(language_code);
event.getTextChannel()
.sendMessage(
e.getMessageEditor()
.getMessage(MessageEditor.MessageType.INFO, "commands.settings.language.success.title",
"", "commands.settings.language.success.description", language)
.build())
.queue();
event.getRethinkUser().push();
}
@Override

View file

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

View file

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

View file

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

View file

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

View file

@ -17,6 +17,8 @@
package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkServer;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
@ -34,21 +36,25 @@ public class MentionListener extends ListenerAdapter {
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent e) {
if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention())||
e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
e.getChannel().sendMessage(new MessageEditor(rethink, e.getAuthor()).getMessage(MessageEditor.MessageType.INFO)
.setTitle("Hello I'm Hadder.")
.setAuthor(e.getJDA().getSelfUser().getName(), e.getJDA().getSelfUser().getAvatarUrl(), e.getJDA().getSelfUser().getAvatarUrl())
.addField("Users", String.valueOf(e.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(e.getJDA().getGuilds().size()), false)
.addField("Prefix (User)", rethink.getUserPrefix(e.getAuthor().getId()), false)
.addField("Prefix (Guild)", rethink.getGuildPrefix(e.getGuild().getId()), false)
.build()).queue();
} else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(e.getGuild().getMembers().size()-1);
if (member>0&&member<e.getGuild().getMembers().size()) {
e.getChannel().sendMessage(e.getGuild().getMembers().get(member).getAsMention()+ " (Executed by: "+e.getAuthor().getAsTag()+")").queue();
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()) ||
event.getMessage().getContentRaw().equals(event.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
event.getChannel().sendMessage(new MessageEditor(rethinkUser, event.getAuthor()).getMessage(MessageEditor.MessageType.INFO)
.setTitle("Hello I'm Hadder.")
.setAuthor(event.getJDA().getSelfUser().getName(), event.getJDA().getSelfUser().getAvatarUrl(), event.getJDA().getSelfUser().getAvatarUrl())
.addField("Users", String.valueOf(event.getJDA().getUsers().size()), false)
.addField("Guilds", String.valueOf(event.getJDA().getGuilds().size()), false)
.addField("Prefix (User)", rethinkUser.getPrefix(), false)
.addField("Prefix (Guild)", rethinkServer.getPrefix(), false)
.build()).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;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.RethinkUser;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.PrivateChannel;
@ -33,21 +34,22 @@ public class PrivateMessageListener extends ListenerAdapter {
this.rethink = rethink;
}
public void onMessageReceived(MessageReceivedEvent e) {
if (e.isFromType(ChannelType.PRIVATE) && !e.getAuthor().getId().equals(e.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = e.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = e.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
RethinkUser rethinkUser = new RethinkUser(rethink.getObjectByID("user", "261083609148948488"), rethink);
Skidder.sendMessage(new MessageEditor(rethink, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + e.getAuthor().getAsTag())
.setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl())
.setDescription(e.getMessage().getContentRaw())
Skidder.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now())
.build()).queue();
Hax.sendMessage(new MessageEditor(rethink, e.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + e.getAuthor().getAsTag())
.setAuthor(e.getAuthor().getName(), e.getAuthor().getAvatarUrl(), e.getAuthor().getAvatarUrl())
.setDescription(e.getMessage().getContentRaw())
Hax.sendMessage(new MessageEditor(rethinkUser, event.getJDA().getUserById("261083609148948488")).getMessage(MessageEditor.MessageType.INFO)
.setTitle("New DM by " + event.getAuthor().getAsTag())
.setAuthor(event.getAuthor().getName(), event.getAuthor().getAvatarUrl(), event.getAuthor().getAvatarUrl())
.setDescription(event.getMessage().getContentRaw())
.setTimestamp(Instant.now())
.build()).queue();
}

View file

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

View file

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

View file

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