Merge pull request #131 from BigBotNetwork/greg-dev
Invite Detector and code improvements
This commit is contained in:
commit
a913353a19
17 changed files with 287 additions and 107 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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];
|
||||||
|
|
|
||||||
|
|
@ -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()) {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
100
src/main/java/com/bbn/hadder/listener/InviteLinkListener.java
Normal file
100
src/main/java/com/bbn/hadder/listener/InviteLinkListener.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
||||||
|
|
@ -36,4 +34,3 @@ public class PrivateMessageListener extends ListenerAdapter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -40,5 +40,4 @@ public class MessageEditor {
|
||||||
NO_PERMISSION,
|
NO_PERMISSION,
|
||||||
NO_SELF_PERMISSION
|
NO_SELF_PERMISSION
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue