. #196

Merged
greg6775 merged 6 commits from master into greg-dev 2019-12-12 18:52:50 +01:00
45 changed files with 425 additions and 536 deletions
Showing only changes of commit 4f4d549bef - Show all commits

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

@ -1,5 +1,5 @@
base_url: 'https://bigbotnetwork.com'
commit_message: '[ci skip] New %language% translation'
files:
- source: /src/main/Translations/en_us.properties
translation: /src/main/Translations/%two_letters_code%/%two_letters_code%.properties
- source: /src/main/resources/Translations/Translations_en.properties
translation: /src/main/resources/Translations/Translations_%two_letters_code%.properties

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

@ -1,119 +0,0 @@
#
# @author Skidder / GregTCLTK
#
Hadder=Hadderino
user/id= <@User>/<ID>
searchterm=<SearchTerm>
username=<Username>
number=<Nummer>
guildprefix=<New Guild-Prefix>
<@User>=<@User>
on/off=<on/off>
vc-name/id=<VoiceChannelID|VoiceChannelName>
user+nickname=<@user> <New Nickname>
error=Error
none=None
success\!=Success\!
commands.fun.avatar.success.title=Avatar of
commands.fun.avatar.help.description=Sends the avatar of the specified member.
commands.fun.gif.error.description=Please try again with another term.
commands.fun.gif.help.description=Look for a GIF on Giphy
commands.fun.meme.success.title=Your random meme
commands.fun.meme.api.error=The request to the meme API could not be processed. Please try it again later.
commands.fun.meme.help.description=Sends you a random meme.
commands.general.about.success.title=Hadder - About
commands.general.about.success.description=Hadder is an open source Discord bot.
commands.general.about.success.field.one.title=Support the Developers
commands.general.about.success.field.one.description=Hadder is completely free for everyone. We would appreciate it you donate some money [here]
commands.general.about.help.description=Shows infos about Hadder
commands.general.equals.string.first.request=Please send me the first String
commands.general.equals.string.second.request=Please send me the second String
commands.general.equals.string.equals.true=Yes\! The first string equals the second string\!
commands.general.equals.string.equals.false=Well yes but actually No. This isn't the same.
commands.general.equals.string.first=First String
commands.general.equals.string.second=Second String
commands.general.equals.string.result=Result
commands.general.equals.help.description=Check if two strings are the same
commands.general.help.error.description=I need the Embed Links Permission to send the Help Menu\!
commands.general.help.help.description=Shows each command or explains its usage
commands.general.help.help.label=[CommandName]
commands.general.invite.success.title=Invite me\!
commands.general.invite.success.description=[Invite me here\!]
commands.general.invite.help.description=Shows the invitation to invite Hadder to your server
commands.general.ping.help.description=Shows the ping to the Discord API
commands.misc.feedback.title.request.title=Feedback Topic
commands.misc.feedback.title.request.description=Please send me the feedback topic.
commands.misc.feedback.description.request.title=Feedback Description
commands.misc.feedback.description.request.description=Please send me the feedback description now.
commands.misc.feedback.help.description=Sends feedback directly to the developers.
commands.misc.github.link.title=Link your GitHub Account
commands.misc.github.success.title=Information about
commands.misc.github.success.bio=User bio
commands.misc.github.success.location=Location
commands.misc.github.success.website=Website
commands.misc.github.success.repositories=Public repositories
commands.misc.github.success.gists=Public gists
commands.misc.github.success.followers=Followers
commands.misc.github.success.following=Following
commands.misc.github.api.error.description=The GitHub API might be down at the moment\!
commands.misc.github.user.error.description=This user does not exist\!
commands.misc.github.connect.title=Connect you GH account
commands.misc.github.connect.description=Please connect your GitHub account here
commands.misc.github.help.description=Displays information about a GitHub user profile.
commands.misc.screenshare.success.title=Here's your Url to share your Screen
commands.misc.screenshare.id.error.title=Wait that's illegal
commands.misc.screenshare.id.error.description=This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild.
commands.misc.screenshare.channel.error.title=Please Choose a Voice Channel
commands.misc.screenshare.channel.error.description=There is more than one channel with this name
commands.misc.screenshare.number.error.title=You specified a wrong number\!
commands.misc.screenshare.number.error.description=This isn't a Number.
commands.misc.screenshare.channel.existing.error=Hol' up
commands.misc.screenshare.channel.existing.description=There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild.
commands.misc.screenshare.help.description=Shows you the link to share your screen.
commands.moderation.ban.success.title=Successfully banned
commands.moderation.ban.success.description=I successfully baned
commands.moderation.ban.error.title=Not possible
commands.moderation.ban.myself.error.description=I can not ban myself\!
commands.moderation.ban.yourself.error.description=You can't ban yourself\!
commands.moderation.ban.help.description=Bans one ore more user from the server
commands.moderation.clear.number.error.description=You have to choose a number between 1 and 200\!
commands.moderation.clear.success.description=Successfully deleted 69 messages.
commands.moderation.clear.help.description=Deletes the specified number of messages.
commands.moderation.prefix.success.title=Successfully set
commands.moderation.prefix.success.description=I successfully set the new prefix for the guild to
commands.moderation.prefix.error.description=The prefix must not contain ****
commands.moderation.prefix.help.description=Sets the Guild-Prefix.
commands.moderation.invitedetect.activate.success.title=Successfully activated
commands.moderation.invitedetect.activate.success.description=I successfully activated the invite link detection for this guild.
commands.moderation.invitedetect.activate.error.title=Already activated
commands.moderation.invitedetect.activate.error.description=The invite link detection is already activated on this guild.
commands.moderation.invitedetect.deactivate.success.title=Successfully deactivated
commands.moderation.invitedetect.deactivate.success.description=I successfully deactivated the invite link detection for this guild.
commands.moderation.invitedetect.deactivate.error.title=Already deactivated
commands.moderation.invitedetect.deactivate.error.description=The invite link detection is already deactivated on this guild.
commands.moderation.invitedetect.help.description=Activate or deactivate the Discord invite link detection.
commands.moderation.kick.success.title=Successfully kicked
commands.moderation.kick.success.description=I successfully kicked
commands.moderation.kick.myself.error.description=I can not kick myself\!
commands.moderation.kick.yourself.error.description=You can't kick yourself.
commands.moderation.kick.mass.success.description=I successfully kicked 69 Members\!
commands.moderation.kick.help.description=Kicks one or more user from the server.
commands.moderation.link.request.success.description=If i'm on this guild i sent a message to accept the link.
commands.moderation.link.error.title=Wait that's illegal.
commands.moderation.link.request.error.description=You specified the same guild as the guild on which you're reading this
commands.moderation.link.request.accept.title=Skidder wants to link guilds\!
commands.moderation.link.request.accept.description=React with the reactions to accept or decline it
commands.moderation.link.set.title=Set the thing boi
commands.moderation.link.help.description=Links two or more servers.
commands.moderation.nick.success.title=Successfully nicked
commands.moderation.nick.success.description=I successfully nicked
commands.moderation.nick.myself.success.description=I successfully changed my nickname.
commands.moderation.nick.mass.success.description=I successfully nicked 69 Members\!
commands.moderation.nick.help.description=Rename a one or more user.

