Merge pull request #557 from BigBotNetwork/greg-dev

1.3.19
This commit is contained in:
Skidder 2020-10-16 00:12:46 +02:00 committed by GitHub
commit 02c4312e49
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 135 additions and 132 deletions

View file

@ -19,34 +19,43 @@ Hax#6775
## A few commands ## A few commands
| **Command** | **Description** | | **Command** | **Description** |
|----------------|---------------------------------------------------------------| |----------------|---------------------------------------------------------------|
| h.help | Shows each command and explains its usage. | | h.about | Shows information about Hadder |
| h.about | Shows information about Hadder. | | h.avatar | Sends the avatar of the specified Member |
| h.equals | Checks if two strings are the same. | | h.ban | Bans one or more users from the server |
| h.invite | Shows the invite link to invite Hadder to your server. | | h.bass | Change the bass for the song which is played at the moment |
| h.ping | Shows the ping to the Discord API. | | h.clear | Deletes the specified number of messages |
| h.avatar | Sends the avatar of the specified member. | | h.clyde | Sends a message as a webhook named Clyde |
| h.gif | Looks for a GIF on Giphy. | | h.code | Shows information about a invite code |
| h.meme | Sends you a random meme. | | h.corona | Shows the newest stats of COVID-19 |
| h.clyde | Sends a message as a webhook named Clyde. | | h.echo | Sends your voice through Hadder |
| h.feedback | Sends feedback directly to the developers. | | h.editrules | Edits the rules message |
| h.github | Displays information about a GitHub user profile. | | h.equals | Checks if two strings are equal |
| h.screenshare | Shows you the link to share your screen. | | h.feedback | Sends feedback directly to the developers |
| h.ban | Bans one or more users from the server. | | h.gif | Looks for a GIF on Giphy |
| h.clear | Deletes the specified number of messages. | | h.github | Displays information about a GitHub user profile |
| h.prefix | Sets the Guild-Prefix. | | h.help | Shows each command and explains its usage |
| h.invitedetect | Activate or deactivate the Discord invite link detection. | | h.info | Shows information about the playing song |
| h.kick | Kicks one or more user from the server. | | h.invite | Shows the invitation link to invite Hadder to your server |
| h.nick | Rename a one or more user. | | h.invitedetect | Activate or deactivate the Discord invite link detection |
| h.regionchange | Changes the server region to locked regions. | | h.join | Joins your voice channel |
| h.kick | Kicks one or more user from the server |
| h.language | Sets the new primary language for a user |
| h.loop | Repeats a song/queue |
| h.meme | Sends you a random meme |
| h.moveall | Moves all users in the source channel to the target channel |
| h.nick | Rename a one or more user |
| h.pause | Pause the playing song |
| h.ping | Shows the ping to the Discord API |
| h.play | Plays the specified song |
| h.prefix | Sets the Guild-Prefix |
| h.profile | Shows some information about the specified user |
| h.queue | Shows the music queue |
| h.regionchange | Changes the server region to locked regions |
| h.role | Adds and removes one or more role(s) from one or more user(s) | | h.role | Adds and removes one or more role(s) from one or more user(s) |
| h.rules | Setup the rules on your Discord server | | h.rules | Setup the rules on your Discord server |
| h.starboard | Sets the starboard channel. | | h.screenshare | Shows you the link to share your screen |
| h.editrules | Edits the rules message. | | h.serverstats | Shows information about a server |
| h.join | Joins your voice channel. | | h.skip | Skips the currently playing song |
| h.leave | Leaves your voice channel. | | h.starboard | Sets the starboard channel |
| h.play | Plays the specified song. | | h.stop | Stops the song |
| h.stop | Stops the song. | | h.volume | Change the volume of the music |
| h.info | Shows information about the playing song. |
| h.queue | Shows the music queue. |
| h.skip | Skips the currently playing song. |
| h.volume | Change the volume of the music. |

View file

