Merge pull request #187 from BigBotNetwork/greg-dev

Greg dev
This commit is contained in:
Skidder 2019-12-10 17:21:55 +01:00 committed by GitHub
commit 110346be6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 108 additions and 166 deletions

View file

@ -5,6 +5,7 @@ Hadder Discord is a multi-purpose Discord bot with 100% uptime.
<a href="https://discord.gg/58My2dM"><img src="https://discordapp.com/api/guilds/448554629282922527/embed.png"/></a> <a href="https://discord.gg/58My2dM"><img src="https://discordapp.com/api/guilds/448554629282922527/embed.png"/></a>
[![Build Status](https://github.com/BigBotNetwork/Hadder/workflows/Hadder/badge.svg)](https://github.com/BigBotNetwork/Hadder) [![Build Status](https://github.com/BigBotNetwork/Hadder/workflows/Hadder/badge.svg)](https://github.com/BigBotNetwork/Hadder)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=BigBotNetwork/Hadder&amp;utm_campaign=Badge_Grade) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/ddb8cb7ec85f467caa691c175e1f01b5)](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=BigBotNetwork/Hadder&amp;utm_campaign=Badge_Grade)
[![CodeFactor](https://www.codefactor.io/repository/github/bigbotnetwork/hadder/badge)](https://www.codefactor.io/repository/github/bigbotnetwork/hadder)
[![Crowdin](https://badges.crowdin.net/e/bc0babde730eb3eada34778502a31b03/localized.svg)](https://bbn.crowdin.com/hadder) [![Crowdin](https://badges.crowdin.net/e/bc0babde730eb3eada34778502a31b03/localized.svg)](https://bbn.crowdin.com/hadder)
<a href="https://discordextremelist.xyz/bots/Hadder"><img src="https://discordextremelist.xyz/api/bot/637002314162372639/widget"/></a> <a href="https://discordextremelist.xyz/bots/Hadder"><img src="https://discordextremelist.xyz/api/bot/637002314162372639/widget"/></a>

View file

View file

@ -25,7 +25,7 @@
<dependency> <dependency>
<groupId>net.dv8tion</groupId> <groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId> <artifactId>JDA</artifactId>
<version>4.0.0_70</version> <version>4.0.0_73</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.json</groupId> <groupId>org.json</groupId>

View file

@ -143,11 +143,11 @@ public class Rethink {
} }
public void insertGuild(String id) { public void insertGuild(String 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).with("language", "EN")); 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 void insertUser(String id) { public void insertUser(String id) {
this.insert("user", r.hashMap("id", id).with("prefix", "h.")); this.insert("user", r.hashMap("id", id).with("prefix", "h.").with("language", "en"));
} }
public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) {

View file

@ -19,130 +19,58 @@ public class RegionChangeCommand implements Command {
if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) { if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "amsterdam": case "amsterdam":
event.getGuild().getManager().setRegion(Region.AMSTERDAM).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.AMSTERDAM, "Amsterdam", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Amsterdam.")
.build()).queue();
break; break;
case "frankfurt": case "frankfurt":
event.getGuild().getManager().setRegion(Region.FRANKFURT).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.FRANKFURT, "Frankfurt", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Frankfurt.")
.build()).queue();
break; break;
case "eu-west": case "eu-west":
event.getGuild().getManager().setRegion(Region.EU_WEST).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.EU_WEST, "EU West", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to EU-West.")
.build()).queue();
break; break;
case "eu-central": case "eu-central":
event.getGuild().getManager().setRegion(Region.EU_CENTRAL).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.EU_CENTRAL, "EU Central", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to EU-Central.")
.build()).queue();
break; break;
case "europe": case "europe":
event.getGuild().getManager().setRegion(Region.EUROPE).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.EUROPE, "EUROPE", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Europe.")
.build()).queue();
break; break;
case "brazil": case "brazil":
event.getGuild().getManager().setRegion(Region.BRAZIL).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.BRAZIL, "Brazil", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Brazil.")
.build()).queue();
break; break;
case "hongkong": case "hongkong":
event.getGuild().getManager().setRegion(Region.HONG_KONG).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.HONG_KONG, "Hong Kong", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Hong Kong.")
.build()).queue();
break; break;
case "india": case "india":
event.getGuild().getManager().setRegion(Region.INDIA).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.INDIA, "India", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to India.")
.build()).queue();
break; break;
case "japan": case "japan":
event.getGuild().getManager().setRegion(Region.JAPAN).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.JAPAN, "Japan", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Japan.")
.build()).queue();
break; break;
case "london": case "london":
event.getGuild().getManager().setRegion(Region.LONDON).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.LONDON, "London", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to London.")
.build()).queue();
break; break;
case "russia": case "russia":
event.getGuild().getManager().setRegion(Region.RUSSIA).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.RUSSIA, "Russia", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Russia.")
.build()).queue();
break; break;
case "singapore": case "singapore":
event.getGuild().getManager().setRegion(Region.SINGAPORE).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.SINGAPORE, "Singapore", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Singapore.")
.build()).queue();
break; break;
case "south-africa": case "south-africa":
event.getGuild().getManager().setRegion(Region.SOUTH_AFRICA).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.SOUTH_AFRICA, "South Africa", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to South Africa.")
.build()).queue();
break; break;
case "sydney": case "sydney":
event.getGuild().getManager().setRegion(Region.SYDNEY).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.SYDNEY, "Sydney", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to Sydney.")
.build()).queue();
break; break;
case "us-central": case "us-central":
event.getGuild().getManager().setRegion(Region.US_CENTRAL).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.US_CENTRAL, "US Central", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to US Central.")
.build()).queue();
break; break;
case "us-east": case "us-east":
event.getGuild().getManager().setRegion(Region.US_EAST).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.US_EAST, "US East", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to US East.")
.build()).queue();
break; break;
case "us-west": case "us-west":
event.getGuild().getManager().setRegion(Region.US_WEST).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.US_WEST, "US West", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to US West.")
.build()).queue();
break; break;
case "us-south": case "us-south":
event.getGuild().getManager().setRegion(Region.US_SOUTH).reason("Region changed by " + event.getAuthor().getAsTag()).queue(); setRegion(Region.US_SOUTH, "US South", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to US South.")
.build()).queue();
break; break;
case "list": case "list":
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
@ -159,6 +87,14 @@ public class RegionChangeCommand implements Command {
.build()).queue(); .build()).queue();
} }
public void setRegion (Region region, String region_name, CommandEvent event) {
event.getGuild().getManager().setRegion(region).reason("Region changed by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully set region")
.setDescription("I successfully set the new server region to " + region_name + ".")
.build()).queue();
}
@Override @Override
public String[] labels() { public String[] labels() {
return new String[]{"changeregion", "cr", "change-region"}; return new String[]{"changeregion", "cr", "change-region"};

View file

@ -70,19 +70,17 @@ public class RulesCommand implements Command {
.setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.") .setDescription("The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules.")
.build()).queue(); .build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> { new EventWaiter().newOnMessageEventWaiter(event3 -> {
if (event.getMessage().getMentionedRoles().size() == 1) { if (event3.getMessage().getMentionedRoles().size() == 1) {
Role role = event.getMessage().getMentionedRoles().get(0); Role role = event3.getMessage().getMentionedRoles().get(0);
setRole(event, channel, message, event3, role); setRole(event, channel, message, event3, role);
} else { } else if (event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).size() > 0) {
if (event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).size() > 0) {
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0); Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0);
setRole(event, channel, message, event3, role); setRole(event, channel, message, event3, role);
} else { } else {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Role does not exist") .setTitle("Role does not exist")
.setDescription("The specified role does not exist on this guild.") .setDescription("The specified role does not exist on this guild.")
.build()).queue(); .build()).queue();
}
} }
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor());