View file

@ -1,119 +0,0 @@
#
# @author Skidder / GregTCLTK
#
Hadder=Hadder
user/id= <@User>/<ID>
searchterm=<SearchTerm>
username=<Username>
number=<Number>
guildprefix=<New Guild-Prefix>
<@User>=<@User>
on/off=<on/off>
vc-name/id=<VoiceChannelID|VoiceChannelName>
user+nickname=<@user> <New Nickname>
error=Error
none=None
success!=Success!
commands.fun.avatar.success.title=Avatar of
commands.fun.avatar.help.description=Sends the avatar of the specified member.
commands.fun.gif.error.description=Please try again with another term.
commands.fun.gif.help.description=Look for a GIF on Giphy
commands.fun.meme.success.title=Your random meme
commands.fun.meme.api.error=The request to the meme API could not be processed. Please try it again later.
commands.fun.meme.help.description=Sends you a random meme.
commands.general.about.success.title=Hadder - About
commands.general.about.success.description=Hadder is an open source Discord bot.
commands.general.about.success.field.one.title=Support the Developers
commands.general.about.success.field.one.description=Hadder is completely free for everyone. We would appreciate it you donate some money [here]
commands.general.about.help.description=Shows infos about Hadder
commands.general.equals.string.first.request=Please send me the first String
commands.general.equals.string.second.request=Please send me the second String
commands.general.equals.string.equals.true=Yes! The first string equals the second string!
commands.general.equals.string.equals.false=Well yes but actually No. This isn't the same.
commands.general.equals.string.first=First String
commands.general.equals.string.second=Second String
commands.general.equals.string.result=Result
commands.general.equals.help.description=Check if two strings are the same
commands.general.help.error.description=I need the Embed Links Permission to send the Help Menu!
commands.general.help.help.description=Shows each command or explains its usage
commands.general.help.help.label=[CommandName]
commands.general.invite.success.title=Invite me!
commands.general.invite.success.description=[Invite me here!]
commands.general.invite.help.description=Shows the invitation to invite Hadder to your server
commands.general.ping.help.description=Shows the ping to the Discord API
commands.misc.feedback.title.request.title=Feedback Topic
commands.misc.feedback.title.request.description=Please send me the feedback topic.
commands.misc.feedback.description.request.title=Feedback Description
commands.misc.feedback.description.request.description=Please send me the feedback description now.
commands.misc.feedback.help.description=Sends feedback directly to the developers.
commands.misc.github.link.title=Link your GitHub Account
commands.misc.github.success.title=Information about
commands.misc.github.success.bio=User bio
commands.misc.github.success.location=Location
commands.misc.github.success.website=Website
commands.misc.github.success.repositories=Public repositories
commands.misc.github.success.gists=Public gists
commands.misc.github.success.followers=Followers
commands.misc.github.success.following=Following
commands.misc.github.api.error.description=The GitHub API might be down at the moment!
commands.misc.github.user.error.description=This user does not exist!
commands.misc.github.connect.title=Connect you GH account
commands.misc.github.connect.description=Please connect your GitHub account here
commands.misc.github.help.description=Displays information about a GitHub user profile.
commands.misc.screenshare.success.title=Here's your Url to share your Screen
commands.misc.screenshare.id.error.title=Wait that's illegal
commands.misc.screenshare.id.error.description=This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.
commands.misc.screenshare.channel.error.title=Please Choose a Voice Channel
commands.misc.screenshare.channel.error.description=There is more than one channel with this name
commands.misc.screenshare.number.error.title=You specified a wrong number!
commands.misc.screenshare.number.error.description=This isn't a Number.
commands.misc.screenshare.channel.existing.error=Hol' up
commands.misc.screenshare.channel.existing.description=There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.
commands.misc.screenshare.help.description=Shows you the link to share your screen.
commands.moderation.ban.success.title=Successfully banned
commands.moderation.ban.success.description=I successfully baned
commands.moderation.ban.error.title=Not possible
commands.moderation.ban.myself.error.description=I can not ban myself!
commands.moderation.ban.yourself.error.description=You can't ban yourself!
commands.moderation.ban.help.description=Bans one ore more user from the server
commands.moderation.clear.number.error.description=You have to choose a number between 1 and 200!
commands.moderation.clear.success.description=Successfully deleted 69 messages.
commands.moderation.clear.help.description=Deletes the specified number of messages.
commands.moderation.prefix.success.title=Successfully set
commands.moderation.prefix.success.description=I successfully set the new prefix for the guild to
commands.moderation.prefix.error.description=The prefix must not contain **\**
commands.moderation.prefix.help.description=Sets the Guild-Prefix.
commands.moderation.invitedetect.activate.success.title=Successfully activated
commands.moderation.invitedetect.activate.success.description=I successfully activated the invite link detection for this guild.
commands.moderation.invitedetect.activate.error.title=Already activated
commands.moderation.invitedetect.activate.error.description=The invite link detection is already activated on this guild.
commands.moderation.invitedetect.deactivate.success.title=Successfully deactivated
commands.moderation.invitedetect.deactivate.success.description=I successfully deactivated the invite link detection for this guild.
commands.moderation.invitedetect.deactivate.error.title=Already deactivated
commands.moderation.invitedetect.deactivate.error.description=The invite link detection is already deactivated on this guild.
commands.moderation.invitedetect.help.description=Activate or deactivate the Discord invite link detection.
commands.moderation.kick.success.title=Successfully kicked
commands.moderation.kick.success.description=I successfully kicked
commands.moderation.kick.myself.error.description=I can not kick myself!
commands.moderation.kick.yourself.error.description=You can't kick yourself.
commands.moderation.kick.mass.success.description=I successfully kicked 69 Members!
commands.moderation.kick.help.description=Kicks one or more user from the server.
commands.moderation.link.request.success.description=If i'm on this guild i sent a message to accept the link.
commands.moderation.link.error.title=Wait that's illegal.
commands.moderation.link.request.error.description=You specified the same guild as the guild on which you're reading this
commands.moderation.link.request.accept.title=Skidder wants to link guilds!
commands.moderation.link.request.accept.description=React with the reactions to accept or decline it
commands.moderation.link.set.title=Set the thing boi
commands.moderation.link.help.description=Links two or more servers.
commands.moderation.nick.success.title=Successfully nicked
commands.moderation.nick.success.description=I successfully nicked
commands.moderation.nick.myself.success.description=I successfully changed my nickname.
commands.moderation.nick.mass.success.description=I successfully nicked 69 Members!
commands.moderation.nick.help.description=Rename a one or more user.

