Merge pull request #131 from BigBotNetwork/greg-dev

Invite Detector and code improvements
This commit is contained in:
Skidder 2019-12-02 04:59:23 -08:00 committed by GitHub
commit a913353a19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 287 additions and 107 deletions

View file

@ -78,6 +78,7 @@ public class Hadder {
new LeaveCommand(), new LeaveCommand(),
new GuildLeaveCommand(), new GuildLeaveCommand(),
new MemeCommand(), new MemeCommand(),
new InviteDetectCommand(),
new LinkCommand()), config, helpCommand); new LinkCommand()), config, helpCommand);
builder.addEventListeners( builder.addEventListeners(
@ -87,6 +88,7 @@ public class Hadder {
new GuildListener(rethink, config), new GuildListener(rethink, config),
new ReadyListener(rethink, config), new ReadyListener(rethink, config),
new LinkListener(rethink), new LinkListener(rethink),
new InviteLinkListener(rethink),
new RulesListener(rethink)); new RulesListener(rethink));
try { try {

View file

@ -32,7 +32,7 @@ public class Rethink {
.connect(); .connect();
System.out.println("DB CONNECTED"); System.out.println("DB CONNECTED");
} catch (Exception e) { } catch (Exception e) {
System.out.println(e.toString()); e.printStackTrace();
System.out.println("DB CONNECTION FAILED"); System.out.println("DB CONNECTION FAILED");
} }
} }
@ -59,7 +59,7 @@ public class Rethink {
} }
private String update(String table, String wherevalue, String what, String whatvalue) { private String update(String table, String wherevalue, String what, String whatvalue) {
String out=""; String out = "";
try { try {
Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn); Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn);
out=cursor.toString(); out=cursor.toString();
@ -95,16 +95,16 @@ public class Rethink {
} }
public String setUserPrefix(String prefix, String userid) { public void setUserPrefix(String prefix, String userid) {
return this.update("user", userid, "prefix", prefix); this.update("user", userid, "prefix", prefix);
} }
public String getUserPrefix(String id) { public String getUserPrefix(String id) {
return (String) this.get("user", "id", id, "prefix"); return (String) this.get("user", "id", id, "prefix");
} }
public String setGuildPrefix(String prefix, String guildid) { public void setGuildPrefix(String prefix, String guildid) {
return this.update("server", guildid, "prefix", prefix); this.update("server", guildid, "prefix", prefix);
} }
public String getGuildPrefix(String id) { public String getGuildPrefix(String id) {
@ -115,12 +115,12 @@ public class Rethink {
return new JSONArray((String) this.get("server", "id", id, "links")); return new JSONArray((String) this.get("server", "id", id, "links"));
} }
public String addLinkedGuild(String guildid, String linkid) { public void addLinkedGuild(String guildid, String linkid) {
JSONArray links = getLinks(guildid); JSONArray links = getLinks(guildid);
for (int i = 0; links.length()>i; i++) { for (int i = 0; links.length()>i; i++) {
if (links.getString(i).equals(linkid)) return null; if (links.getString(i).equals(linkid)) return;
} }
return this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString()); this.update("server", guildid, "links", this.getLinks(guildid).put(linkid).toString());
} }
public String removeLinkedGuild(String guildid, String linkid) { public String removeLinkedGuild(String guildid, String linkid) {
@ -134,26 +134,25 @@ public class Rethink {
return this.update("server", guildid, "links", linkedguildslist.toString()); return this.update("server", guildid, "links", linkedguildslist.toString());
} }
public String setLinkChannel(String guildid, String channelid) { public void setLinkChannel(String guildid, String channelid) {
return this.update("server", guildid, "linkchannel", channelid); this.update("server", guildid, "linkchannel", channelid);
} }
public String getLinkChannel(String guildid) { public String getLinkChannel(String guildid) {
return (String) this.get("server", "id", guildid, "linkchannel"); return (String) this.get("server", "id", guildid, "linkchannel");
} }
public String insertGuild(String id) { public void insertGuild(String id) {
return this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "")); this.insert("server", r.hashMap("id", id).with("prefix", "h.").with("links", "[]").with("linkchannel", "").with("message_id", "").with("role_id", "").with("invite_detect", false));
} }
public String insertUser(String id) { public void insertUser(String id) {
return this.insert("user", r.hashMap("id", id).with("prefix", "h.")); this.insert("user", r.hashMap("id", id).with("prefix", "h."));
} }
public String updateRules(String guild_id, String message_id, String role_id) { public void updateRules(String guild_id, String message_id, String role_id) {
this.update("server", guild_id, "message_id", message_id); this.update("server", guild_id, "message_id", message_id);
this.update("server", guild_id, "role_id", role_id); this.update("server", guild_id, "role_id", role_id);
return null;
} }
public String getRulesMID(String guild_id) { public String getRulesMID(String guild_id) {
@ -164,4 +163,16 @@ public class Rethink {
return (String) this.get("server", "id", guild_id, "role_id"); return (String) this.get("server", "id", guild_id, "role_id");
} }
public void setInviteDetection(String guild_id, boolean b) {
try {
r.table("server").get(guild_id).update(r.hashMap("invite_detect", b)).run(conn);
} catch (ClassCastException e) {
e.printStackTrace();
}
}
public Boolean getInviteDetection(String guild_id) {
return (Boolean) this.get("server", "id", guild_id, "invite_detect");
}
} }