View file

@ -19,17 +19,25 @@ public class JoinCommand implements Command {
AudioManager audioManager = event.getGuild().getAudioManager(); AudioManager audioManager = event.getGuild().getAudioManager();
if(!audioManager.isAttemptingToConnect()) { if(!audioManager.isAttemptingToConnect()) {
VoiceChannel vc = event.getMember().getVoiceState().getChannel(); VoiceChannel vc = event.getMember().getVoiceState().getChannel();
if (!event.getGuild().getSelfMember().getVoiceState().getChannel().getId().equals(vc.getId())) { if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) {
if (!event.getGuild().getSelfMember().getVoiceState().getChannel().getId().equals(vc.getId())) {
event.getGuild().getAudioManager().openAudioConnection(vc);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully connected")
.setDescription("I successfully connected to " + vc.getName() + ".")
.build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already connected")
.setDescription("I am already connected to your voice channel.")
.build()).queue();
}
} else {
event.getGuild().getAudioManager().openAudioConnection(vc); event.getGuild().getAudioManager().openAudioConnection(vc);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Successfully connected") .setTitle("Successfully connected")
.setDescription("I successfully connected to " + vc.getName() + ".") .setDescription("I successfully connected to " + vc.getName() + ".")
.build()).queue(); .build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Already connected")
.setDescription("I am already connected to your voice channel.")
.build()).queue();
} }
} else { } else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING) event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)