View file

@ -87,6 +87,7 @@ public class Hadder {
new SoloCommand(),
new RegionChangeCommand(),
new AboutCommand(),
new LanguageCommand(),
new LinkCommand()), config, helpCommand);
builder.addEventListeners(

View file

@ -147,7 +147,7 @@ public class Rethink {
}
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) {
@ -185,4 +185,12 @@ public class Rethink {
return (Boolean) this.get("server", "id", guild_id, "invite_detect");
}
public void setLanguage(String user_id, String language) {
this.update("users", user_id, "language", language);
}
public String getLanguage(String user_id) {
return (String) this.get("user", "id", user_id, "language");
}
}

View file

@ -16,14 +16,14 @@ public class AvatarCommand implements Command {
if (args.length == 0) {
Member member = event.getMember();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Avatar of " + member.getUser().getAsTag())
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.fun.avatar.success.title") + member.getUser().getAsTag())
.setImage(member.getUser().getAvatarUrl())
.setFooter(member.getUser().getAsTag())
.build()).queue();
} else if (event.getMessage().getMentionedMembers().size() == 1) {
Member member = event.getMessage().getMentionedMembers().get(0);
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Avatar of " + member.getUser().getAsTag())
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.fun.avatar.success.title") + member.getUser().getAsTag())
.setImage(member.getUser().getAvatarUrl())
.setFooter(member.getUser().getAsTag())
.build()).queue();
@ -35,7 +35,7 @@ public class AvatarCommand implements Command {
.setFooter(member.getUser().getAsTag())
.build()).queue();
} else {
event.getHelpCommand().sendHelp(this , event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
}
@ -46,11 +46,11 @@ public class AvatarCommand implements Command {
@Override
public String description() {
return "Sends the avatar of the specified member.";
return MessageEditor.handle("en", "commands.fun.avatar.help.description");
}
@Override
public String usage() {
return "<@User>/<ID>";
return "[@User]/[ID]";
}
}

View file

@ -37,9 +37,9 @@ public class GifCommand implements Command {
String url = array.getJSONObject(gifIndex).get("url").toString();
event.getTextChannel().sendMessage(url).queue();
} catch (Exception e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setTitle("Error").setDescription("Please try again with another term.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setTitle("Error").setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.fun.gif.error.description")).build()).queue();
}
} else event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
} else event.getHelpCommand().sendHelp(this, event);
}
@Override
@ -49,7 +49,7 @@ public class GifCommand implements Command {
@Override
public String description() {
return "Look for a GIF on Giphy";
return MessageEditor.handle("en", "commands.fun.gif.help.description");
}
@Override

View file

@ -28,14 +28,14 @@ public class MemeCommand implements Command {
JSONObject json = new JSONObject(response.body().string());
String url = json.get("image").toString();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Your random meme")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.fun.meme.success.title"))
.setImage(url)
.build()).queue();
} catch (IOException e) {
e.printStackTrace();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Error")
.setDescription("The request to the meme API could not be processed. Please try it again later.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "error"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.fun.meme.api.error"))
.setColor(Color.RED)
.build()).queue();
}
@ -48,7 +48,7 @@ public class MemeCommand implements Command {
@Override
public String description() {
return "Sends you a random meme.";
return MessageEditor.handle("en", "commands.fun.meme.help.description");
}
@Override

View file

@ -13,9 +13,9 @@ public class AboutCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Hadder - About")
.setDescription("Hadder is an open source Discord bot.")
.addField("Support the Developers", "Hadder is completely free for everyone. We would appreciate it you donate some money [here](https://donatebot.io/checkout/448554629282922527?buyer=" + event.getAuthor().getId() + "). :smiley:", true)
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.about.success.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.about.success.description"))
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.about.success.field.one.title"), MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.about.success.field.one.description") + "(https://donatebot.io/checkout/448554629282922527?buyer=" + event.getAuthor().getId() + "). :smiley:", true)
.setThumbnail("https://bigbotnetwork.com/images/Hadder.png")
.build()).queue();
}
@ -27,7 +27,7 @@ public class AboutCommand implements Command {
@Override
public String description() {
return "Shows infos about Hadder.";
return MessageEditor.handle("en", "commands.general.about.help.description");
}
@Override

View file

@ -16,22 +16,22 @@ public class EqualsCommand implements Command {
event.getChannel().sendMessage(
new MessageEditor()
.setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Please send me the first String")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.first.request"))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(msgevent -> {
String firstString = msgevent.getMessage().getContentRaw();
event.getChannel().sendMessage(
new MessageEditor()
.setDefaultSettings(
MessageEditor.MessageType.INFO).setTitle("Please send me the second String").build()).queue();
MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.second.request")).build()).queue();
new EventWaiter().newOnMessageEventWaiter(msgevent2 -> {
String secondString = msgevent2.getMessage().getContentRaw();
event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle((firstString.equals(secondString)) ? "Yes! The first string equals the second string!" : "Well yes, but actually No. This isn't the same.")
.addField("First String", firstString, false)
.addField("Second String", secondString, false)
.addField("Result", String.valueOf(firstString.equals(secondString)), false)
.setTitle((firstString.equals(secondString)) ? MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.equals.true") : MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.equals.false"))
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.first"), firstString, false)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.second"), secondString, false)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.equals.string.result"), String.valueOf(firstString.equals(secondString)), false)
.build()).queue();
}, event.getJDA(), event.getAuthor());
}, event.getJDA(), event.getAuthor());
@ -44,7 +44,7 @@ public class EqualsCommand implements Command {
@Override
public String description() {
return "Check if two strings are the same.";
return MessageEditor.handle("en", "commands.general.equals.help.description");
}
@Override

View file

@ -1,13 +1,10 @@
package com.bbn.hadder.commands.general;
import com.bbn.hadder.Rethink;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.TextChannel;
import net.dv8tion.jda.api.entities.User;
import java.util.ArrayList;
import java.util.HashMap;
@ -48,25 +45,25 @@ public class HelpCommand implements Command {
for (Command cmd : event.getCommandHandler().getCommandList()) {
for (String label : cmd.labels()) {
if (label.equalsIgnoreCase(args[0])) {
sendHelp(cmd, event.getRethink(), event.getAuthor(), event.getTextChannel());
sendHelp(cmd, event);
}
}
}
}
} else {
event.getTextChannel().sendMessage("I need the Embed Links Permission to send the Help Menu!").queue();
event.getTextChannel().sendMessage(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.help.error.description")).queue();
}
}
public void sendHelp(Command cmd, Rethink rethink, User author, TextChannel channel) {
public void sendHelp(Command cmd, CommandEvent event) {
if (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") &&
(author.getId().equals("477141528981012511") || author.getId().equals("261083609148948488")))) {
(event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
EmbedBuilder eb = new EmbedBuilder();
String name = cmd.labels()[0];
eb.setDescription(cmd.description()).setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase()));
eb.addField("Usage", rethink.getUserPrefix(author.getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
eb.addField("Usage", event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + cmd.usage(), false);
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO);
channel.sendMessage(eb.build()).queue();
event.getChannel().sendMessage(eb.build()).queue();
}
}
@ -77,11 +74,11 @@ public class HelpCommand implements Command {
@Override
public String description() {
return "Shows each command or explains its usage.";
return MessageEditor.handle("en", "commands.general.help.help.description");
}
@Override
public String usage() {
return "[CommandName]";
return MessageEditor.handle("en", "commands.general.help.help.label");
}
}