View file

@ -1,10 +1,14 @@
package com.bbn.hadder.commands.misc; package com.bbn.hadder.commands.general;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
/*
* @author Skidder / GregTCLTK
*/
public class EqualsCommand implements Command { public class EqualsCommand implements Command {
@Override @Override

View file

@ -47,7 +47,7 @@ public class HelpCommand implements Command {
} else { } else {
for (Command cmd : event.getCommandHandler().getCommandList()) { for (Command cmd : event.getCommandHandler().getCommandList()) {
for (String label : cmd.labels()) { for (String label : cmd.labels()) {
if (label.toLowerCase().equals(args[0])) { if (label.equalsIgnoreCase(args[0])) {
sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel()); sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel());
} }
} }

View file

@ -1,4 +1,4 @@
package com.bbn.hadder.commands.misc; package com.bbn.hadder.commands.general;
/* /*
* @author Skidder / GregTCLTK * @author Skidder / GregTCLTK
@ -9,6 +9,10 @@ import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
/*
* @author Skidder / GregTCLTK
*/
public class InviteCommand implements Command { public class InviteCommand implements Command {
@Override @Override

View file

@ -14,7 +14,7 @@ public class GuildPrefixCommand implements Command {
if (!args[0].contains("\"")) { if (!args[0].contains("\"")) {
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId()); event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for you to " + args[0]).build()).queue(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully set ✅").setDescription("I successfully set the new prefix for the guild to " + args[0]).build()).queue();
} else { } else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("The prefix must not contain **\"**").build()).queue(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("The prefix must not contain **\"**").build()).queue();
} }

View file

@ -0,0 +1,72 @@
package com.bbn.hadder.commands.moderation;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
public class InviteDetectCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
if (event.getMember().hasPermission(Permission.MANAGE_SERVER)) {
String opinion = args[0].toLowerCase();
switch (opinion) {
case "on":
if (!event.getRethink().getInviteDetection(event.getGuild().getId())) {
event.getRethink().setInviteDetection(event.getGuild().getId(), true);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully activated")
.setDescription("I successfully activated the invite link detection for this guild.")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already activated")
.setDescription("The invite link detection is already activated on this guild.")
.build()).queue();
}
break;
case "off":
if (event.getRethink().getInviteDetection(event.getGuild().getId())) {
event.getRethink().setInviteDetection(event.getGuild().getId(), false);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully deactivated")
.setDescription("I successfully deactivated the invite link detection for this guild.")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already deactivated")
.setDescription("The invite link detection is already deactivated on this guild.")
.build()).queue();
}
break;
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
}
}
@Override
public String[] labels() {
return new String[]{"invitedetect", "detectinvite"};
}
@Override
public String description() {
return "Activate or deactivate the Discord invite link detection.";
}
@Override
public String usage() {
return "<on/off>";
}
}

View file