@ -6,7 +6,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>Hadder</groupId> <groupId>Hadder</groupId>
<artifactId>Hadder</artifactId> <artifactId>Hadder</artifactId>
<version>1.3.18</version> <version>1.3.19</version>
<name>Hadder</name> <name>Hadder</name>
<inceptionYear>2019</inceptionYear> <inceptionYear>2019</inceptionYear>
<description>Hadder is a multi-purpose Discord bot.</description> <description>Hadder is a multi-purpose Discord bot.</description>

View file

@ -137,7 +137,7 @@ public class Hadder {
new CoronaCommand()), config, helpCommand); new CoronaCommand()), config, helpCommand);
builder.addEventListeners( builder.addEventListeners(
new MentionListener(rethink), new MentionListener(rethink, config),
new PrivateMessageListener(rethink), new PrivateMessageListener(rethink),
new CommandListener(rethink, commandHandler, audioManager), new CommandListener(rethink, commandHandler, audioManager),
new GuildListener(rethink, config), new GuildListener(rethink, config),

View file

@ -75,7 +75,7 @@ public class InviteDetectCommand implements Command {
@Override @Override
public String[] labels() { public String[] labels() {
return new String[]{"invitedetect", "detectinvite"}; return new String[]{"invitedetect", "detectinvite", "invite-detect"};
} }
@Override @Override

View file

@ -45,7 +45,7 @@ public class BlacklistCommand implements Command {
String blacklisted = e.getRethinkUser().getBlacklisted(); String blacklisted = e.getRethinkUser().getBlacklisted();
List<String> commands = new ArrayList<>(); List<String> commands = new ArrayList<>();
if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(","))); if (!"none".equals(blacklisted)) commands.addAll(Arrays.asList(blacklisted.split(",")));
if (args[0].toLowerCase().equals("add")) commands.addAll(Arrays.asList(args[1].split(","))); if (args[0].equalsIgnoreCase("add")) commands.addAll(Arrays.asList(args[1].split(",")));
else commands.removeAll(Arrays.asList(args[1].split(","))); else commands.removeAll(Arrays.asList(args[1].split(",")));
LinkedHashSet<String> hashSet = new LinkedHashSet<>(commands); LinkedHashSet<String> hashSet = new LinkedHashSet<>(commands);

View file

@ -16,6 +16,7 @@
package com.bbn.hadder.listener; package com.bbn.hadder.listener;
import com.bbn.hadder.core.Config;
import com.bbn.hadder.db.Rethink; import com.bbn.hadder.db.Rethink;
import com.bbn.hadder.db.RethinkServer; import com.bbn.hadder.db.RethinkServer;
import com.bbn.hadder.db.RethinkUser; import com.bbn.hadder.db.RethinkUser;
@ -23,9 +24,8 @@ import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.ChannelType; import net.dv8tion.jda.api.entities.ChannelType;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.apache.maven.model.Model; import org.kohsuke.github.GHRepository;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.kohsuke.github.GitHub;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import java.io.IOException; import java.io.IOException;
@ -34,9 +34,11 @@ import java.util.Random;
public class MentionListener extends ListenerAdapter { public class MentionListener extends ListenerAdapter {
private Rethink rethink; private Rethink rethink;
private Config config;
public MentionListener(Rethink rethink) { public MentionListener(Rethink rethink, Config config) {
this.rethink = rethink; this.rethink = rethink;
this.config = config;
} }
@Override @Override
@ -47,32 +49,24 @@ public class MentionListener extends ListenerAdapter {
if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) || if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) ||
e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) { e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
MavenXpp3Reader reader = new MavenXpp3Reader(); String version = null;
Model model = null;
try { try {
model = reader.read(getClass().getResourceAsStream("pom.xml")); GitHub connection = GitHub.connectUsingOAuth(config.getGitHubToken());
} catch (IOException | XmlPullParserException ex) { GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder");
ex.printStackTrace(); version = Hadder.getLatestRelease().getTagName();
} catch (IOException ioException) {
ioException.printStackTrace();
} }
EmbedBuilder builder = new EmbedBuilder() EmbedBuilder builder = new EmbedBuilder()
.setTitle("Hi!") .setTitle("Hi!")
.addField("Version", model.getVersion(), false) .addField("Version", version, false)
.addField("User-Prefix", rethinkUser.getPrefix(), true) .addField("User-Prefix", rethinkUser.getPrefix(), true)
.addField("Guild-Prefix", rethinkServer.getPrefix(), true); .addField("Guild-Prefix", rethinkServer.getPrefix(), true)
StringBuilder stringBuilder = new StringBuilder(); .addField("Join our Dev Server!", "[Click here!](https://discord.gg/nPwjaJk)", true)
model.getDependencies().forEach( .addField("Github", "[Click here!](https://github.com/BigBotNetwork/Hadder)", false)
dependency -> stringBuilder.append(dependency.getArtifactId()).append(" - ").append(dependency.getVersion()).append("\n") .addField("Twitch", "[Click here!](https://www.twitch.tv/bigbotnetwork)", false);
);
builder.addField("Dependencies", stringBuilder.toString(), false);
StringBuilder devs = new StringBuilder();
//TODO: Fix Mail stuff
model.getDevelopers().forEach(
developer -> devs.append(developer.getId()).append(" - [Website](").append(developer.getUrl()).append("), [E-Mail](https://hax.bigbotnetwork.de/redirect.html?url=mailto:").append(developer.getEmail()).append(")\n")
);
builder.addField("Developer", devs.toString(), false);
builder.addField("Join our Dev Server!", "[Click here!](https://discord.gg/nPwjaJk)", true);
builder.addField("Github", "[Click here!](https://github.com/BigBotNetwork/Hadder)", false);
builder.addField("Twitch", "[Click here!](https://www.twitch.tv/bigbotnetwork)", false);
e.getChannel().sendMessage(builder.build()).queue(); e.getChannel().sendMessage(builder.build()).queue();
} else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) { } else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(e.getGuild().getMembers().size() - 1); int member = new Random().nextInt(e.getGuild().getMembers().size() - 1);

View file

@ -23,19 +23,19 @@ success\! = Success\!
commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.success.title = Avatar of %extra%
commands.fun.avatar.error.title = User not found commands.fun.avatar.error.title = User not found
commands.fun.avatar.error.description = I can not find a user with this id\! commands.fun.avatar.error.description = I can not find a user with this id\!
commands.fun.avatar.help.description = Sends the avatar of the specified Member. 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.error.description = Please try again with another term
commands.fun.gif.help.description = Looks for a GIF on Giphy. commands.fun.gif.help.description = Looks for a GIF on Giphy
commands.fun.meme.success.title = Your random meme\: 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 again later. commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later.
commands.fun.meme.help.description = Sends you a random meme. commands.fun.meme.help.description = Sends you a random meme
commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.fun.clyde.help.description = Sends a message as a webhook named Clyde
commands.general.about.success.title = Hadder - About commands.general.about.success.title = Hadder - About
commands.general.about.success.description = Hadder is an open source Discord bot. 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.title = Support the developers
commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate.
commands.general.about.help.description = Shows information about Hadder. commands.general.about.help.description = Shows information about Hadder
commands.general.equals.string.first.request = Please send me the first String. 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.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.true = Yes\! The first string equals the second string\!
@ -43,24 +43,24 @@ commands.general.equals.string.equals.false = Well yes but actually No. This isn
commands.general.equals.string.first = First string\: commands.general.equals.string.first = First string\:
commands.general.equals.string.second = Second string\: commands.general.equals.string.second = Second string\:
commands.general.equals.string.result = Result\: commands.general.equals.string.result = Result\:
commands.general.equals.help.description = Checks if two strings are equal. commands.general.equals.help.description = Checks if two strings are equal
commands.general.help.description = **Description\:** commands.general.help.description = **Description\:**
commands.general.help.usage = **Usage\:** commands.general.help.usage = **Usage\:**
commands.general.help.example = **Example\:** commands.general.help.example = **Example\:**
commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu\! commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu\!
commands.general.help.help.description = Shows each command and explains its usage. commands.general.help.help.description = Shows each command and explains its usage
commands.general.help.help.label = [CommandName] commands.general.help.help.label = [CommandName]
commands.general.invite.success.title = Invite me\! commands.general.invite.success.title = Invite me\!
commands.general.invite.success.description = [Invite me here\!]%extra% commands.general.invite.success.description = [Invite me here\!]%extra%
commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server
commands.general.ping.help.description = Shows the ping to the Discord API. 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.title = Feedback Topic
commands.misc.feedback.title.request.description = Please send me the 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.title = Feedback Description
commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.description.request.description = Please send me the feedback description now.
commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.feedback.success.title = Feedback successfully sent\!
commands.misc.feedback.help.description = Sends feedback directly to the developers. commands.misc.feedback.help.description = Sends feedback directly to the developers
commands.misc.github.link.title = Link your GitHub Account commands.misc.github.link.title = Link your GitHub Account
commands.misc.github.success.title = Information about %extra% commands.misc.github.success.title = Information about %extra%
commands.misc.github.success.bio = User bio commands.misc.github.success.bio = User bio
@ -76,7 +76,7 @@ commands.misc.github.user.error.title = User doesn't exist
commands.misc.github.user.error.description = I can not find a user named like this\! commands.misc.github.user.error.description = I can not find a user named like this\!
commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.title = Connect your GH account
commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.connect.description = [Please connect your GitHub account here]%extra%
commands.misc.github.help.description = Displays information about a GitHub user profile. 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.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.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 in this Guild. commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild.
@ -86,18 +86,18 @@ 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.number.error.description = This isn't a Number.
commands.misc.screenshare.channel.existing.error = Hol' up 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 in this Guild. commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild.
commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.misc.screenshare.help.description = Shows you the link to share your screen
commands.misc.serverstats.title = Serverstats commands.misc.serverstats.title = Serverstats
commands.misc.serverstats.description = This message contains some information about `%extra%` commands.misc.serverstats.description = This message contains some information about `%extra%`
commands.misc.serverstats.help.description = Shows information about a server. commands.misc.serverstats.help.description = Shows information about a server
commands.misc.profile.error.title = Not found commands.misc.profile.error.title = Not found
commands.misc.profile.error.description = I can't find the specified user. commands.misc.profile.error.description = I can't find the specified user.
commands.misc.profile.help.description = Shows some information about the specified user. commands.misc.profile.help.description = Shows some information about the specified user
commands.misc.code.success.title = Invite code information commands.misc.code.success.title = Invite code information
commands.misc.code.success.description = This message contains some information about the specified invite code. commands.misc.code.success.description = This message contains some information about the specified invite code.
commands.misc.code.error.title = Code not found commands.misc.code.error.title = Code not found
commands.misc.code.error.description = I can't find the specified invite code. commands.misc.code.error.description = I can't find the specified invite code.
commands.misc.code.help.description = Shows information about a invite code. commands.misc.code.help.description = Shows information about a invite code
commands.misc.moveall.success.title = Successfully moved commands.misc.moveall.success.title = Successfully moved
commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\! commands.misc.moveall.success.description = I successfully moved %extra% members. Have fun\!
commands.misc.moveall.error.equals.title = Not twice commands.misc.moveall.error.equals.title = Not twice
@ -106,7 +106,7 @@ commands.misc.moveall.error.source.int.title = Invalid ID
commands.misc.moveall.error.source.int.description = You haven't specified an ID as the source channel. commands.misc.moveall.error.source.int.description = You haven't specified an ID as the source channel.
commands.misc.moveall.error.target.int.title = Invalid ID commands.misc.moveall.error.target.int.title = Invalid ID
commands.misc.moveall.error.target.int.description = You haven't specified an ID as the target channel. commands.misc.moveall.error.target.int.description = You haven't specified an ID as the target channel.
commands.misc.moveall.help.description = Moves all users in the source channel to the target channel. commands.misc.moveall.help.description = Moves all users in the source channel to the target channel
commands.misc.corona.help.description = Shows the newest stats of COVID-19 commands.misc.corona.help.description = Shows the newest stats of COVID-19
commands.moderation.ban.success.title = Successfully banned commands.moderation.ban.success.title = Successfully banned
@ -115,7 +115,7 @@ commands.moderation.ban.error.title = Not possible
commands.moderation.ban.myself.error.description = I can not ban myself\! 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.yourself.error.description = You can not ban yourself\!
commands.moderation.ban.massban.success.description = I successfully banned %extra% members\! commands.moderation.ban.massban.success.description = I successfully banned %extra% members\!
commands.moderation.ban.help.description = Bans one or more users from the server. commands.moderation.ban.help.description = Bans one or more users from the server
commands.moderation.clear.all.success.title = Successfully deleted commands.moderation.clear.all.success.title = Successfully deleted
commands.moderation.clear.all.success.description = I successfully deleted %extra% messages. commands.moderation.clear.all.success.description = I successfully deleted %extra% messages.
commands.moderation.clear.number.error.title = Invalid number commands.moderation.clear.number.error.title = Invalid number
@ -125,11 +125,11 @@ commands.moderation.clear.success.description.singular = Successfully deleted on
commands.moderation.clear.success.description.plural = Successfully deleted %extra% messages. commands.moderation.clear.success.description.plural = Successfully deleted %extra% messages.
commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.title = No messages\!
commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.message.error.description = There are no messages in this channel.
commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.clear.help.description = Deletes the specified number of messages
commands.moderation.prefix.success.title = %extra% Successfully set %extra% commands.moderation.prefix.success.title = %extra% Successfully set %extra%
commands.moderation.prefix.success.description = I successfully set the new prefix for the server to `%extra%`. commands.moderation.prefix.success.description = I successfully set the new prefix for the server to `%extra%`.
commands.moderation.prefix.error.description = The prefix must not contain **"** commands.moderation.prefix.error.description = The prefix must not contain **"**
commands.moderation.prefix.help.description = Sets the Guild-Prefix. commands.moderation.prefix.help.description = Sets the Guild-Prefix
commands.moderation.invitedetect.activate.success.title = Successfully activated commands.moderation.invitedetect.activate.success.title = Successfully activated
commands.moderation.invitedetect.activate.success.description = I successfully activated the invite link detection for this server. commands.moderation.invitedetect.activate.success.description = I successfully activated the invite link detection for this server.
commands.moderation.invitedetect.activate.error.title = Already activated commands.moderation.invitedetect.activate.error.title = Already activated
@ -138,24 +138,24 @@ commands.moderation.invitedetect.deactivate.success.title = Successfully deactiv
commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this server. commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this server.
commands.moderation.invitedetect.deactivate.error.title = Already deactivated commands.moderation.invitedetect.deactivate.error.title = Already deactivated
commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this server. commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this server.
commands.moderation.invitedetect.help.description = Activate or deactivate the Discord invite link detection. commands.moderation.invitedetect.help.description = Activate or deactivate the Discord invite link detection
commands.moderation.kick.success.title = %extra% Successfully kicked %extra% commands.moderation.kick.success.title = %extra% Successfully kicked %extra%
commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.success.description = I successfully kicked %extra%.
commands.moderation.kick.error.title = Not possible commands.moderation.kick.error.title = Not possible
commands.moderation.kick.myself.error.description = I can not kick myself\! 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.yourself.error.description = You can't kick yourself.
commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\!
commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.help.description = Kicks one or more user from the server
commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members.
commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.title = %extra% Successfully nicked %extra%
commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.success.description = I successfully nicked %extra%.
commands.moderation.nick.myself.success.description = I successfully changed my nickname. commands.moderation.nick.myself.success.description = I successfully changed my nickname.
commands.moderation.nick.massnick.success.description = I successfully nicked %extra% Members. commands.moderation.nick.massnick.success.description = I successfully nicked %extra% Members.
commands.moderation.nick.help.description = Rename a one or more user. commands.moderation.nick.help.description = Rename a one or more user
commands.moderation.regionchange.regions.title = All regions commands.moderation.regionchange.regions.title = All regions
commands.moderation.regionchange.success.title = Successfully set region commands.moderation.regionchange.success.title = Successfully set region
commands.moderation.regionchange.success.description = I successfully set the new server region to %extra%. commands.moderation.regionchange.success.description = I successfully set the new server region to %extra%.
commands.moderation.regionchange.help.description = Changes the server region to locked regions. commands.moderation.regionchange.help.description = Changes the server region to locked regions
commands.moderation.role.add.success.title = Successfully added role(s) commands.moderation.role.add.success.title = Successfully added role(s)
commands.moderation.role.add.success.description = I successfully added %extra% roles to %extra_two% members. commands.moderation.role.add.success.description = I successfully added %extra% roles to %extra_two% members.
commands.moderation.role.remove.success.title = Successfully removed role(s) commands.moderation.role.remove.success.title = Successfully removed role(s)
@ -194,7 +194,7 @@ commands.moderation.rules.error.interact.title = Can't interact
commands.moderation.rules.error.interact.description = I can not interact with the specified role. Make sure my role is higher than the specified role. commands.moderation.rules.error.interact.description = I can not interact with the specified role. Make sure my role is higher than the specified role.
commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.rules.help.description = Setup the rules on your Discord server
commands.moderation.starboard.success.title = Successfully set the Channel\! commands.moderation.starboard.success.title = Successfully set the Channel\!
commands.moderation.starboard.help.description = Sets the starboard channel. commands.moderation.starboard.help.description = Sets the starboard channel
commands.moderation.editrules.channel.title = Rules channel commands.moderation.editrules.channel.title = Rules channel
commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention
commands.moderation.editrules.channel.found.error.title = Channel not found commands.moderation.editrules.channel.found.error.title = Channel not found
@ -207,11 +207,11 @@ commands.moderation.editrules.error.title = No rules
commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules
commands.moderation.editrules.success.title = Successfully changed commands.moderation.editrules.success.title = Successfully changed
commands.moderation.editrules.success.description = I successfully changed the rules commands.moderation.editrules.success.description = I successfully changed the rules
commands.moderation.editrules.help.description = Edits the rules message. commands.moderation.editrules.help.description = Edits the rules message
commands.music.bass.error.connected.title = No channel commands.music.bass.error.connected.title = No channel
commands.music.bass.error.connected.description = You have to be in the same voice channel as the bot to change the bass level. commands.music.bass.error.connected.description = You have to be in the same voice channel as the bot to change the bass level.
commands.music.bass.help.description = Change the bass for the song which is played at the moment. commands.music.bass.help.description = Change the bass for the song which is played at the moment
commands.music.join.success.title = Successfully connected commands.music.join.success.title = Successfully connected
commands.music.join.success.description = I successfully connected to %extra%. commands.music.join.success.description = I successfully connected to %extra%.
commands.music.join.error.connecting.already.title = Already connected commands.music.join.error.connecting.already.title = Already connected
@ -222,7 +222,7 @@ commands.music.join.error.channel.title = No Voice Channel
commands.music.join.error.channel.description = You aren't in a Voice Channel. commands.music.join.error.channel.description = You aren't in a Voice Channel.
commands.music.join.error.permission.title = No permission commands.music.join.error.permission.title = No permission
commands.music.join.error.permission.description = I am not allowed to join your voice channel. commands.music.join.error.permission.description = I am not allowed to join your voice channel.
commands.music.join.help.description = Joins your voice channel. commands.music.join.help.description = Joins your voice channel
commands.music.play.load.title = %extra% Now loading %extra% commands.music.play.load.title = %extra% Now loading %extra%
commands.music.play.load.description = Trying to load the song... commands.music.play.load.description = Trying to load the song...
commands.music.play.success.loading.title = %extra% Now playing %extra% commands.music.play.success.loading.title = %extra% Now playing %extra%
@ -239,67 +239,67 @@ commands.music.play.success.unpause.title = Successfully continued
commands.music.play.success.unpause.description = I successfully continued playing the song. commands.music.play.success.unpause.description = I successfully continued playing the song.
commands.music.play.error.connected.title = No channel commands.music.play.error.connected.title = No channel
commands.music.play.error.connected.description = You have to be in the same voice channel as the bot to continue the song. commands.music.play.error.connected.description = You have to be in the same voice channel as the bot to continue the song.
commands.music.play.help.description = Plays the specified song. commands.music.play.help.description = Plays the specified song
commands.music.stop.success.title = Successfully stopped commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped the song. commands.music.stop.success.description = I successfully stopped the song.
commands.music.stop.error.connected.title = No channel commands.music.stop.error.connected.title = No channel
commands.music.stop.error.connected.description = You have to be in the same voice channel as the bot to stop the song. commands.music.stop.error.connected.description = You have to be in the same voice channel as the bot to stop the song.
commands.music.stop.help.description = Stops the song. commands.music.stop.help.description = Stops the song
commands.music.info.success.title = Track info commands.music.info.success.title = Track info
commands.music.info.error.title = No playing track commands.music.info.error.title = No playing track
commands.music.info.error.description = I am not playing anything at the moment commands.music.info.error.description = I am not playing anything at the moment
commands.music.info.help.description = Shows information about the playing song. commands.music.info.help.description = Shows information about the playing song
commands.music.queue.error.title = No queue commands.music.queue.error.title = No queue
commands.music.queue.error.description = There are no queued songs at the moment commands.music.queue.error.description = There are no queued songs at the moment
commands.music.queue.success.title = Queue %extra% commands.music.queue.success.title = Queue %extra%
commands.music.queue.success.description = This is the queue\: \n %extra% commands.music.queue.success.description = This is the queue\: \n %extra%
commands.music.queue.help.description = Shows the music queue. commands.music.queue.help.description = Shows the music queue
commands.music.skip.success.title = Successfully skipped commands.music.skip.success.title = Successfully skipped
commands.music.skip.success.description = I successfully skipped to the next song commands.music.skip.success.description = I successfully skipped to the next song
commands.music.skip.error.connected.title = No channel commands.music.skip.error.connected.title = No channel
commands.music.skip.error.connected.description = You have to be in the same voice channel as the bot to skip the song. commands.music.skip.error.connected.description = You have to be in the same voice channel as the bot to skip the song.
commands.music.skip.help.description = Skips the currently playing song. commands.music.skip.help.description = Skips the currently playing song
commands.music.volume.success.title = Successfully set commands.music.volume.success.title = Successfully set
commands.music.volume.success.description = I successfully set the new volume to %extra% commands.music.volume.success.description = I successfully set the new volume to %extra%
commands.music.volume.error.int.title = Invalid number commands.music.volume.error.int.title = Invalid number
commands.music.volume.error.int.description = The volume have to be between 1 and 200 commands.music.volume.error.int.description = The volume have to be between 1 and 200
commands.music.volume.error.connected.title = No channel commands.music.volume.error.connected.title = No channel
commands.music.volume.error.connected.description = You have to be in the same voice channel as the bot to change the volume. commands.music.volume.error.connected.description = You have to be in the same voice channel as the bot to change the volume.
commands.music.volume.help.description = Change the volume of the music. commands.music.volume.help.description = Change the volume of the music
commands.music.pause.success.title = Successfully paused commands.music.pause.success.title = Successfully paused
commands.music.pause.success.description = I successfully paused the played song. commands.music.pause.success.description = I successfully paused the played song.
commands.music.pause.error.paused.title = Already paused commands.music.pause.error.paused.title = Already paused
commands.music.pause.error.paused.description = The song is already paused. You can continue playing it with %extra%play commands.music.pause.error.paused.description = The song is already paused. You can continue playing it with %extra%play
commands.music.pause.error.connected.title = No channel commands.music.pause.error.connected.title = No channel
commands.music.pause.error.connected.description = You have to be in the same voice channel as the bot to pause the song. commands.music.pause.error.connected.description = You have to be in the same voice channel as the bot to pause the song.
commands.music.pause.help.description = Pause the playing song. commands.music.pause.help.description = Pause the playing song
commands.music.loop.success.loop.title = Successfully activated commands.music.loop.success.loop.title = Successfully activated
commands.music.loop.success.loop.description = I will now repeat the currently played song. commands.music.loop.success.loop.description = I will now repeat the currently played song.
commands.music.loop.success.unloop.title = Successfully deactivated commands.music.loop.success.unloop.title = Successfully deactivated
commands.music.loop.success.unloop.description = I will no longer repeat the currently played song. commands.music.loop.success.unloop.description = I will no longer repeat the currently played song.
commands.music.loop.error.connected.title = No channel commands.music.loop.error.connected.title = No channel
commands.music.loop.error.connected.description = You have to be in the same voice channel as the bot to set the repeat status. commands.music.loop.error.connected.description = You have to be in the same voice channel as the bot to set the repeat status.
commands.music.loop.help.description = Repeats a song/queue. commands.music.loop.help.description = Repeats a song/queue
commands.music.echo.success.title = Successfully activated commands.music.echo.success.title = Successfully activated
commands.music.echo.success.description = I will now repeat everything I can hear in your voice channel commands.music.echo.success.description = I will now repeat everything I can hear in your voice channel
commands.music.echo.help.description = Sends your voice through Hadder. commands.music.echo.help.description = Sends your voice through Hadder
commands.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.gif.error.title = GIF not showing? Click here
commands.nsfw.img.error.title = Image not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here
commands.nsfw.anal.help.description = Shows a random anal gif. commands.nsfw.anal.help.description = Shows a random anal gif
commands.nsfw.bdsm.help.description = Shows a random BDSM picture commands.nsfw.bdsm.help.description = Shows a random BDSM picture
commands.nsfw.blowjob.help.description = Shows a random Blowjob picture commands.nsfw.blowjob.help.description = Shows a random Blowjob picture
commands.nsfw.boobs.help.description = Shows a random boob gif. commands.nsfw.boobs.help.description = Shows a random boob gif
commands.nsfw.cum.help.description = Shows a random cum gif. commands.nsfw.cum.help.description = Shows a random cum gif
commands.nsfw.erotic.help.description = Shows a random erotic picture commands.nsfw.erotic.help.description = Shows a random erotic picture
commands.nsfw.feet.help.description = Shows a random feet gif. commands.nsfw.feet.help.description = Shows a random feet gif
commands.nsfw.fingering.help.description = Shows a random fingering gif. commands.nsfw.fingering.help.description = Shows a random fingering gif
commands.nsfw.linking.help.description = Shows a random licking gif. commands.nsfw.linking.help.description = Shows a random licking gif
commands.nsfw.porn.help.description = Shows a random porn gif. commands.nsfw.porn.help.description = Shows a random porn gif
commands.nsfw.pussy.help.description = Shows a random pussy gif. commands.nsfw.pussy.help.description = Shows a random pussy gif
commands.nsfw.randomporn.help.description = Shows a completely random porn gif. commands.nsfw.randomporn.help.description = Shows a completely random porn gif
commands.nsfw.solo.help.description = Shows a random solo gif. commands.nsfw.solo.help.description = Shows a random solo gif
commands.nsfw.spank.help.description = Shows a random spank gif. commands.nsfw.spank.help.description = Shows a random spank gif
commands.nsfw.trans.help.description = Shows a random trans picture commands.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command commands.owner.eval.success.title = Eval Command
@ -327,7 +327,7 @@ commands.settings.language.success.title = Language set
commands.settings.language.success.description = `%extra%` is your new language now. commands.settings.language.success.description = `%extra%` is your new language now.
commands.settings.language.error.title = Language not found commands.settings.language.error.title = Language not found
commands.settings.language.error.description = Please choose one of the following language codes\: %extra% commands.settings.language.error.description = Please choose one of the following language codes\: %extra%
commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.description = Sets the new primary language for a user
commands.settings.prefix.success.title = Successfully set prefix commands.settings.prefix.success.title = Successfully set prefix
commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`.
commands.settings.prefix.help.description = Sets a new prefix. commands.settings.prefix.help.description = Sets a new prefix