View file

@ -1,9 +1,5 @@
package com.bbn.hadder.commands.general;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.Hadder;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
@ -18,8 +14,8 @@ public class InviteCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Invite me!")
.setDescription("[Invite me here!](https://discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.invite.success.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.general.invite.success.description") + "(https://discordapp.com/oauth2/authorize?client_id=" + Hadder.shardManager.getGuilds().get(0).getSelfMember().getId() + "&scope=bot&permissions=470133879)")
.build()).queue();
}
@ -30,7 +26,7 @@ public class InviteCommand implements Command {
@Override
public String description() {
return "Shows the invitation to invite Hadder to your server.";
return MessageEditor.handle("en", "commands.general.invite.help.description");
}
@Override

View file

@ -22,7 +22,7 @@ public class PingCommand implements Command {
@Override
public String description() {
return "Shows the ping to the Discord API.";
return MessageEditor.handle("en", "commands.general.ping.help.description");
}
@Override

View file

@ -19,14 +19,14 @@ public class FeedbackCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Feedback Topic")
.setDescription("Please send me the feedback topic.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.feedback.title.request.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.feedback.title.request.description"))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event1 -> {
String title = event1.getMessage().getContentDisplay();
event1.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Feedback Description")
.setDescription("Please send me the feedback description now.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.feedback.description.request.title"))
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.feedback.description.request.description"))
.build()).queue();
new EventWaiter().newOnMessageEventWaiter(event2 -> {
String description = event2.getMessage().getContentDisplay();
@ -53,7 +53,7 @@ public class FeedbackCommand implements Command {
@Override
public String description() {
return "Sends feedback directly to the developers.";
return MessageEditor.handle("en", "commands.misc.feedback.help.description");
}
@Override

View file

@ -21,7 +21,7 @@ public class GitHubCommand implements Command {
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
if (args[0].equals("link")) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("Link your GitHub Account").setDescription("https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.link.title")).setDescription("https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942").build()).queue();
} else {
Request request = new Request.Builder().url("https://api.github.com/users/" + args[0]).build();
try {
@ -45,27 +45,27 @@ public class GitHubCommand implements Command {
if (!json.getString("blog").equals("")) website = json.getString("blog");
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setAuthor("Information about " + nickname + " (" + args[0] + ")", "https://github.com/" + args[0] + "", "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png")
.setAuthor(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.title") + nickname + " (" + args[0] + ")", "https://github.com/" + args[0] + "", "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png")
.setThumbnail(json.getString("avatar_url"))
.addField("User bio", bio, false)
.addField("Location", location, true)
.addField("Website", website, true)
.addField("Public repositories", String.valueOf(json.getInt("public_repos")), true)
.addField("Public gists", String.valueOf(json.getInt("public_gists")), true)
.addField("Followers", String.valueOf(json.getInt("followers")), true)
.addField("Following", String.valueOf(json.getInt("following")), true)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.bio"), bio, false)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.location"), location, true)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.website"), website, true)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.repositories"), String.valueOf(json.getInt("public_repos")), true)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.gists"), String.valueOf(json.getInt("public_gists")), true)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.followers"), String.valueOf(json.getInt("followers")), true)
.addField(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.success.following"), String.valueOf(json.getInt("following")), true)
.build()).queue();
} catch (IOException | NullPointerException e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setDescription("The GitHub API might be down at the moment!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.api.error.description")).build()).queue();
} catch (JSONException e) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("This user does not exist!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.user.error.description")).build()).queue();
}
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Connect you GH account")
.setDescription("[Please connect your GitHub account here](https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942)")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.connect.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.github.connect.description") + "(https://github.com/login/oauth/authorize?client_id=25321f690bb1b6952942)")
.build()).queue();
}
}
@ -77,11 +77,11 @@ public class GitHubCommand implements Command {
@Override
public String description() {
return "Displays information about a GitHub user profile.";
return MessageEditor.handle("en", "commands.misc.github.help.description");
}
@Override
public String usage() {
return "<Username>";
return MessageEditor.handle("en", "username");
}
}