View file

@ -14,12 +14,26 @@ public class LanguageCommand implements Command {
public void executed(String[] args, CommandEvent event) { public void executed(String[] args, CommandEvent event) {
if (args.length == 1) { if (args.length == 1) {
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "DE": case "de":
event.getRethink().setLanguage(event.getAuthor().getId(), "DE"); setLanguage("de", "German", event);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO) break;
.setTitle("Language set") case "en":
.setDescription("German is your new language now.") setLanguage("en", "English", event);
.build()).queue(); break;
case "es":
setLanguage("es", "Spanish", event);
break;
case "fr":
setLanguage("fr", "French", event);
break;
case "ru":
setLanguage("ru", "Russian", event);
break;
case "tr":
setLanguage("tr", "Turkish", event);
break;
case "zh":
setLanguage("zh", "Chinese", event);
break; break;
} }
} else { } else {
@ -27,6 +41,14 @@ public class LanguageCommand implements Command {
} }
} }
public void setLanguage(String language_code, String language , CommandEvent event) {
event.getRethink().setLanguage(event.getAuthor().getId(), language_code);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Language set")
.setDescription(language + " is your new language now.")
.build()).queue();
}
@Override @Override
public String[] labels() { public String[] labels() {
return new String[]{"language"}; return new String[]{"language"};

View file

@ -7,6 +7,7 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink; import com.bbn.hadder.Rethink;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.events.message.MessageUpdateEvent; import net.dv8tion.jda.api.events.message.MessageUpdateEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
@ -30,67 +31,43 @@ public class InviteLinkListener extends ListenerAdapter {
if (event.isFromType(ChannelType.TEXT)) { if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/")) { if (event.getMessage().getContentRaw().contains("discord.gg/")) {
if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; checkInvite(event.getMessage(), "discord.gg/");
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.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) {
String split = event.getMessage().getContentRaw().split("discordapp.com/invite/", 10)[1]; if ( !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
String invite = split.split(" ")[0]; checkInvite(event.getMessage(), "discordapp.com/invite/");
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();
} }
} }
} }
} }
public void checkInvite(Message message, String regex) {
String split = message.getContentRaw().split(regex, 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\":")) {
message.delete().reason("Invite Link detected").queue();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override @Override
public void onMessageUpdate(@Nonnull MessageUpdateEvent event) { public void onMessageUpdate(@Nonnull MessageUpdateEvent event) {
if (event.isFromType(ChannelType.TEXT) && event.getMessage().getContentRaw().contains("discord.gg/") && !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) { if (event.isFromType(ChannelType.TEXT)) {
String split = event.getMessage().getContentRaw().split("discord.gg/", 10)[1]; if (event.getMessage().getContentRaw().contains("discord.gg/")) {
String invite = split.split(" ")[0]; if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
OkHttpClient client = new OkHttpClient(); checkInvite(event.getMessage(), "discord.gg/");
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) { } else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) {
e.printStackTrace(); if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
} checkInvite(event.getMessage(), "discordapp.com/invite/");
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite") && !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();
} }
} }
} }