@ -10,8 +10,7 @@ public class LinkCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel()); if (args.length == 0) event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
switch (args[0]) { switch (args[0].toLowerCase()) {
case "add": case "add":
if (args.length != 2) return; if (args.length != 2) return;
String linkid = args[1]; String linkid = args[1];

View file

@ -14,7 +14,8 @@ public class RoleCommand implements Command {
if (args.length > 0) { if (args.length > 0) {
if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) { if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) {
if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
switch (args[0].toLowerCase()) { String action = args[0].toLowerCase();
switch (action) {
case "add": case "add":
if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) { if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) {
for (Member member : event.getMessage().getMentionedMembers()) { for (Member member : event.getMessage().getMentionedMembers()) {

View file

@ -8,14 +8,12 @@ import com.bbn.hadder.Hadder;
import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import javax.script.ScriptEngine; import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager; import javax.script.ScriptEngineManager;
import javax.script.ScriptException; import javax.script.ScriptException;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class EvalCommand implements Command { public class EvalCommand implements Command {
@ -46,11 +44,10 @@ public class EvalCommand implements Command {
ScheduledExecutorService service = Executors.newScheduledThreadPool(1); ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
ScheduledFuture<?> future = service.schedule(() -> { service.schedule(() -> {
long startExec = System.currentTimeMillis(); long startExec = System.currentTimeMillis();
Object out = null; Object out;
EmbedBuilder builder = new EmbedBuilder();
try { try {
String script = ""; String script = "";
@ -58,17 +55,22 @@ public class EvalCommand implements Command {
args[i] = args[i].replace("```java", "").replace("```", ""); args[i] = args[i].replace("```java", "").replace("```", "");
script += i == args.length-1 ? args[i]:args[i]+" "; script += i == args.length-1 ? args[i]:args[i]+" ";
} }
builder.addField("Input", "```java\n\n" + script + "```", false);
out = engine.eval(script); out = engine.eval(script);
builder.addField("Output", "```java\n\n" + out.toString() + "```", false);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Eval Command")
.addField("Input", "```java\n\n" + script + "```", false)
.addField("Output", "```java\n\n" + out.toString() + "```", false)
.addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false)
.build()).queue();
} catch (Exception ex) { } catch (Exception ex) {
builder.addField("Error", "```java\n\n" + ex.getMessage() + "```", false); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
} .setTitle("Eval Command")
.addField("Error", "```java\n\n" + ex.getMessage() + "```", false)
.addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false)
.build()).queue();
builder.addField("Timing", System.currentTimeMillis()-startExec + " milliseconds", false); }
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Eval Command").build()).queue();
service.shutdownNow(); service.shutdownNow();
@ -89,7 +91,7 @@ public class EvalCommand implements Command {
@Override @Override
public String description() { public String description() {
return "You know what a eval command is ;)"; return "Execute the given code";
} }
@Override @Override

View file

@ -14,7 +14,7 @@ public class RebootCommand implements Command {
@Override @Override
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
System.exit(69); Runtime.getRuntime().exit(69);
} else { } else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
} }

View file

@ -16,7 +16,7 @@ public class ShutdownCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Shutdown").build()).queue();
event.getJDA().getShardManager().shutdown(); event.getJDA().getShardManager().shutdown();
System.out.println("Bot shut down via Command..."); System.out.println("Bot shut down via Command...");
System.exit(0); Runtime.getRuntime().exit(69);
} else { } else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue(); event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
} }

View file

@ -0,0 +1,100 @@
package com.bbn.hadder.listener;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.Rethink;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.events.message.MessageUpdateEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONObject;
import javax.annotation.Nonnull;
public class InviteLinkListener extends ListenerAdapter {
private Rethink rethink;
public InviteLinkListener(Rethink rethink) {
this.rethink = rethink;
}
@Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/")) {
if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) {
if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
@Override
public void onMessageUpdate(@Nonnull MessageUpdateEvent event) {
if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().contains("discord.gg/") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && event.getMember().hasPermission(Permission.MANAGE_SERVER) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1];
String invite = split.split(" ")[0];
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder().url("https://canary.discordapp.com/api/v6/invites/" + invite).build();
try {
Response response = client.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
if (!json.toString().contains("\"message\":")) {
event.getMessage().delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

View file

@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink;
import com.bbn.hadder.core.LinkUtils; import com.bbn.hadder.core.LinkUtils;
import com.bbn.hadder.utils.MessageEditor; import com.bbn.hadder.utils.MessageEditor;
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.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent; import net.dv8tion.jda.api.events.message.react.MessageReactionAddEvent;
@ -14,7 +15,7 @@ import java.util.ArrayList;
public class LinkListener extends ListenerAdapter { public class LinkListener extends ListenerAdapter {
Rethink rethink; private Rethink rethink;
public LinkListener(Rethink rethink) { public LinkListener(Rethink rethink) {
this.rethink = rethink; this.rethink = rethink;
@ -25,11 +26,7 @@ public class LinkListener extends ListenerAdapter {
event.getChannel().retrieveMessageById(event.getMessageId()).queue( event.getChannel().retrieveMessageById(event.getMessageId()).queue(
msg -> { msg -> {
if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) { if (event.getMember().hasPermission(Permission.MANAGE_CHANNEL)) {
if (!event.getMember().getUser().equals(event.getJDA().getSelfUser())) { if (!event.getMember().getUser().equals(event.getJDA().getSelfUser()) && msg.getAuthor().equals(event.getJDA().getSelfUser()) && msg.getEmbeds().size() == 1 && msg.getEmbeds().get(0).getFooter() == null && msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) {
if (msg.getAuthor().equals(event.getJDA().getSelfUser())) {
if (msg.getEmbeds().size() == 1) {
if (msg.getEmbeds().get(0).getFooter() == null) {
if (msg.getEmbeds().get(0).getTitle().endsWith(") wants to link guilds!")) {
String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", ""); String requestguild = msg.getEmbeds().get(0).getTitle().replaceAll("\\) wants to link guilds!", "");
String requestguildid = null; String requestguildid = null;
for (int i = requestguild.length() - 1; i >= 0; i--) { for (int i = requestguild.length() - 1; i >= 0; i--) {
@ -53,16 +50,14 @@ public class LinkListener extends ListenerAdapter {
msg.delete().queue(); msg.delete().queue();
MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) MessageEmbed msgembed = new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Guild linking denied.").setDescription("The Guild denied the link. :(").build(); .setTitle("Guild linking denied.").setDescription("The Guild denied the linking. :(").build();
event.getChannel().sendMessage(msgembed).queue(); event.getChannel().sendMessage(msgembed).queue();
event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue(); event.getJDA().getTextChannelById(rethink.getLinkChannel(requestguildid)).sendMessage(msgembed).queue();
} }
} }
} }
} } else {
} event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
}
} }
} }
); );
@ -70,11 +65,9 @@ public class LinkListener extends ListenerAdapter {
@Override @Override
public void onMessageReceived(@Nonnull MessageReceivedEvent event) { public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
if (!event.isWebhookMessage()) { if (!event.isWebhookMessage() && event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId())) && event.isFromType(ChannelType.TEXT)) {
if (event.getChannel().getId().equals(rethink.getLinkChannel(event.getGuild().getId()))) {
new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() { new LinkUtils().sendAll(rethink.getLinks(event.getGuild().getId()), event.getJDA(), event.getMessage(), event.getAuthor(), new ArrayList<>() {
}, rethink, false); }, rethink, false);
} }
} }
}
} }

View file

@ -15,9 +15,7 @@ import java.time.Instant;
public class PrivateMessageListener extends ListenerAdapter { public class PrivateMessageListener extends ListenerAdapter {
public void onMessageReceived(MessageReceivedEvent event) { public void onMessageReceived(MessageReceivedEvent event) {
if (event.isFromType(ChannelType.PRIVATE)) { if (event.isFromType(ChannelType.PRIVATE) && !event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
if (!event.getAuthor().getId().equals(event.getJDA().getSelfUser().getId())) {
PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete(); PrivateChannel Skidder = event.getJDA().getUserById("477141528981012511").openPrivateChannel().complete();
PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete(); PrivateChannel Hax = event.getJDA().getUserById("261083609148948488").openPrivateChannel().complete();
@ -35,5 +33,4 @@ public class PrivateMessageListener extends ListenerAdapter {
.build()).queue(); .build()).queue();
} }
} }
}
} }

View file

@ -19,8 +19,7 @@ public class RulesListener extends ListenerAdapter {
@Override @Override
public void onMessageReactionAdd(MessageReactionAddEvent event) { public void onMessageReactionAdd(MessageReactionAddEvent event) {
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot()) {
if (!event.getMember().getUser().isBot()) {
if (event.getReactionEmote().getEmoji().equals("")) { if (event.getReactionEmote().getEmoji().equals("")) {
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue(); event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue();
} else if (event.getReactionEmote().getEmoji().equals("") && event.getGuild().getSelfMember().canInteract(event.getMember())) { } else if (event.getReactionEmote().getEmoji().equals("") && event.getGuild().getSelfMember().canInteract(event.getMember())) {
@ -29,14 +28,11 @@ public class RulesListener extends ListenerAdapter {
} }
} }
} }
}
@Override @Override
public void onMessageReactionRemove(MessageReactionRemoveEvent event) { public void onMessageReactionRemove(MessageReactionRemoveEvent event) {
if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId()))) { if (event.getMessageId().equals(rethink.getRulesMID(event.getGuild().getId())) && !event.getMember().getUser().isBot() && event.getReactionEmote().getEmoji().equals("")) {
if (!event.getMember().getUser().isBot() && event.getReactionEmote().getEmoji().equals("")) {
event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue(); event.getGuild().removeRoleFromMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Withdrawal of the acceptance of the rules").queue();
} }
} }
}
} }

View file

@ -11,7 +11,7 @@ public class MessageEditor {
EmbedBuilder builder = new EmbedBuilder(); EmbedBuilder builder = new EmbedBuilder();
switch (type) { switch (type) {
case INFO: case INFO:
builder.setColor(new Color(47,94,105)).setTimestamp(Instant.now()); builder.setColor(new Color(47, 94, 105)).setTimestamp(Instant.now());
break; break;
case ERROR: case ERROR:
@ -40,5 +40,4 @@ public class MessageEditor {
NO_PERMISSION, NO_PERMISSION,
NO_SELF_PERMISSION NO_SELF_PERMISSION
} }
} }