View file

@ -19,15 +19,15 @@ public class ScreenShareCommand implements Command {
try {
if (vc.getIdLong() == Long.parseLong(args[0])) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Here's your Url to share your Screen")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.success.title"))
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue();
return;
}
} catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Wait, that's illegal")
.setDescription("This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.id.error.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.id.error.description")).build()).queue();
event.getHelpCommand().sendHelp(this, event);
return;
}
}
@ -35,8 +35,8 @@ public class ScreenShareCommand implements Command {
List<VoiceChannel> vcs = event.getGuild().getVoiceChannelsByName(String.join(" ", args), true);
if (vcs.size() > 1) {
EmbedBuilder eb = new EmbedBuilder()
.setTitle("Please Choose a Voice Channel")
.setDescription("There is more than one channel with this name");
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.channel.error.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.channel.error.description"));
for (int i = 0; i < vcs.size(); i++) {
VoiceChannel voiceChannel = vcs.get(i);
eb.addField(i + ": " + voiceChannel.getName(), voiceChannel.getId(), false);
@ -47,34 +47,34 @@ public class ScreenShareCommand implements Command {
int i = Integer.parseInt(msgevent.getMessage().getContentRaw());
if (vcs.size() > i) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Here's your Url to share your Screen")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.success.title"))
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(i).getId() + "/").build()).queue();
} else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("You specified a wrong number!").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.number.error.title")).build()).queue();
event.getHelpCommand().sendHelp(this, event);
}
} catch (NumberFormatException e) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Wait, that's illegal")
.setDescription("This isn't a Number.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.id.error.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.number.error.description")).build()).queue();
event.getHelpCommand().sendHelp(this, event);
}
}, event.getJDA(), event.getAuthor());
} else if (vcs.size()==0) {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Hol' up")
.setDescription("There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.").build()).queue();
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.channel.existing.error"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.channel.existing.description")).build()).queue();
event.getHelpCommand().sendHelp(this, event);
} else {
event.getChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Here's your Url to share your Screen")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.misc.screenshare.success.title"))
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(0).getId() + "/").build()).queue();
}
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
}
@ -85,11 +85,11 @@ public class ScreenShareCommand implements Command {
@Override
public String description() {
return "Shows you the link to share your screen.";
return MessageEditor.handle("en", "commands.misc.screenshare.help.description");
}
@Override
public String usage() {
return "<VoiceChannelID|VoiceChannelName>";
return MessageEditor.handle("en", "vc-name/id");
}
}

View file

