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>
[![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)
[![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)
<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>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.0.0_70</version>
<version>4.0.0_73</version>
</dependency>
<dependency>
<groupId>org.json</groupId>

View file

@ -143,11 +143,11 @@ public class Rethink {
}
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) {
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) {

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())) {
switch (args[0].toLowerCase()) {
case "amsterdam":
event.getGuild().getManager().setRegion(Region.AMSTERDAM).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 Amsterdam.")
.build()).queue();
setRegion(Region.AMSTERDAM, "Amsterdam", event);
break;
case "frankfurt":
event.getGuild().getManager().setRegion(Region.FRANKFURT).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 Frankfurt.")
.build()).queue();
setRegion(Region.FRANKFURT, "Frankfurt", event);
break;
case "eu-west":
event.getGuild().getManager().setRegion(Region.EU_WEST).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 EU-West.")
.build()).queue();
setRegion(Region.EU_WEST, "EU West", event);
break;
case "eu-central":
event.getGuild().getManager().setRegion(Region.EU_CENTRAL).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 EU-Central.")
.build()).queue();
setRegion(Region.EU_CENTRAL, "EU Central", event);
break;
case "europe":
event.getGuild().getManager().setRegion(Region.EUROPE).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 Europe.")
.build()).queue();
setRegion(Region.EUROPE, "EUROPE", event);
break;
case "brazil":
event.getGuild().getManager().setRegion(Region.BRAZIL).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 Brazil.")
.build()).queue();
setRegion(Region.BRAZIL, "Brazil", event);
break;
case "hongkong":
event.getGuild().getManager().setRegion(Region.HONG_KONG).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 Hong Kong.")
.build()).queue();
setRegion(Region.HONG_KONG, "Hong Kong", event);
break;
case "india":
event.getGuild().getManager().setRegion(Region.INDIA).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 India.")
.build()).queue();
setRegion(Region.INDIA, "India", event);
break;
case "japan":
event.getGuild().getManager().setRegion(Region.JAPAN).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 Japan.")
.build()).queue();
setRegion(Region.JAPAN, "Japan", event);
break;
case "london":
event.getGuild().getManager().setRegion(Region.LONDON).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 London.")
.build()).queue();
setRegion(Region.LONDON, "London", event);
break;
case "russia":
event.getGuild().getManager().setRegion(Region.RUSSIA).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 Russia.")
.build()).queue();
setRegion(Region.RUSSIA, "Russia", event);
break;
case "singapore":
event.getGuild().getManager().setRegion(Region.SINGAPORE).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 Singapore.")
.build()).queue();
setRegion(Region.SINGAPORE, "Singapore", event);
break;
case "south-africa":
event.getGuild().getManager().setRegion(Region.SOUTH_AFRICA).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 South Africa.")
.build()).queue();
setRegion(Region.SOUTH_AFRICA, "South Africa", event);
break;
case "sydney":
event.getGuild().getManager().setRegion(Region.SYDNEY).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 Sydney.")
.build()).queue();
setRegion(Region.SYDNEY, "Sydney", event);
break;
case "us-central":
event.getGuild().getManager().setRegion(Region.US_CENTRAL).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 US Central.")
.build()).queue();
setRegion(Region.US_CENTRAL, "US Central", event);
break;
case "us-east":
event.getGuild().getManager().setRegion(Region.US_EAST).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 US East.")
.build()).queue();
setRegion(Region.US_EAST, "US East", event);
break;
case "us-west":
event.getGuild().getManager().setRegion(Region.US_WEST).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 US West.")
.build()).queue();
setRegion(Region.US_WEST, "US West", event);
break;
case "us-south":
event.getGuild().getManager().setRegion(Region.US_SOUTH).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 US South.")
.build()).queue();
setRegion(Region.US_SOUTH, "US South", event);
break;
case "list":
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
@ -159,6 +87,14 @@ public class RegionChangeCommand implements Command {
.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
public String[] labels() {
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.")
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event3 -> {
if (event.getMessage().getMentionedRoles().size() == 1) {
Role role = event.getMessage().getMentionedRoles().get(0);
if (event3.getMessage().getMentionedRoles().size() == 1) {
Role role = event3.getMessage().getMentionedRoles().get(0);
setRole(event, channel, message, event3, role);
} else {
if (event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).size() > 0) {
} else if (event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).size() > 0) {
Role role = event3.getGuild().getRolesByName(event3.getMessage().getContentStripped(), true).get(0);
setRole(event, channel, message, event3, role);
} else {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Role does not exist")
.setDescription("The specified role does not exist on this guild.")
.build()).queue();
}
} else {
event3.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING)
.setTitle("Role does not exist")
.setDescription("The specified role does not exist on this guild.")
.build()).queue();
}
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());

View file

@ -19,17 +19,25 @@ public class JoinCommand implements Command {
AudioManager audioManager = event.getGuild().getAudioManager();
if(!audioManager.isAttemptingToConnect()) {
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.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.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) {
if (args.length == 1) {
switch (args[0].toLowerCase()) {
case "DE":
event.getRethink().setLanguage(event.getAuthor().getId(), "DE");
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Language set")
.setDescription("German is your new language now.")
.build()).queue();
case "de":
setLanguage("de", "German", event);
break;
case "en":
setLanguage("en", "English", event);
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;
}
} 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
public String[] labels() {
return new String[]{"language"};

View file

@ -7,6 +7,7 @@ package com.bbn.hadder.listener;
import com.bbn.hadder.Rethink;
import net.dv8tion.jda.api.Permission;
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.MessageUpdateEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
@ -30,67 +31,43 @@ public class InviteLinkListener extends ListenerAdapter {
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();
}
checkInvite(event.getMessage(), "discord.gg/");
}
} 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();
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) {
if ( !event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
checkInvite(event.getMessage(), "discordapp.com/invite/");
}
}
}
}
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
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())) {
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();
if (event.isFromType(ChannelType.TEXT)) {
if (event.getMessage().getContentRaw().contains("discord.gg/")) {
if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
checkInvite(event.getMessage(), "discord.gg/");
}
} catch (Exception e) {
e.printStackTrace();
}
} 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();
} else if (event.getMessage().getContentRaw().contains("discordapp.com/invite")) {
if (!event.getMember().hasPermission(Permission.ADMINISTRATOR) && rethink.getInviteDetection(event.getGuild().getId())) {
checkInvite(event.getMessage(), "discordapp.com/invite/");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}