diff --git a/README.md b/README.md
index 0ae7adc..a3aad5d 100644
--- a/README.md
+++ b/README.md
@@ -1,52 +1,61 @@
-# Hadder
-
-Hadder Discord is a multi-purpose Discord bot with 100% uptime.
-
-
-[](https://github.com/BigBotNetwork/Hadder)
-[](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade)
-[](https://www.codefactor.io/repository/github/bigbotnetwork/hadder)
-[](https://bbn.crowdin.com/hadder)
-[](https://github.com/BigBotNetwork/Hadder/issues)
-[](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE)
-[](https://wakatime.com/badge/github/BigBotNetwork/Hadder)
-
-## Hadder Team
-### Developer
-Skidder#6775
-Hax#6775
-
-## A few commands
-| **Command** | **Description** |
-|----------------|---------------------------------------------------------------|
-| h.help | Shows each command and explains its usage. |
-| h.about | Shows information about Hadder. |
-| h.equals | Checks if two strings are the same. |
-| h.invite | Shows the invite link to invite Hadder to your server. |
-| h.ping | Shows the ping to the Discord API. |
-| h.avatar | Sends the avatar of the specified member. |
-| h.gif | Looks for a GIF on Giphy. |
-| h.meme | Sends you a random meme. |
-| h.clyde | Sends a message as a webhook named Clyde. |
-| h.feedback | Sends feedback directly to the developers. |
-| h.github | Displays information about a GitHub user profile. |
-| h.screenshare | Shows you the link to share your screen. |
-| h.ban | Bans one or more users from the server. |
-| h.clear | Deletes the specified number of messages. |
-| h.prefix | Sets the Guild-Prefix. |
-| h.invitedetect | Activate or deactivate the Discord invite link detection. |
-| h.kick | Kicks one or more user from the server. |
-| h.nick | Rename a one or more user. |
-| 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.rules | Setup the rules on your Discord server |
-| h.starboard | Sets the starboard channel. |
-| h.editrules | Edits the rules message. |
-| h.join | Joins your voice channel. |
-| h.leave | Leaves your voice channel. |
-| h.play | Plays the specified song. |
-| h.stop | Stops the song. |
-| 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. |
+# Hadder
+
+Hadder Discord is a multi-purpose Discord bot with 100% uptime.
+
+
+[](https://github.com/BigBotNetwork/Hadder)
+[](https://www.codacy.com/gh/BigBotNetwork/Hadder?utm_source=github.com&utm_medium=referral&utm_content=BigBotNetwork/Hadder&utm_campaign=Badge_Grade)
+[](https://www.codefactor.io/repository/github/bigbotnetwork/hadder)
+[](https://bbn.crowdin.com/hadder)
+[](https://github.com/BigBotNetwork/Hadder/issues)
+[](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE)
+[](https://wakatime.com/badge/github/BigBotNetwork/Hadder)
+
+## Hadder Team
+### Developer
+Skidder#6775
+Hax#6775
+
+## A few commands
+| **Command** | **Description** |
+|----------------|---------------------------------------------------------------|
+| h.about | Shows information about Hadder |
+| h.avatar | Sends the avatar of the specified Member |
+| h.ban | Bans one or more users from the server |
+| h.bass | Change the bass for the song which is played at the moment |
+| h.clear | Deletes the specified number of messages |
+| h.clyde | Sends a message as a webhook named Clyde |
+| h.code | Shows information about a invite code |
+| h.corona | Shows the newest stats of COVID-19 |
+| h.echo | Sends your voice through Hadder |
+| h.editrules | Edits the rules message |
+| h.equals | Checks if two strings are equal |
+| h.feedback | Sends feedback directly to the developers |
+| h.gif | Looks for a GIF on Giphy |
+| h.github | Displays information about a GitHub user profile |
+| h.help | Shows each command and explains its usage |
+| h.info | Shows information about the playing song |
+| h.invite | Shows the invitation link to invite Hadder to your server |
+| h.invitedetect | Activate or deactivate the Discord invite link detection |
+| 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.rules | Setup the rules on your Discord server |
+| h.screenshare | Shows you the link to share your screen |
+| h.serverstats | Shows information about a server |
+| h.skip | Skips the currently playing song |
+| h.starboard | Sets the starboard channel |
+| h.stop | Stops the song |
+| h.volume | Change the volume of the music |
diff --git a/pom.xml b/pom.xml
index 28a2f3f..f37520e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
4.0.0
Hadder
Hadder
- 1.3.18
+ 1.3.19
Hadder
2019
Hadder is a multi-purpose Discord bot.
diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java
index 447e8d0..0ce84d5 100644
--- a/src/main/java/com/bbn/hadder/Hadder.java
+++ b/src/main/java/com/bbn/hadder/Hadder.java
@@ -137,7 +137,7 @@ public class Hadder {
new CoronaCommand()), config, helpCommand);
builder.addEventListeners(
- new MentionListener(rethink),
+ new MentionListener(rethink, config),
new PrivateMessageListener(rethink),
new CommandListener(rethink, commandHandler, audioManager),
new GuildListener(rethink, config),
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java
index 99f5f48..8b876d1 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java
@@ -75,7 +75,7 @@ public class InviteDetectCommand implements Command {
@Override
public String[] labels() {
- return new String[]{"invitedetect", "detectinvite"};
+ return new String[]{"invitedetect", "detectinvite", "invite-detect"};
}
@Override
diff --git a/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java b/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java
index d385d22..4d5da6c 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/BlacklistCommand.java
@@ -45,7 +45,7 @@ public class BlacklistCommand implements Command {
String blacklisted = e.getRethinkUser().getBlacklisted();
List commands = new ArrayList<>();
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(",")));
LinkedHashSet hashSet = new LinkedHashSet<>(commands);
diff --git a/src/main/java/com/bbn/hadder/listener/MentionListener.java b/src/main/java/com/bbn/hadder/listener/MentionListener.java
index 25e9fc6..81c7c8f 100644
--- a/src/main/java/com/bbn/hadder/listener/MentionListener.java
+++ b/src/main/java/com/bbn/hadder/listener/MentionListener.java
@@ -16,6 +16,7 @@
package com.bbn.hadder.listener;
+import com.bbn.hadder.core.Config;
import com.bbn.hadder.db.Rethink;
import com.bbn.hadder.db.RethinkServer;
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.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.kohsuke.github.GHRepository;
+import org.kohsuke.github.GitHub;
import javax.annotation.Nonnull;
import java.io.IOException;
@@ -34,9 +34,11 @@ import java.util.Random;
public class MentionListener extends ListenerAdapter {
private Rethink rethink;
+ private Config config;
- public MentionListener(Rethink rethink) {
+ public MentionListener(Rethink rethink, Config config) {
this.rethink = rethink;
+ this.config = config;
}
@Override
@@ -47,32 +49,24 @@ public class MentionListener extends ListenerAdapter {
if (e.isFromType(ChannelType.TEXT) && (e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention()) ||
e.getMessage().getContentRaw().equals(e.getGuild().getSelfMember().getAsMention().replace("@", "@!")))) {
- MavenXpp3Reader reader = new MavenXpp3Reader();
- Model model = null;
+ String version = null;
+
try {
- model = reader.read(getClass().getResourceAsStream("pom.xml"));
- } catch (IOException | XmlPullParserException ex) {
- ex.printStackTrace();
+ GitHub connection = GitHub.connectUsingOAuth(config.getGitHubToken());
+ GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder");
+ version = Hadder.getLatestRelease().getTagName();
+ } catch (IOException ioException) {
+ ioException.printStackTrace();
}
+
EmbedBuilder builder = new EmbedBuilder()
.setTitle("Hi!")
- .addField("Version", model.getVersion(), false)
+ .addField("Version", version, false)
.addField("User-Prefix", rethinkUser.getPrefix(), true)
- .addField("Guild-Prefix", rethinkServer.getPrefix(), true);
- StringBuilder stringBuilder = new StringBuilder();
- model.getDependencies().forEach(
- dependency -> stringBuilder.append(dependency.getArtifactId()).append(" - ").append(dependency.getVersion()).append("\n")
- );
- 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);
+ .addField("Guild-Prefix", rethinkServer.getPrefix(), true)
+ .addField("Join our Dev Server!", "[Click here!](https://discord.gg/nPwjaJk)", true)
+ .addField("Github", "[Click here!](https://github.com/BigBotNetwork/Hadder)", false)
+ .addField("Twitch", "[Click here!](https://www.twitch.tv/bigbotnetwork)", false);
e.getChannel().sendMessage(builder.build()).queue();
} else if (e.getMessage().getContentRaw().equalsIgnoreCase("@someone")) {
int member = new Random().nextInt(e.getGuild().getMembers().size() - 1);
diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties
index 98016c1..3577e78 100644
--- a/src/main/resources/Translations/Translations_en.properties
+++ b/src/main/resources/Translations/Translations_en.properties
@@ -23,19 +23,19 @@ success\! = Success\!
commands.fun.avatar.success.title = Avatar of %extra%
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.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 = Looks for a GIF on Giphy.
+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 = Looks 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 again later.
-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.meme.help.description = Sends you a random meme
+commands.fun.clyde.help.description = Sends a message as a webhook named Clyde
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.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.second.request = Please send me 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.second = Second string\:
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.usage = **Usage\:**
commands.general.help.example = **Example\:**
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.invite.success.title = Invite me\!
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.ping.help.description = Shows the ping to the Discord API.
+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.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.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.success.title = Information about %extra%
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.connect.title = Connect your GH account
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.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.
@@ -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.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.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.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.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.description = This message contains some information about the specified invite code.
commands.misc.code.error.title = Code not found
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.description = I successfully moved %extra% members. Have fun\!
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.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.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.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.yourself.error.description = You can not ban yourself\!
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.description = I successfully deleted %extra% messages.
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.message.error.title = No messages\!
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.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.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.description = I successfully activated the invite link detection for this server.
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.error.title = Already deactivated
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.description = I successfully kicked %extra%.
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 %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.nick.success.title = %extra% 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.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.success.title = Successfully set region
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.description = I successfully added %extra% roles to %extra_two% members.
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.help.description = Setup the rules on your Discord server
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.description = Please send me the channel with the rules as mention
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.success.title = Successfully changed
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.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.description = I successfully connected to %extra%.
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.permission.title = No permission
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.description = Trying to load the song...
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.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.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.description = I successfully stopped the song.
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.help.description = Stops the song.
+commands.music.stop.help.description = Stops the song
commands.music.info.success.title = Track info
commands.music.info.error.title = No playing track
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.description = There are no queued songs at the moment
commands.music.queue.success.title = Queue %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.description = I successfully skipped to the next song
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.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.description = I successfully set the new volume to %extra%
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.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.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.description = I successfully paused the played song.
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.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.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.description = I will now repeat the currently played song.
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.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.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.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.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.blowjob.help.description = Shows a random Blowjob picture
-commands.nsfw.boobs.help.description = Shows a random boob gif.
-commands.nsfw.cum.help.description = Shows a random cum gif.
+commands.nsfw.boobs.help.description = Shows a random boob gif
+commands.nsfw.cum.help.description = Shows a random cum gif
commands.nsfw.erotic.help.description = Shows a random erotic picture
-commands.nsfw.feet.help.description = Shows a random feet gif.
-commands.nsfw.fingering.help.description = Shows a random fingering gif.
-commands.nsfw.linking.help.description = Shows a random licking gif.
-commands.nsfw.porn.help.description = Shows a random porn gif.
-commands.nsfw.pussy.help.description = Shows a random pussy gif.
-commands.nsfw.randomporn.help.description = Shows a completely random porn gif.
-commands.nsfw.solo.help.description = Shows a random solo gif.
-commands.nsfw.spank.help.description = Shows a random spank gif.
+commands.nsfw.feet.help.description = Shows a random feet gif
+commands.nsfw.fingering.help.description = Shows a random fingering gif
+commands.nsfw.linking.help.description = Shows a random licking gif
+commands.nsfw.porn.help.description = Shows a random porn gif
+commands.nsfw.pussy.help.description = Shows a random pussy gif
+commands.nsfw.randomporn.help.description = Shows a completely random porn gif
+commands.nsfw.solo.help.description = Shows a random solo gif
+commands.nsfw.spank.help.description = Shows a random spank gif
commands.nsfw.trans.help.description = Shows a random trans picture
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.error.title = Language not found
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.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