@ -21,18 +21,18 @@ public class BanCommand implements Command {
if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) {
if (event.getGuild().getSelfMember().canInteract(victim)) {
event.getGuild().ban(victim, 0, "Banned by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully banned ✅").setDescription("I successfully baned " + victim.getUser().getName() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.success.description") + victim.getUser().getName() + ".").build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("Not possible").setDescription("I can not ban myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.myself.error.description")).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle("Not possible").setDescription("You can't ban yourself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.yourself.error.description")).build()).queue();
}
} else if (event.getMessage().getMentionedMembers().size() == 0) {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
} else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i);
@ -44,13 +44,13 @@ public class BanCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not ban myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.myself.error.description")).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't ban yourself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.yourself.error.description")).build()).queue();
}
}
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully banned ✅").setDescription("I successfully banned " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.ban.success.description") + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
@ -64,7 +64,7 @@ public class BanCommand implements Command {
@Override
public String description() {
return "Bans one ore more user from the server.";
return MessageEditor.handle("en", "commands.moderation.ban.help.description");
}
@Override

View file

@ -12,6 +12,7 @@ import net.dv8tion.jda.api.entities.Message;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class ClearCommand implements Command {
@ -23,17 +24,23 @@ public class ClearCommand implements Command {
if (event.getGuild().getMemberById(event.getJDA().getSelfUser().getId()).hasPermission(Permission.MESSAGE_MANAGE)) {
try {
int nbToDelete = Integer.parseInt(args[0]);
if(nbToDelete < 1 || nbToDelete > 200) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You have to choose a number between 1 and 200!").build()).queue();
if(nbToDelete < 1 || nbToDelete > 99) {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.number.error.description")).build()).queue();
return;
}
List<Message> history = event.getTextChannel().getHistory().retrievePast(nbToDelete +1).complete();
List<Message> msgToDelete = new ArrayList<>();
msgToDelete.addAll(history);
event.getTextChannel().deleteMessages(msgToDelete).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setDescription("Successfully deleted " + nbToDelete + " messages.").build()).queue();
Message msg = event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.clear.success.description") + nbToDelete + " messages.").build()).complete();
try {
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException e) {
e.printStackTrace();
}
msg.delete().queue();
} catch (NumberFormatException e) {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
@ -42,7 +49,7 @@ public class ClearCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
}
@ -53,11 +60,11 @@ public class ClearCommand implements Command {
@Override
public String description() {
return "Deletes the specified number of messages.";
return MessageEditor.handle("en", "commands.moderation.clear.help.description");
}
@Override
public String usage() {
return "<Number>";
return MessageEditor.handle("en", "number");
}
}

View file

@ -14,12 +14,12 @@ public class GuildPrefixCommand implements Command {
if (!args[0].contains("\"")) {
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 the guild to " + args[0]).build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.prefix.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.prefix.success.description") + args[0]).build()).queue();
} 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(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.prefix.error.description")).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
@ -33,11 +33,11 @@ public class GuildPrefixCommand implements Command {
@Override
public String description() {
return "Sets the Guild-Prefix.";
return MessageEditor.handle("en", "commands.moderation.prefix.help.description");
}
@Override
public String usage() {
return "<New Guild-Prefix>";
return MessageEditor.handle("en", "guildprefix");
}
}

View file

@ -21,13 +21,13 @@ public class InviteDetectCommand implements Command {
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.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.activate.success.title"))
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.activate.success.description"))
.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.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.activate.error.title"))
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.activate.error.description"))
.build()).queue();
}
break;
@ -36,13 +36,13 @@ public class InviteDetectCommand implements Command {
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.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.deactivate.success.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.deactivate.success.description"))
.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.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.deactivate.error.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.invitedetect.deactivate.error.description"))
.build()).queue();
}
break;
@ -51,7 +51,7 @@ public class InviteDetectCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
}
@ -62,7 +62,7 @@ public class InviteDetectCommand implements Command {
@Override
public String description() {
return "Activate or deactivate the Discord invite link detection.";
return MessageEditor.handle("en", "commands.moderation.invitedetect.help.description");
}
@Override

View file

@ -22,18 +22,18 @@ public class KickCommand implements Command {
if (!event.getJDA().getSelfUser().getId().equals(victim.getId())) {
if (event.getGuild().getSelfMember().canInteract(victim)) {
event.getGuild().kick(victim, "Kicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + victim.getUser().getName() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.success.description") + victim.getUser().getName() + ".").build()).queue();
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not kick myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.myself.error.description")).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't kick yourself.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.yourself.error.description")).build()).queue();
}
} else if (event.getMessage().getMentionedMembers().size() == 0) {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
} else if (event.getMessage().getMentionedMembers().size() > 1) {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i);
@ -45,13 +45,13 @@ public class KickCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("I can not kick myself!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.myself.error.description")).build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setDescription("You can't kick yourself.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.WARNING).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.yourself.error.description")).build()).queue();
}
}
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully kicked ✅").setDescription("I successfully kicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.kick.success.description") + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
}
}
}
@ -63,7 +63,7 @@ public class KickCommand implements Command {
@Override
public String description() {
return "Kicks one or more user from the server.";
return MessageEditor.handle("en", "commands.moderation.kick.help.description");
}
@Override

View file

@ -9,7 +9,7 @@ import net.dv8tion.jda.api.entities.Guild;
public class LinkCommand implements Command {
@Override
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);
switch (args[0].toLowerCase()) {
case "add":
if (args.length != 2) return;
@ -27,7 +27,7 @@ public class LinkCommand implements Command {
if (!found) {
event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "success!")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.request.success.description"))
.build()).queue();
return;
}
@ -36,7 +36,7 @@ public class LinkCommand implements Command {
if (event.getGuild().getId().equals(args[1])) {
event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.ERROR)
.setTitle("Wait that's illegal.").setDescription("You specified the same guild as the guild on which you're reading this").build()).queue();
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.error.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.request.error.description")).build()).queue();
return;
}
@ -49,8 +49,8 @@ public class LinkCommand implements Command {
// Send Request to link Guild
event.getJDA().getTextChannelById(event.getRethink().getLinkChannel(linkid)).sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + ") wants to link guilds!")
.setDescription("React with the reactions to accept or decline it").build()
.setTitle(event.getGuild().getName() + " (" + event.getGuild().getId() + MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.request.accept.title"))
.setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.request.accept.description")).build()
).queue(
msg -> {
msg.addReaction("").queue();
@ -62,7 +62,7 @@ public class LinkCommand implements Command {
event.getChannel().sendMessage(
new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO)
.setTitle("Success!").setDescription("If i'm on this guild i sent a message to accept the link.")
.setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "success!")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.request.success.description"))
.build()).queue();
break;
@ -70,7 +70,7 @@ public class LinkCommand implements Command {
case "channel":
if (args.length == 2) {
event.getRethink().setLinkChannel(event.getGuild().getId(), args[1]);
event.getChannel().sendMessage(new EmbedBuilder().setTitle("Success").setDescription("Set the thing boi").build()).queue();
event.getChannel().sendMessage(new EmbedBuilder().setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "success!")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.link.set.title")).build()).queue();
}
break;
@ -84,7 +84,7 @@ public class LinkCommand implements Command {
@Override
public String description() {
return "Links two or more servers.";
return MessageEditor.handle("en", "commands.moderation.link.help.description");
}
@Override

View file

@ -22,13 +22,13 @@ public class NickCommand implements Command {
if (args.length > 1) {
if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) {
event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.description") + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
} else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) {
event.getGuild().modifyNickname(event.getMessage().getMentionedMembers().get(0), event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.description") + event.getMessage().getMentionedMembers().get(0).getUser().getAsTag() + ".").build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
@ -36,14 +36,14 @@ public class NickCommand implements Command {
} else {
if (event.getMessage().getContentRaw().startsWith(event.getRethink().getUserPrefix(event.getMember().getId()))) {
event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getUserPrefix(event.getMember().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.myself.success.description")).build()).queue();
} else if (event.getMessage().getContentRaw().startsWith(event.getRethink().getGuildPrefix(event.getGuild().getId()))) {
event.getGuild().getSelfMember().modifyNickname(event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "nick " + args[0], "")).reason("Nicked by " + event.getAuthor().getAsTag()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully changed my nickname.").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.myself.success.description")).build()).queue();
}
}
} else if (event.getMessage().getMentionedMembers().size() == 0) {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
} else {
for (int i = 0; i < event.getMessage().getMentionedMembers().size(); i++) {
Member member = event.getMessage().getMentionedMembers().get(i);
@ -53,7 +53,7 @@ public class NickCommand implements Command {
event.getGuild().getSelfMember().modifyNickname(args[args.length - 1]).reason("Mass Nicked by " + event.getAuthor().getAsTag()).queue();
}
}
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle("✅ Successfully nicked ✅").setDescription("I successfully nicked " + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.INFO).setTitle(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.success.title")).setDescription(MessageEditor.handle(event.getRethink().getLanguage(event.getAuthor().getId()), "commands.moderation.nick.myself.success.description") + event.getMessage().getMentionedMembers().size() + " Members!").build()).queue();
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
@ -70,11 +70,11 @@ public class NickCommand implements Command {
@Override
public String description() {
return "Rename a one or more user.";
return MessageEditor.handle("en", "commands.moderation.nick.help.description");
}
@Override
public String usage() {
return "<@user> <New Nickname>";
return MessageEditor.handle("en", "user+nickname");
}
}

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

@ -67,7 +67,7 @@ public class RoleCommand implements Command {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
}

View file

@ -70,14 +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);
} // TODO
} 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,11 +19,26 @@ public class JoinCommand implements Command {
AudioManager audioManager = event.getGuild().getAudioManager();
if(!audioManager.isAttemptingToConnect()) {
VoiceChannel vc = event.getMember().getVoiceState().getChannel();
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 trying to connect")

View file

@ -77,7 +77,7 @@ public class EvalCommand implements Command {
}, 0, TimeUnit.MILLISECONDS);
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();

View file

@ -22,7 +22,7 @@ public class GuildLeaveCommand implements Command {
.setDescription("I successfully left " + guild.getName())
.build()).queue();
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getTextChannel().sendMessage(new MessageEditor().setDefaultSettings(MessageEditor.MessageType.NO_PERMISSION).build()).queue();

View file

@ -0,0 +1,66 @@
package com.bbn.hadder.commands.settings;
/*
* @author Skidder / GregTCLTK
*/
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
public class LanguageCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
switch (args[0].toLowerCase()) {
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 {
event.getHelpCommand().sendHelp(this, event);
}
}
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"};
}
@Override
public String description() {
return "Sets the new primary language for a user.";
}
@Override
public String usage() {
return "<Language code>";
}
}

View file

@ -16,7 +16,7 @@ public class PrefixCommand implements Command {
event.getRethink().setUserPrefix(args[0], event.getAuthor().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();
} else {
event.getHelpCommand().sendHelp(this, event.getRethink(), event.getAuthor(), event.getTextChannel());
event.getHelpCommand().sendHelp(this, event);
}
}

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();
}
}
}

View file

@ -30,14 +30,7 @@ public class RulesListener extends ListenerAdapter {
}
}
} else if (event.getReactionEmote().isEmoji()) {
if (event.getReactionEmote().getEmoji().equals(rethink.getRulesAEmote(event.getGuild().getId()))) {
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue();
} else if (event.getReactionEmote().getEmoji().equals(rethink.getRulesDEmote(event.getGuild().getId()))) {
event.getReaction().removeReaction(event.getUser()).queue();
if (event.getGuild().getSelfMember().canInteract(event.getMember())) {
event.getMember().kick().reason("Declined the rules");
}
}
event.getGuild().addRoleToMember(event.getMember(), event.getGuild().getRoleById(rethink.getRulesRID(event.getGuild().getId()))).reason("Accepted rules").queue();
}
}
}

View file

@ -4,6 +4,8 @@ import net.dv8tion.jda.api.EmbedBuilder;
import java.awt.*;
import java.time.Instant;
import java.util.Locale;
import java.util.ResourceBundle;
public class MessageEditor {
@ -59,4 +61,9 @@ public class MessageEditor {
NO_PERMISSION,
NO_SELF_PERMISSION
}
public static String handle(String language_code, String string) {
Locale locale = new Locale(language_code);
return ResourceBundle.getBundle("Translations/Translations", locale).getString(string).replaceAll("%prefix%", "h.");
}
}

View file

@ -0,0 +1,120 @@
#
# @author Skidder / GregTCLTK
#
#
# @author Skidder / GregTCLTK
#
Hadder = Hadder
searchterm = <SearchTerm>
username = <Username>
number = <Number>
guildprefix = <New Guild-Prefix>
vc-name/id = <VoiceChannelID|VoiceChannelName>
user+nickname = <@user> <New Nickname>
error = Error
none = None
success! = Success!
commands.fun.avatar.success.title = Avatar of
commands.fun.avatar.help.description = Sends the avatar of the specified member.
commands.fun.gif.error.description = Please try again with another term.
commands.fun.gif.help.description = Look for a GIF on Giphy
commands.fun.meme.success.title = Your random meme
commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later.
commands.fun.meme.help.description = Sends you a random meme.
commands.general.about.success.title = Hadder - About
commands.general.about.success.description = Hadder is an open source Discord bot.
commands.general.about.success.field.one.title = Support the Developers
commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]
commands.general.about.help.description = Shows infos about Hadder
commands.general.equals.string.first.request = Please send me the first String
commands.general.equals.string.second.request = Please send me the second String
commands.general.equals.string.equals.true = Yes! The first string equals the second string!
commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same.
commands.general.equals.string.first = First String
commands.general.equals.string.second = Second String
commands.general.equals.string.result = Result
commands.general.equals.help.description = Check if two strings are the same
commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu!
commands.general.help.help.description = Shows each command or explains its usage
commands.general.help.help.label = [CommandName]
commands.general.invite.success.title = Invite me!
commands.general.invite.success.description = [Invite me here!]
commands.general.invite.help.description = Shows the invitation to invite Hadder to your server
commands.general.ping.help.description = Shows the ping to the Discord API
commands.misc.feedback.title.request.title = Feedback Topic
commands.misc.feedback.title.request.description = Please send me the feedback topic.
commands.misc.feedback.description.request.title = Feedback Description
commands.misc.feedback.description.request.description = Please send me the feedback description now.
commands.misc.feedback.help.description = Sends feedback directly to the developers.
commands.misc.github.link.title = Link your GitHub Account
commands.misc.github.success.title = Information about
commands.misc.github.success.bio = User bio
commands.misc.github.success.location = Location
commands.misc.github.success.website = Website
commands.misc.github.success.repositories = Public repositories
commands.misc.github.success.gists = Public gists
commands.misc.github.success.followers = Followers
commands.misc.github.success.following = Following
commands.misc.github.api.error.description = The GitHub API might be down at the moment!
commands.misc.github.user.error.description = This user does not exist!
commands.misc.github.connect.title = Connect you GH account
commands.misc.github.connect.description = [Please connect your GitHub account here]
commands.misc.github.help.description = Displays information about a GitHub user profile.
commands.misc.screenshare.success.title = Here's your Url to share your Screen
commands.misc.screenshare.id.error.title = Wait that's illegal
commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote: Make sure the Voice Channel is on this Guild.
commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel
commands.misc.screenshare.channel.error.description = There is more than one channel with this name
commands.misc.screenshare.number.error.title = You specified a wrong number!
commands.misc.screenshare.number.error.description = This isn't a Number.
commands.misc.screenshare.channel.existing.error = Hol' up
commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote: Make sure the Voice Channel is on this Guild.
commands.misc.screenshare.help.description = Shows you the link to share your screen.
commands.moderation.ban.success.title = ? Successfully banned ?
commands.moderation.ban.success.description = I successfully baned
commands.moderation.ban.error.title = Not possible
commands.moderation.ban.myself.error.description = I can not ban myself!
commands.moderation.ban.yourself.error.description = You can not ban yourself!
commands.moderation.ban.help.description = Bans one ore more user from the server
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99!
commands.moderation.clear.success.description = Successfully deleted
commands.moderation.clear.help.description = Deletes the specified number of messages.
commands.moderation.prefix.success.title = ? Successfully set ?
commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to
commands.moderation.prefix.error.description = The prefix must not contain **\"**
commands.moderation.prefix.help.description = Sets the Guild-Prefix.
commands.moderation.invitedetect.activate.success.title = Successfully activated
commands.moderation.invitedetect.activate.success.description = I successfully activated the invite link detection for this guild.
commands.moderation.invitedetect.activate.error.title = Already activated
commands.moderation.invitedetect.activate.error.description = The invite link detection is already activated on this guild.
commands.moderation.invitedetect.deactivate.success.title = Successfully deactivated
commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this guild.
commands.moderation.invitedetect.deactivate.error.title = Already deactivated
commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this guild.
commands.moderation.invitedetect.help.description = Activate or deactivate the Discord invite link detection.
commands.moderation.kick.success.title = ? Successfully kicked ?
commands.moderation.kick.success.description = I successfully kicked
commands.moderation.kick.error.title = Not possible
commands.moderation.kick.myself.error.description = I can not kick myself!
commands.moderation.kick.yourself.error.description = You can't kick yourself.
commands.moderation.kick.mass.success.description = I successfully kicked 69 Members!
commands.moderation.kick.help.description = Kicks one or more user from the server.
commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link.
commands.moderation.link.error.title = Wait that's illegal.
commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this
commands.moderation.link.request.accept.title = ) wants to link guilds!
commands.moderation.link.request.accept.description = React with the reactions to accept or decline it
commands.moderation.link.set.title = Set the thing boi
commands.moderation.link.help.description = Links two or more servers.
commands.moderation.nick.success.title = ? Successfully nicked ?
commands.moderation.nick.success.description = I successfully nicked
commands.moderation.nick.myself.success.description = I successfully changed my nickname.
commands.moderation.nick.help.description = Rename a one or more user.