diff --git a/README.md b/README.md
index aeba086..20d142d 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Hadder Discord is a multi-purpose Discord bot with 100% uptime.
[](https://github.com/BigBotNetwork/Hadder/issues)
[](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE)
-
+[](https://discordextremelist.xyz/bots/Hadder)
[](https://top.gg/bot/637002314162372639)
[](https://botlist.space/bot/637002314162372639?utm_source=bls&utm_medium=widget&utm_campaign=637002314162372639)
diff --git a/pom.xml b/pom.xml
index c4f89c0..920716f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
net.dv8tionJDA
- 4.1.0_87
+ 4.1.0_88org.json
@@ -31,16 +31,6 @@
rethinkdb-driver2.3.3
-
- com.google.code.gson
- gson
- 2.8.6
-
-
- org.slf4j
- slf4j-api
- 1.7.30
- org.slf4jslf4j-simple
@@ -61,7 +51,6 @@
lavaplayer1.3.32
-
@@ -83,10 +72,6 @@
maven-resources-plugin3.1.0
-
- maven-compiler-plugin
- 3.8.1
- maven-surefire-plugin2.22.2
@@ -125,6 +110,7 @@
org.apache.maven.pluginsmaven-compiler-plugin
+ 3.8.11313
diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java
index 7e69d02..d98da1a 100644
--- a/src/main/java/com/bbn/hadder/Hadder.java
+++ b/src/main/java/com/bbn/hadder/Hadder.java
@@ -42,7 +42,6 @@ public class Hadder {
builder.setToken(config.getBotToken());
HelpCommand helpCommand = new HelpCommand();
-
AudioManager audioManager = new AudioManager();
CommandHandler commandHandler = new CommandHandler(
@@ -98,6 +97,7 @@ public class Hadder {
new InfoCommand(),
new SkipCommand(),
new EditRulesCommand(),
+ new VolumeCommand(),
new StopCommand()), config, helpCommand);
builder.addEventListeners(
@@ -109,7 +109,7 @@ public class Hadder {
new InviteLinkListener(rethink),
new RulesListener(rethink),
new StarboardListener(rethink),
- new VoiceLeaveListener());
+ new VoiceLeaveListener(audioManager));
try {
shardManager = builder.build();
diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java
index f16baa2..6dd6f18 100644
--- a/src/main/java/com/bbn/hadder/audio/AudioManager.java
+++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java
@@ -10,7 +10,6 @@ import com.sedmelluq.discord.lavaplayer.source.AudioSourceManagers;
import com.sedmelluq.discord.lavaplayer.tools.FriendlyException;
import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist;
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
-import com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
@@ -26,27 +25,17 @@ import java.util.concurrent.TimeUnit;
public class AudioManager {
+ public Map> players = new HashMap<>();
+ private final AudioPlayerManager myManager = new DefaultAudioPlayerManager();
+
public AudioManager() {
AudioSourceManagers.registerRemoteSources(myManager);
}
- public Map> players = new HashMap<>();
- private final AudioPlayerManager myManager = new DefaultAudioPlayerManager();
-
public boolean hasPlayer(Guild guild) {
return players.containsKey(guild.getId());
}
- public void removePlayer(Guild g) {
- System.out.println(players.toString());
- players.remove(g.getId());
- System.out.println(players.toString());
- }
-
- public Map> getPlayers () {
- return players;
- }
-
public AudioPlayer getPlayer(Guild guild) {
AudioPlayer p;
if (hasPlayer(guild)) {
@@ -98,7 +87,15 @@ public class AudioManager {
} else if (playlist.isSearchResult()) {
trackLoaded(playlist.getTracks().get(0));
} else {
- event.getTextChannel().sendMessage("PL loaded :D").queue();
+ for (int i = 0; i < Math.min(playlist.getTracks().size(), 69); i++) {
+ getTrackManager(guild).queue(playlist.getTracks().get(i), event.getMember());
+ }
+ msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
+ "commands.music.play.success.loading.title", "⏯",
+ "", "")
+ .addField(event.getMessageEditor().getTerm("commands.music.play.success.title"), playlist.getName(), true)
+ .addField(event.getMessageEditor().getTerm("commands.music.play.success.tracks"), String.valueOf(playlist.getTracks().size()), true)
+ .build()).queue();
}
}
@@ -128,24 +125,8 @@ public class AudioManager {
return getTrackManager(member.getGuild()).getTrackInfo(getPlayer(member.getGuild()).getPlayingTrack()).getAuthor().equals(member);
}
- public boolean isIdle(CommandEvent event) {
- if (!hasPlayer(event.getGuild()) || getPlayer(event.getGuild()).getPlayingTrack() == null) {
- event.getTextChannel().sendMessage(" Idle no song lul :D").queue();
- return true;
- }
- return false;
- }
-
public void forceSkipTrack(CommandEvent event) {
getPlayer(event.getGuild()).stopTrack();
- event.getTextChannel().sendMessage("Skipped boyy :D").queue();
- }
-
- public String buildQueueMessage(AudioInfo info) {
- AudioTrackInfo trackInfo = info.getTrack().getInfo();
- String title = trackInfo.title;
- long length = trackInfo.length;
- return "`[ " + getTimestamp(length) + " ]` " + title + "\n";
}
public String getTimestamp(long milis) {
diff --git a/src/main/java/com/bbn/hadder/commands/Command.java b/src/main/java/com/bbn/hadder/commands/Command.java
index c1e87c3..83132c0 100644
--- a/src/main/java/com/bbn/hadder/commands/Command.java
+++ b/src/main/java/com/bbn/hadder/commands/Command.java
@@ -6,7 +6,12 @@ package com.bbn.hadder.commands;
public interface Command {
void executed(String[] args, CommandEvent event);
+
String[] labels();
+
String description();
+
String usage();
+
+ String example();
}
diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java
index 6e75d45..dc6d222 100644
--- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java
+++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java
@@ -9,7 +9,6 @@ import com.bbn.hadder.utils.EventWaiter;
import com.bbn.hadder.utils.MessageEditor;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.entities.Message;
-import net.dv8tion.jda.api.events.Event;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import javax.annotation.Nonnull;
diff --git a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java
index 9bb48f9..e251c95 100644
--- a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java
@@ -66,6 +66,11 @@ public class AvatarCommand implements Command {
@Override
public String usage() {
- return "user/id";
+ return "[User]";
+ }
+
+ @Override
+ public String example() {
+ return "@Skidder";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java
index 135ff57..26d9070 100644
--- a/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/fun/ClydeCommand.java
@@ -53,6 +53,7 @@ public class ClydeCommand implements Command {
e.printStackTrace();
}
webhook.delete().queue();
+ event.getMessage().delete().queue();
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
@@ -72,6 +73,11 @@ public class ClydeCommand implements Command {
@Override
public String usage() {
- return "content";
+ return "[Content]";
+ }
+
+ @Override
+ public String example() {
+ return "Hey I am Clyde";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
index 760c139..78d70fd 100644
--- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java
@@ -58,6 +58,11 @@ public class GifCommand implements Command {
@Override
public String usage() {
- return "searchterm";
+ return "[Term]";
+ }
+
+ @Override
+ public String example() {
+ return "Cute cat";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java
index 2c1918b..b9c3e0c 100644
--- a/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java
@@ -57,6 +57,11 @@ public class MemeCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java b/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java
index 3800836..be5d20d 100644
--- a/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java
@@ -34,6 +34,11 @@ public class AboutCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java
index f2772e3..e3380f5 100644
--- a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java
@@ -50,6 +50,11 @@ public class EqualsCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java
index c564410..8da4db5 100644
--- a/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/general/HelpCommand.java
@@ -59,14 +59,20 @@ public class HelpCommand implements Command {
public void sendHelp(Command cmd, CommandEvent event) {
if (!cmd.getClass().getPackageName().endsWith("owner") || (cmd.getClass().getPackageName().endsWith("owner") &&
(event.getAuthor().getId().equals("477141528981012511") || event.getAuthor().getId().equals("261083609148948488")))) {
- String name = cmd.labels()[0];
+ String name = labels()[0];
+ StringBuilder b = new StringBuilder();
+ b.append(event.getMessageEditor().getTerm("commands.general.help.description")).append(" ").append(event.getMessageEditor().getTerm(cmd.description())).append("\n");
+ if (cmd.usage() != null) {
+ b.append(event.getMessageEditor().getTerm("commands.general.help.usage")).append(" ").append(event.getRethink().getGuildPrefix(event.getGuild().getId())).append(name).append(" ").append(cmd.usage()).append("\n");
+ }
+ if (cmd.example() != null) {
+ b.append(event.getMessageEditor().getTerm("commands.general.help.example")).append(" ").append(event.getRethink().getGuildPrefix(event.getGuild().getId())).append(name).append(" ").append(cmd.example());
+ }
event.getChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.INFO, "", cmd.description())
- .setTitle(name.replaceFirst(String.valueOf(name.charAt(0)), String.valueOf(name.charAt(0)).toUpperCase()))
- .addField(MessageEditor.getTerm(event, "commands.general.help.field.usage", "", ""),
- event.getRethink().getUserPrefix(event.getAuthor().getId()) + cmd.labels()[0] + " " + event.getMessageEditor().getTerm(cmd.usage()), false)
+ MessageEditor.MessageType.INFO)
+ .setTitle(cmd.labels()[0])
+ .setDescription(b.toString())
.build()).queue();
-
}
}
@@ -82,6 +88,11 @@ public class HelpCommand implements Command {
@Override
public String usage() {
- return "commands.general.help.help.label";
+ return "[Command name]";
+ }
+
+ @Override
+ public String example() {
+ return "ban";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java b/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java
index cac20c5..8d5a65c 100644
--- a/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/general/InviteCommand.java
@@ -37,6 +37,11 @@ public class InviteCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/general/PingCommand.java b/src/main/java/com/bbn/hadder/commands/general/PingCommand.java
index 8317a45..09d2ebe 100644
--- a/src/main/java/com/bbn/hadder/commands/general/PingCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/general/PingCommand.java
@@ -31,6 +31,11 @@ public class PingCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java
index a84d9f3..fb8cc4f 100644
--- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java
@@ -65,6 +65,11 @@ public class FeedbackCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java
index 6547861..906798e 100644
--- a/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/misc/GitHubCommand.java
@@ -67,12 +67,15 @@ public class GitHubCommand implements Command {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
MessageEditor.MessageType.ERROR,
- "",
+ "commands.misc.github.api.error.title",
"commands.misc.github.api.error.description")
.build()
).queue();
} catch (JSONException e) {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "","commands.misc.github.user.error.description").build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
+ MessageEditor.MessageType.ERROR,
+ "commands.misc.github.user.error.title",
+ "commands.misc.github.user.error.description").build()).queue();
}
}
} else {
@@ -99,6 +102,11 @@ public class GitHubCommand implements Command {
@Override
public String usage() {
- return "username";
+ return "[GH name]";
+ }
+
+ @Override
+ public String example() {
+ return "GregTCLTK";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java
index 9077d04..8f13cc5 100644
--- a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java
@@ -16,31 +16,25 @@ public class ScreenShareCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length>0) {
- if (args[0].matches("[0-9]*")&&args.length==1) {
- for (VoiceChannel vc : event.getGuild().getVoiceChannels()) {
- try {
- if (vc.getIdLong() == Long.parseLong(args[0])) {
- event.getChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.INFO,
- "commands.misc.screenshare.success.title", "")
- .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue();
- return;
- }
- } catch (NumberFormatException e) {
- event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.id.error.title", "commands.misc.screenshare.id.error.description").build()).queue();
- event.getHelpCommand().sendHelp(this, event);
- return;
- }
+ if (args[0].matches("[0-9]*") && args.length==1 && args[0].length() == 18) {
+ if (event.getGuild().getVoiceChannelById(args[0]) != null) {
+ event.getChannel().sendMessage(event.getMessageEditor().getMessage(
+ MessageEditor.MessageType.INFO,
+ "commands.misc.screenshare.success.title", "")
+ .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + args[0] + "/").build()).queue();
+ } else {
+ event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.id.error.title", "commands.misc.screenshare.id.error.description").build()).queue();
+ event.getHelpCommand().sendHelp(this, event);
}
} else {
List vcs = event.getGuild().getVoiceChannelsByName(String.join(" ", args), true);
if (vcs.size() > 1) {
- EmbedBuilder eb = event.getMessageEditor().getMessage(MessageType.ERROR, "commands.misc.screenshare.channel.error.title", "commands.misc.screenshare.channel.error.description");
+ EmbedBuilder eb = event.getMessageEditor().getMessage(MessageType.WARNING, "commands.misc.screenshare.channel.error.title", "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);
}
- event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING).build()).queue();
+ event.getChannel().sendMessage(eb.build()).queue();
new EventWaiter().newOnMessageEventWaiter(msgevent -> {
try {
int i = Integer.parseInt(msgevent.getMessage().getContentRaw());
@@ -48,7 +42,6 @@ public class ScreenShareCommand implements Command {
event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.misc.screenshare.success.title", "")
.setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vcs.get(i).getId() + "/").build()).queue();
} else {
-
event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.number.error.title", "").build()).queue();
event.getHelpCommand().sendHelp(this, event);
}
@@ -82,6 +75,11 @@ public class ScreenShareCommand implements Command {
@Override
public String usage() {
- return "vc-name/id";
+ return "[Channel]";
+ }
+
+ @Override
+ public String example() {
+ return "Gaming-Lounge";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java
index de948d9..98feb04 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java
@@ -35,14 +35,14 @@ public class BanCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.ban.error.title",
"commands.moderation.ban.myself.error.description").build()).queue();
}
} else {
event.getTextChannel().sendMessage
(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.ban.error.title",
"commands.moderation.ban.yourself.error.description").build()).queue();
}
@@ -61,13 +61,13 @@ public class BanCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.ban.error.title",
"commands.moderation.ban.myself.error.description").build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.ban.error.title",
"commands.moderation.ban.yourself.error.description").build()).queue();
}
@@ -92,6 +92,11 @@ public class BanCommand implements Command {
@Override
public String usage() {
- return "user";
+ return "[User(s)]";
+ }
+
+ @Override
+ public String example() {
+ return "@Skidder";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java
index 2e9bc1f..0dbf1da 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java
@@ -45,7 +45,7 @@ public class ClearCommand implements Command {
try {
int nbToDelete = Integer.parseInt(args[0]);
if (nbToDelete < 1 || nbToDelete > 99) {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "commands.moderation.clear.number.error.description").build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.clear.number.error.title", "commands.moderation.clear.number.error.description").build()).queue();
} else {
List history = event.getTextChannel().getHistory().retrievePast(nbToDelete + 1).complete();
List msgToDelete = new ArrayList<>(history);
@@ -73,7 +73,7 @@ public class ClearCommand implements Command {
} catch (NumberFormatException e) {
event.getHelpCommand().sendHelp(this, event);
} catch (IllegalArgumentException e) {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.clear.message.error.title", "commands.moderation.clear.message.error.description")
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.clear.message.error.title", "commands.moderation.clear.message.error.description")
.build()).queue();
}
}
@@ -97,6 +97,11 @@ public class ClearCommand implements Command {
@Override
public String usage() {
- return "number";
+ return "[Amount]";
+ }
+
+ @Override
+ public String example() {
+ return "69";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java
index c8e9fd3..e276391 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java
@@ -93,6 +93,11 @@ public class EditRulesCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
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 b85fee6..a3b03b0 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java
@@ -29,7 +29,7 @@ public class InviteDetectCommand implements Command {
.build()).queue();
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.invitedetect.activate.error.title",
"commands.moderation.invitedetect.activate.error.description")
.build()).queue();
@@ -46,12 +46,14 @@ public class InviteDetectCommand implements Command {
.build()).queue();
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.invitedetect.deactivate.error.title",
"commands.moderation.invitedetect.deactivate.error.description")
.build()).queue();
}
break;
+ default:
+ event.getHelpCommand().sendHelp(this, event);
}
} else {
event.getHelpCommand().sendHelp(this, event);
@@ -70,6 +72,11 @@ public class InviteDetectCommand implements Command {
@Override
public String usage() {
- return "";
+ return "[on/off]";
+ }
+
+ @Override
+ public String example() {
+ return "on";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java
index 911bb52..2fe1b53 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/KickCommand.java
@@ -35,12 +35,12 @@ public class KickCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.kick.error.title",
"commands.moderation.kick.myself.error.description").build()).queue();
}
} else {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue();
}
} else if (event.getMessage().getMentionedMembers().size() == 0) {
event.getHelpCommand().sendHelp(this, event);
@@ -55,10 +55,10 @@ public class KickCommand implements Command {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
}
} else {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.myself.error.description").build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.kick.error.title", "commands.moderation.kick.myself.error.description").build()).queue();
}
} else {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.kick.error.title", "commands.moderation.kick.yourself.error.description").build()).queue();
}
}
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.kick.success.title", "✅", "commands.moderation.kick.masskick.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue();
@@ -77,6 +77,11 @@ public class KickCommand implements Command {
@Override
public String usage() {
- return "user";
+ return "[User(s)]";
+ }
+
+ @Override
+ public String example() {
+ return "@Skidder";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java
index 6a10aa2..e15d9f9 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java
@@ -105,6 +105,11 @@ public class NickCommand implements Command {
@Override
public String usage() {
- return "user+nickname";
+ return "[User(s)] [New nickname]";
+ }
+
+ @Override
+ public String example() {
+ return "@Skidder Cutie";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java
index 86f2c12..153e64f 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java
@@ -13,7 +13,6 @@ public class PrefixCommand implements Command {
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
if (!args[0].contains("\"")) {
-
event.getRethink().setGuildPrefix(args[0], event.getGuild().getId());
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
@@ -46,6 +45,11 @@ public class PrefixCommand implements Command {
@Override
public String usage() {
- return "prefix";
+ return "[New Prefix]";
+ }
+
+ @Override
+ public String example() {
+ return "!";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java
index 416a26b..95f7fff 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/RegionChangeCommand.java
@@ -18,7 +18,7 @@ public class RegionChangeCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length == 1) {
- if (event.getMember().hasPermission(Permission.MANAGE_SERVER) || event.getConfig().getOwners().toString().contains(event.getAuthor().getId())) {
+ if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_SERVER)) {
switch (args[0].toLowerCase()) {
case "amsterdam":
setRegion(Region.AMSTERDAM, "Amsterdam", event);
@@ -74,7 +74,7 @@ public class RegionChangeCommand implements Command {
case "us-south":
setRegion(Region.US_SOUTH, "US South", event);
break;
- case "list":
+ default:
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
@@ -117,6 +117,11 @@ public class RegionChangeCommand implements Command {
@Override
public String usage() {
- return "region";
+ return "[New region]";
+ }
+
+ @Override
+ public String example() {
+ return "frankfurt";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java
index 9c914bb..b5049ec 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/RoleCommand.java
@@ -15,10 +15,8 @@ public class RoleCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (args.length > 0) {
- if (event.getMember().hasPermission(Permission.MANAGE_ROLES)) {
-
- String action = args[0].toLowerCase();
- switch (action) {
+ if (event.getGuild().getSelfMember().hasPermission(Permission.MANAGE_ROLES)) {
+ switch (args[0].toLowerCase()) {
case "add":
if (event.getMessage().getMentionedMembers().size() > 0 && event.getMessage().getMentionedRoles().size() > 0) {
for (Member member : event.getMessage().getMentionedMembers()) {
@@ -66,7 +64,7 @@ public class RoleCommand implements Command {
event.getMessageEditor().getMessage(
MessageEditor.MessageType.INFO,
"commands.moderation.role.remove.success.title",
- "✅",
+ "",
"",
"commands.moderation.role.remove.success.description",
String.valueOf(event.getMessage().getMentionedRoles().size()),
@@ -74,6 +72,9 @@ public class RoleCommand implements Command {
.build()).queue();
}
break;
+ default:
+ event.getHelpCommand().sendHelp(this, event);
+ break;
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue();
@@ -95,6 +96,11 @@ public class RoleCommand implements Command {
@Override
public String usage() {
- return "add/remove <@role> <@user>";
+ return "[add/remove] [Role>] [User]";
+ }
+
+ @Override
+ public String example() {
+ return "add @Skidder @Epic-Gamer";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java
index 99cc13e..2ce9a4e 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java
@@ -88,7 +88,7 @@ public class RulesCommand implements Command {
} else {
event3.getChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.rules.role.error.title",
"commands.moderation.rules.role.error.description")
.build()).queue();
@@ -104,7 +104,7 @@ public class RulesCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.rules.guild.error.title",
"commands.moderation.rules.guild.error.description")
.build()).queue();
@@ -160,7 +160,7 @@ public class RulesCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.rules.emote.error.equal.title",
"commands.moderation.rules.emote.error.equal.description")
.build()).queue();
@@ -205,7 +205,7 @@ public class RulesCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.moderation.rules.emote.error.equal.title",
"commands.moderation.rules.emote.error.equal.description")
.build()).queue();
@@ -230,6 +230,11 @@ public class RulesCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java
index 3371eec..80d926c 100644
--- a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java
@@ -45,6 +45,11 @@ public class StarBoardCommand implements Command {
@Override
public String usage() {
- return " [Needed stars]";
+ return "[Channel] [Needed stars]";
+ }
+
+ @Override
+ public String example() {
+ return "#starboard 4";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java
index 62cf98d..e91f03e 100644
--- a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java
@@ -1,6 +1,5 @@
package com.bbn.hadder.commands.music;
-import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
@@ -12,18 +11,16 @@ import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
public class InfoCommand implements Command {
- private static final String CD = "\uD83D\uDCBF";
- private static final String MIC = "\uD83C\uDFA4";
- private static final String QUEUE_DESCRIPTION = "%s **|>** %s\n%s\n%s %s\n%s";
-
@Override
public void executed(String[] args, CommandEvent event) {
- if (event.getAudioManager().hasPlayer(event.getGuild()) && event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) {
+ if (event.getAudioManager().hasPlayer(event.getGuild()) && event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack() != null) {
AudioTrack track = event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack();
- event.getTextChannel().sendMessage("Track Info" + String.format(QUEUE_DESCRIPTION, CD, event.getAudioManager().getOrNull(track.getInfo().title),
- "\n\u23F1 **|>** `[ " + event.getAudioManager().getTimestamp(track.getPosition()) + " / " + event.getAudioManager().getTimestamp(track.getInfo().length) + " ]`",
- "\n" + MIC, event.getAudioManager().getOrNull(track.getInfo().author),
- "\n\uD83C\uDFA7 **|>** " + "")).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
+ "commands.music.info.success.title", "")
+ .setAuthor(track.getInfo().author)
+ .addField("Title", track.getInfo().title, true)
+ .addField("Progress", "`[ " + event.getAudioManager().getTimestamp(track.getPosition()) + " / " + event.getAudioManager().getTimestamp(track.getInfo().length) + " ]`", false)
+ .build()).queue();
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
"commands.music.info.error.title",
@@ -38,11 +35,16 @@ public class InfoCommand implements Command {
@Override
public String description() {
- return "Shows information about the playing song";
+ return "commands.music.info.help.description";
}
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java
index 3992f90..e0b2975 100644
--- a/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/JoinCommand.java
@@ -33,32 +33,30 @@ public class JoinCommand implements Command {
} else {
event.getTextChannel().sendMessage(
event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
- "commands.music.join.error.connecting.already.title",
+ MessageEditor.MessageType.WARNING,
+ "commands.music.join.error.connecting.already.title",
"commands.music.join.error.connecting.already.description")
.build()).queue();
}
} else {
event.getGuild().getAudioManager().openAudioConnection(vc);
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.INFO,
- "commands.music.join.success.title",
- "",
- "commands.music.join.success.description",
- vc.getName())
+ MessageEditor.MessageType.INFO,
+ "commands.music.join.success.title", "",
+ "commands.music.join.success.description", vc.getName())
.build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
- "commands.music.join.error.connecting.trying.title",
+ MessageEditor.MessageType.WARNING,
+ "commands.music.join.error.connecting.trying.title",
"commands.music.join.error.connecting.trying.description")
.build()).queue();
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
- "commands.music.join.error.channel.title",
+ MessageEditor.MessageType.ERROR,
+ "commands.music.join.error.channel.title",
"commands.music.join.error.channel.description")
.build()).queue();
}
@@ -76,6 +74,11 @@ public class JoinCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java
index c2a0398..ec9043c 100644
--- a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java
@@ -21,7 +21,7 @@ public class LeaveCommand implements Command {
.build()).queue();
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.music.leave.error.tile",
"commands.music.leave.error.description")
.build()).queue();
@@ -40,6 +40,11 @@ public class LeaveCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java
index d01bc89..299d222 100644
--- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java
@@ -1,6 +1,5 @@
package com.bbn.hadder.commands.music;
-import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
@@ -33,7 +32,7 @@ public class PlayCommand implements Command {
}
} else {
event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(
- MessageEditor.MessageType.WARNING,
+ MessageEditor.MessageType.ERROR,
"commands.music.join.error.channel.title",
"commands.music.join.error.channel.description")
.build()).queue();
@@ -53,6 +52,11 @@ public class PlayCommand implements Command {
@Override
public String usage() {
- return "song";
+ return "[Song URL/Name]";
+ }
+
+ @Override
+ public String example() {
+ return "Last Christmas";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java b/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java
index 9fb40fa..c3f7140 100644
--- a/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java
@@ -1,11 +1,9 @@
package com.bbn.hadder.commands.music;
import com.bbn.hadder.audio.AudioInfo;
-import com.bbn.hadder.audio.AudioManager;
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 java.util.Set;
@@ -18,20 +16,20 @@ public class QueueCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
if (!event.getAudioManager().hasPlayer(event.getGuild()) || event.getAudioManager().getTrackManager(event.getGuild()).getQueuedTracks().isEmpty()) {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING,
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
"commands.music.queue.error.title",
"commands.music.queue.error.description"
).build()).queue();
} else {
Set queue = event.getAudioManager().getTrackManager(event.getGuild()).getQueuedTracks();
- EmbedBuilder b = event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
- "commands.music.queue.success.title",
- "commands.music.queue.success.description")
- .addField("Queued songs", String.valueOf(queue.size()), true);
+ StringBuilder builder = new StringBuilder();
for (AudioInfo g : queue) {
- b.addField(g.getTrack().getInfo().author, g.getTrack().getInfo().title, true);
+ builder.append("**").append(g.getTrack().getInfo().author).append("**: `").append(g.getTrack().getInfo().title).append("` \n");
}
- event.getTextChannel().sendMessage(b.build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
+ "commands.music.queue.success.title", "",
+ "commands.music.queue.success.description", builder.toString())
+ .build()).queue();
}
}
@@ -42,11 +40,16 @@ public class QueueCommand implements Command {
@Override
public String description() {
- return "Shows the music queue.";
+ return "commands.music.queue.help.description";
}
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java b/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java
index bc2de6c..c2265bd 100644
--- a/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java
@@ -1,9 +1,8 @@
package com.bbn.hadder.commands.music;
-import com.bbn.hadder.audio.AudioInfo;
-import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
+import com.bbn.hadder.utils.MessageEditor;
/**
* @author Skidder / GregTCLTK
@@ -13,7 +12,16 @@ public class SkipCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
- event.getAudioManager().forceSkipTrack(event);
+ if (event.getAudioManager().hasPlayer(event.getGuild()) && !event.getAudioManager().getTrackManager(event.getGuild()).getQueuedTracks().isEmpty()) {
+ event.getAudioManager().forceSkipTrack(event);
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
+ "commands.music.skip.success.title",
+ "commands.music.skip.success.description").build()).queue();
+ } else {
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
+ "commands.music.info.error.title",
+ "commands.music.info.error.description").build()).queue();
+ }
}
@Override
@@ -23,11 +31,16 @@ public class SkipCommand implements Command {
@Override
public String description() {
- return "Skips the song";
+ return "commands.music.skip.help.description";
}
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java
index e61f3da..b9336bc 100644
--- a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java
@@ -1,6 +1,5 @@
package com.bbn.hadder.commands.music;
-import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.utils.MessageEditor;
@@ -13,7 +12,7 @@ public class StopCommand implements Command {
@Override
public void executed(String[] args, CommandEvent event) {
- if (event.getAudioManager().hasPlayer(event.getGuild())) {
+ if (event.getAudioManager().hasPlayer(event.getGuild()) && event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack() != null) {
event.getAudioManager().players.remove(event.getGuild().getId());
event.getAudioManager().getPlayer(event.getGuild()).destroy();
event.getAudioManager().getTrackManager(event.getGuild()).purgeQueue();
@@ -22,7 +21,9 @@ public class StopCommand implements Command {
"commands.music.stop.success.title",
"commands.music.stop.success.description").build()).queue();
} else {
- event.getTextChannel().sendMessage("I love you <3").queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
+ "commands.music.info.error.title",
+ "commands.music.info.error.description").build()).queue();
}
}
@@ -38,6 +39,11 @@ public class StopCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/music/VolumeCommand.java b/src/main/java/com/bbn/hadder/commands/music/VolumeCommand.java
new file mode 100644
index 0000000..b0391b9
--- /dev/null
+++ b/src/main/java/com/bbn/hadder/commands/music/VolumeCommand.java
@@ -0,0 +1,61 @@
+package com.bbn.hadder.commands.music;
+
+import com.bbn.hadder.commands.Command;
+import com.bbn.hadder.commands.CommandEvent;
+import com.bbn.hadder.utils.MessageEditor;
+
+/**
+ * @author Skidder / GregTCLTK
+ */
+
+public class VolumeCommand implements Command {
+
+ @Override
+ public void executed(String[] args, CommandEvent event) {
+ if (args.length > 0) {
+ if (event.getAudioManager().hasPlayer(event.getGuild()) && event.getAudioManager().getPlayer(event.getGuild()).getPlayingTrack() != null) {
+ try {
+ int volume = Integer.parseInt(args[0]);
+ if (volume < 200 && volume > 0 || event.getConfig().getOwners().contains(event.getAuthor().getId())) {
+ event.getAudioManager().getPlayer(event.getGuild()).setVolume(volume);
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO,
+ "commands.music.volume.success.title", "",
+ "commands.music.volume.success.description", String.valueOf(volume)).build()).queue();
+ } else {
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
+ "commands.music.volume.error.int.title",
+ "commands.music.volume.error.int.description").build()).queue();
+ }
+ } catch (NumberFormatException e) {
+ event.getHelpCommand().sendHelp(this, event);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR,
+ "commands.music.info.error.title",
+ "commands.music.info.error.description").build()).queue();
+ }
+ } else event.getHelpCommand().sendHelp(this, event);
+ }
+
+ @Override
+ public String[] labels() {
+ return new String[]{"volume"};
+ }
+
+ @Override
+ public String description() {
+ return "Change the volume of the music.";
+ }
+
+ @Override
+ public String usage() {
+ return "[New volume]";
+ }
+
+ @Override
+ public String example() {
+ return "100";
+ }
+}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java
index e03e354..e66169e 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/AnalCommand.java
@@ -24,7 +24,6 @@ public class AnalCommand implements Command {
Request request = new Request.Builder().url("https://api.nekos.dev/api/v3/images/nsfw/gif/anal/").build();
try {
-
Response response = caller.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
JSONObject data = json.getJSONObject("data");
@@ -58,6 +57,11 @@ public class AnalCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/BDSMCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/BDSMCommand.java
index 9458f57..3136a3e 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/BDSMCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/BDSMCommand.java
@@ -24,7 +24,6 @@ public class BDSMCommand implements Command {
Request request = new Request.Builder().url("https://api.nekos.dev/api/v3/images/nsfw/img/bdsm_lewd").build();
try {
-
Response response = caller.newCall(request).execute();
JSONObject json = new JSONObject(response.body().string());
JSONObject data = json.getJSONObject("data");
@@ -58,6 +57,11 @@ public class BDSMCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java
index 661fb02..7f4302a 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/BlowjobCommand.java
@@ -54,6 +54,11 @@ public class BlowjobCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java
index 526299b..9ff9393 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/BoobsCommand.java
@@ -58,6 +58,11 @@ public class BoobsCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java
index 55b33df..4eacd90 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/CumCommand.java
@@ -58,6 +58,11 @@ public class CumCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java
index 21a5531..f3d8434 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/EroticCommand.java
@@ -54,6 +54,11 @@ public class EroticCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java
index b0d84f7..b3a56d4 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/FeetCommand.java
@@ -58,6 +58,11 @@ public class FeetCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java
index 0f176a8..983d6db 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/FingeringCommand.java
@@ -58,6 +58,11 @@ public class FingeringCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java
index 8e3d25a..2219b45 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/LickingCommand.java
@@ -58,6 +58,11 @@ public class LickingCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java
index 50f7a72..32cabcb 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/PornCommand.java
@@ -58,6 +58,11 @@ public class PornCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java
index 0cf188f..9e6410c 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/PussyCommand.java
@@ -54,6 +54,11 @@ public class PussyCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java
index 579cde8..ddc3d7e 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/RandomPornCommand.java
@@ -62,6 +62,11 @@ public class RandomPornCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java
index 2b77f97..1514b8e 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/SoloCommand.java
@@ -31,8 +31,8 @@ public class SoloCommand implements Command {
JSONObject response1 = data.getJSONObject("response");
String url = response1.toString().replace("{\"url\":\"", "");
-event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
-.setAuthor(event.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url.replace("\"}", ""))
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO)
+ .setAuthor(event.getMessageEditor().getTerm("commands.nsfw.gif.error.title"), url.replace("\"}", ""))
.setImage(url.replace("\"}", ""))
.setFooter("Solo")
.build()).queue();
@@ -58,6 +58,11 @@ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEd
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java
index fb9f993..12615ec 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/SpankCommand.java
@@ -59,6 +59,11 @@ public class SpankCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java
index 45cf9d6..f2c0c97 100644
--- a/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/nsfw/TransCommand.java
@@ -55,6 +55,11 @@ public class TransCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java
index b8098a2..c9758b4 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java
@@ -5,7 +5,6 @@ package com.bbn.hadder.commands.owner;
*/
import com.bbn.hadder.Hadder;
-import com.bbn.hadder.audio.AudioManager;
import com.bbn.hadder.commands.Command;
import com.bbn.hadder.commands.CommandEvent;
import com.bbn.hadder.core.Perm;
@@ -33,19 +32,19 @@ public class EvalCommand implements Command {
ex.printStackTrace();
}
- engine.put("msg", event.getMessage());
- engine.put("shardmanager", Hadder.shardManager);
- engine.put("rethink", event.getRethink());
- engine.put("event", event);
- engine.put("jda", event.getJDA());
- engine.put("message", event.getMessage());
- engine.put("guild", event.getGuild());
- engine.put("channel", event.getChannel());
- engine.put("author", event.getAuthor());
- engine.put("member", event.getMember());
- engine.put("self", event.getGuild().getSelfMember());
- engine.put("audio", new AudioManager());
- engine.put("out", System.out);
+ engine.put("msg".toLowerCase(), event.getMessage());
+ engine.put("shardmanager".toLowerCase(), Hadder.shardManager);
+ engine.put("rethink".toLowerCase(), event.getRethink());
+ engine.put("event".toLowerCase(), event);
+ engine.put("jda".toLowerCase(), event.getJDA());
+ engine.put("message".toLowerCase(), event.getMessage());
+ engine.put("guild".toLowerCase(), event.getGuild());
+ engine.put("channel".toLowerCase(), event.getChannel());
+ engine.put("author".toLowerCase(), event.getAuthor());
+ engine.put("member".toLowerCase(), event.getMember());
+ engine.put("self".toLowerCase(), event.getGuild().getSelfMember());
+ engine.put("audio".toLowerCase(), event.getAudioManager());
+ engine.put("out".toLowerCase(), System.out);
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
@@ -55,12 +54,12 @@ public class EvalCommand implements Command {
Object out;
try {
- String script = "";
+ StringBuilder script = new StringBuilder();
for (int i = 0; i < args.length; i++) {
args[i] = args[i].replace("```java", "").replace("```", "");
- script += i == args.length - 1 ? args[i] : args[i] + " ";
+ script.append(i == args.length - 1 ? args[i] : args[i] + " ");
}
- out = engine.eval(script);
+ out = engine.eval(script.toString());
event.getTextChannel().sendMessage(event.getMessageEditor()
.getMessage(MessageEditor.MessageType.INFO, "commands.owner.eval.success.title", "")
@@ -103,6 +102,11 @@ public class EvalCommand implements Command {
@Override
public String usage() {
- return "commands.owner.eval.help.usage";
+ return "[Code]";
+ }
+
+ @Override
+ public String example() {
+ return "System.out.println(\"Hey\")";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java
index b35d07d..458fc12 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/GuildLeaveCommand.java
@@ -27,7 +27,7 @@ public class GuildLeaveCommand implements Command {
.build())
.queue();
} catch (Exception e) {
- event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue();
+ event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.owner.guildleave.error.title", "", "commands.owner.guildleave.help.description", guild.getName()).build()).queue();
}
} else {
event.getHelpCommand().sendHelp(this, event);
@@ -46,6 +46,11 @@ public class GuildLeaveCommand implements Command {
@Override
public String usage() {
- return "guildid";
+ return "[Guild-ID]";
+ }
+
+ @Override
+ public String example() {
+ return "366971954244354048";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java
index 35a2377..72f1feb 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/RebootCommand.java
@@ -29,6 +29,11 @@ public class RebootCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java
index a002481..3245a42 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/ShutdownCommand.java
@@ -33,6 +33,11 @@ public class ShutdownCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java
index 58aaca5..3473085 100644
--- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java
@@ -27,6 +27,11 @@ public class TestCommand implements Command {
@Override
public String usage() {
- return "";
+ return null;
+ }
+
+ @Override
+ public String example() {
+ return null;
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java b/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java
index 3fbc1bb..6a8ca22 100644
--- a/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/settings/LanguageCommand.java
@@ -64,6 +64,11 @@ public class LanguageCommand implements Command {
@Override
public String usage() {
- return "commands.settings.language.help.usage";
+ return "[Language code]";
+ }
+
+ @Override
+ public String example() {
+ return "de";
}
}
diff --git a/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java
index bf360fe..19d52e9 100644
--- a/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java
+++ b/src/main/java/com/bbn/hadder/commands/settings/UserPrefixCommand.java
@@ -36,6 +36,11 @@ public class UserPrefixCommand implements Command {
@Override
public String usage() {
- return "userprefix";
+ return "[New Prefix]";
+ }
+
+ @Override
+ public String example() {
+ return "!";
}
}
diff --git a/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java b/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java
index 35f4644..643a17a 100644
--- a/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java
+++ b/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java
@@ -1,7 +1,6 @@
package com.bbn.hadder.listener;
import com.bbn.hadder.audio.AudioManager;
-import com.bbn.hadder.audio.TrackManager;
import net.dv8tion.jda.api.events.guild.voice.GuildVoiceLeaveEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
@@ -11,14 +10,19 @@ import net.dv8tion.jda.api.hooks.ListenerAdapter;
public class VoiceLeaveListener extends ListenerAdapter {
+ private AudioManager audioManager;
+
+ public VoiceLeaveListener(AudioManager audioManager) {
+ this.audioManager = audioManager;
+ }
+
@Override
public void onGuildVoiceLeave(GuildVoiceLeaveEvent event) {
- if (new AudioManager().hasPlayer(event.getGuild())) {
- TrackManager manager = new AudioManager().getTrackManager(event.getGuild());
- manager.getQueuedTracks().stream()
- .filter(info -> !info.getTrack().equals(new AudioManager().getPlayer(event.getGuild()).getPlayingTrack())
- && info.getAuthor().getUser().equals(event.getMember().getUser()))
- .forEach(manager::remove);
+ if (new AudioManager().hasPlayer(event.getGuild()) && event.getChannelLeft().getMembers().equals(event.getGuild().getSelfMember())) {
+ audioManager.players.remove(event.getGuild().getId());
+ audioManager.getPlayer(event.getGuild()).destroy();
+ audioManager.getTrackManager(event.getGuild()).purgeQueue();
+ event.getGuild().getAudioManager().closeAudioConnection();
}
}
}
diff --git a/src/main/java/com/bbn/hadder/utils/BotList.java b/src/main/java/com/bbn/hadder/utils/BotList.java
index 5bbba34..6516d13 100644
--- a/src/main/java/com/bbn/hadder/utils/BotList.java
+++ b/src/main/java/com/bbn/hadder/utils/BotList.java
@@ -24,7 +24,7 @@ public class BotList {
private static String DiscordBestBots = "https://discordsbestbots.xyz/api/bots/637002314162372639/stats";
private static String DiscordBoats = "https://discord.boats/api/bot/637002314162372639";
private static String YetAnotherBotList = "https://yabl.xyz/api/bot/637002314162372639/stats";
- private static String DiscordExtremeList = "https://discordextremelist.xyz/api/bot/637002314162372639";
+ private static String DiscordExtremeList = "https://api.discordextremelist.xyz/v1/bot/637002314162372639";
private static String DiscordBotReviews = "https://discordbotreviews.xyz/api/bot/637002314162372639/stats";
private static String DiscordBots = "https://top.gg/api/bots/637002314162372639/stats";
private static String BotListSpace = "https://api.botlist.space/v1/bots/637002314162372639";
diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java
index c7205f1..1d39039 100644
--- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java
+++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java
@@ -1,7 +1,6 @@
package com.bbn.hadder.utils;
import com.bbn.hadder.Rethink;
-import com.bbn.hadder.commands.CommandEvent;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.User;
@@ -24,21 +23,21 @@ public class MessageEditor {
return this.getMessage(type, "", "", "", "", "", "");
}
- public EmbedBuilder getMessage(MessageType type, String title_language_string, String description_language_string) {
- return this.getMessage(type, title_language_string, "", "", description_language_string, "", "");
+ public EmbedBuilder getMessage(MessageType type, String title, String description) {
+ return this.getMessage(type, title, "", "", description, "", "");
}
- public EmbedBuilder getMessage(MessageType type, String title_language_string, String title_extra,
- String description_language_string, String description_extra) {
- return this.getMessage(type, title_language_string, title_extra, "", description_language_string, description_extra, "");
+ public EmbedBuilder getMessage(MessageType type, String title, String title_extra,
+ String description, String description_extra) {
+ return this.getMessage(type, title, title_extra, "", description, description_extra, "");
}
- public EmbedBuilder getMessage(MessageType type, String title_language_string, String title_extra, String title_extra_two,
- String description_language_string, String description_extra, String description_extra_two) {
+ public EmbedBuilder getMessage(MessageType type, String title, String title_extra, String title_extra_two,
+ String description, String description_extra, String description_extra_two) {
String language = (this.user!=null) ? rethink.getLanguage(this.user.getId()) : null;
EmbedBuilder eb = this.getDefaultSettings(type);
- if (!title_language_string.equals("")) eb.setTitle(this.handle(language, title_language_string, title_extra, title_extra_two));
- if (!description_language_string.equals("")) eb.setDescription(this.handle(language, description_language_string, description_extra, description_extra_two));
+ if (!title.equals("")) eb.setTitle(this.handle(language, title, title_extra, title_extra_two));
+ if (!description.equals("")) eb.setDescription(this.handle(language, description, description_extra, description_extra_two));
return eb;
}
@@ -113,16 +112,11 @@ public class MessageEditor {
return this.handle(rethink.getLanguage(user.getId()), string, extra, extra_two);
}
- public static String getTerm(CommandEvent event, String string, String extra, String extra_two) {
- return new MessageEditor(null, null)
- .handle(event.getRethink().getLanguage(event.getAuthor().getId()), string, extra, extra_two);
- }
-
private String handle(String language_code, String string, String extra, String extra_two) {
Locale locale = new Locale(language_code);
ResourceBundle resourceBundle = ResourceBundle.getBundle("Translations/Translations", locale);
if (resourceBundle.containsKey(string))
- return resourceBundle.getString(string).replaceAll("%prefix%", "h.").replaceAll("%extra%", extra).replaceAll("%extra_two%", extra_two);
- else return "This key doesn't exist. Please report this to the Bot Developers. Key: "+string+" Language_code: "+language_code;
+ return resourceBundle.getString(string).replaceAll("%extra%", extra).replaceAll("%extra_two%", extra_two);
+ else return "This key doesn't exist. Please report this to the Bot Developers. Key: " + string + " Language_code: " + language_code;
}
}
diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties
index c5de023..2483972 100644
--- a/src/main/resources/Translations/Translations_de.properties
+++ b/src/main/resources/Translations/Translations_de.properties
@@ -16,6 +16,7 @@ region =
guildid =
content =
song =
+user/id= [@Benutzer]/[ID]
error = Fehler
none = Nicht angegeben
@@ -28,29 +29,29 @@ commands.fun.gif.help.description = Sucht nach einem GIF auf Giphy.
commands.fun.meme.success.title = Dein zufälliges Meme\:
commands.fun.meme.api.error = Die Anfrage an die Meme-API konnte nicht verarbeitet werden. Bitte versuche es später erneut.
commands.fun.meme.help.description = Sendet dir einen zufälligen Meme.
-commands.fun.clyde.help.description = Sends a message as a webhook named Clyde.
+commands.fun.clyde.help.description = Sendet eine Nachricht als Webhook namens Clyde.
commands.general.about.success.title = Hadder - Info
commands.general.about.success.description = Hadder ist ein Open-Source Discord Bot.
-commands.general.about.success.field.one.title = Support the developers
+commands.general.about.success.field.one.title = Unterstütze die Entwickler
commands.general.about.success.field.one.description = Hadder ist für alle völlig kostenlos. Wir würden es begrüßen, wenn du etwas Geld an uns spendest. Klicken [hier]%extra%, um zu spenden.
commands.general.about.help.description = Zeigt Informationen über Hadder.
commands.general.equals.string.first.request = Bitte sende mir den ersten String.
commands.general.equals.string.second.request = Bitte sende mir den zweiten String.
commands.general.equals.string.equals.true = Ja\! Der erste String entspricht dem zweiten String\!
commands.general.equals.string.equals.false = Ja, aber eigentlich nein. Das ist nicht dasselbe.
-commands.general.equals.string.first = First string\:
-commands.general.equals.string.second = Second string\:
+commands.general.equals.string.first = Erster String\:
+commands.general.equals.string.second = Zweiter String\:
commands.general.equals.string.result = Ergebnis\:
-commands.general.equals.help.description = Prüft ob zwei Strings gleich sind
+commands.general.equals.help.description = Checks if two strings are the same.
commands.general.help.field.usage = Benutzung\:
commands.general.help.error.description = Ich brauche die Links Einbetten Berechtigung, um das Hilfe-Menü zu senden\!
commands.general.help.help.description = Zeigt jeden Befehl an und erklärt seine Verwendung.
-commands.general.help.help.label = [CommandName]
+commands.general.help.help.label = [Name des Commands]
commands.general.invite.success.title = Lade mich ein\!
commands.general.invite.success.description = [Lade mich hier ein\!]%extra%
commands.general.invite.help.description = Zeigt den Einladungslink an, um Hadder auf deinen Server einzuladen.
-commands.general.ping.help.description = Zeigt den Ping zur Discord API
+commands.general.ping.help.description = Zeigt den Ping zur Discord API.
commands.misc.feedback.title.request.title = Feedback-Thema
commands.misc.feedback.title.request.description = Bitte senden Sie mir das Thema des Feedbacks.
@@ -72,35 +73,37 @@ commands.misc.github.user.error.description = Dieser Benutzer existiert nicht\!
commands.misc.github.connect.title = Verbinde dein GH Konto
commands.misc.github.connect.description = [Bitte verbinde dein GitHub-Konto hier]%extra%
commands.misc.github.help.description = Zeigt Informationen über ein GitHub Benutzerprofil an.
-commands.misc.screenshare.success.title = Here's your URL to share your Screen
+commands.misc.screenshare.success.title = Hier ist deine URL, um deinen Bildschirm zu teilen
commands.misc.screenshare.id.error.title = Warte. Das ist 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.channel.error.title = Please choose a Voice Channel
+commands.misc.screenshare.id.error.description = Diese ID ist ungültig. \nVielleicht hast du eine falsche ID eingegeben. \n\nHinweis\: Stelle sicher, dass der Sprachkanal auf diesem Server ist.
+commands.misc.screenshare.channel.error.title = Bitte wähle einen Sprachkanal
commands.misc.screenshare.channel.error.description = Es gibt mehr als einen Sprachkanal mit diesem Namen
-commands.misc.screenshare.number.error.title = You specified a wrong number\!
+commands.misc.screenshare.number.error.title = Du hast eine falsche Nummer angegeben\!
commands.misc.screenshare.number.error.description = Dies ist keine Zahl.
commands.misc.screenshare.channel.existing.error = Warte ma'
-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.channel.existing.description = Es existiert kein Sprachkanal mit diesem Namen. \n\nHinweis\: Stelle sicher, dass der Sprachkanal auf diesem Server ist.
+commands.misc.screenshare.help.description = Zeigt dir den Link zum Teilen deines Bildschirms.
-commands.moderation.ban.success.title = %extra% Successfully banned %extra%
-commands.moderation.ban.success.description = I successfully baned %extra%
+commands.moderation.ban.success.title = Erfolgreich gebannt
+commands.moderation.ban.success.description = Ich habe %extra% erfolgreich gebannt
commands.moderation.ban.error.title = Nicht möglich
commands.moderation.ban.myself.error.description = Ich kann mich nicht selbst bannen\!
commands.moderation.ban.yourself.error.description = Du kannst dich nicht selbst bannen\!
-commands.moderation.ban.massban.success.description = Ich habe erfolgreich %extra% Mitglieder gebannt\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Erfolgreich gelöscht
commands.moderation.lear.all.success.description = Ich habe erfolgreich %extra% Nachrichten gelöscht.
commands.moderation.clear.number.error.description = Sie müssen eine Zahl zwischen 1 und 99 wählen\!
-commands.moderation.clear.success.description = Ich habe erfolgreich %extra% Nachrichten gelöscht.
+commands.moderation.clear.success.title = Erfolgreich gelöscht
+commands.moderation.clear.success.description.singular = Nachricht erfolgreich gelöscht.
+commands.moderation.clear.success.description.plural = Ich habe erfolgreich %extra% Nachrichten gelöscht.
commands.moderation.clear.message.error.title = Keine Nachrichten\!
commands.moderation.clear.message.error.description = Es gibt keine Nachrichten in diesem Kanal.
commands.moderation.clear.help.description = Löscht die angegebene Anzahl von Nachrichten.
-commands.moderation.prefix.success.title = %extra% Successfully set %extra%
-commands.moderation.prefix.success.description = I successfully set the new prefix for the guild to `%extra%`.
-commands.moderation.prefix.error.description = The prefix must not contain **"**
-commands.moderation.prefix.help.description = Sets the Guild-Prefix.
+commands.moderation.prefix.success.title = Erfolgreich festgelegt
+commands.moderation.prefix.success.description = Ich habe den neuen Prefix für die Guild erfolgreich zu `%extra% ` geändert.
+commands.moderation.prefix.error.description = Der Prefix darf nicht **"** enthalten
+commands.moderation.prefix.help.description = Legt den Guild-Prefix fest.
commands.moderation.invitedetect.activate.success.title = Erfolgreich aktiviert
commands.moderation.invitedetect.activate.success.description = I successfully activated the invite link detection for this guild.
commands.moderation.invitedetect.activate.error.title = Bereits aktiviert
@@ -115,19 +118,19 @@ commands.moderation.kick.success.description = Ich habe %extra% erfolgreich geki
commands.moderation.kick.error.title = Nicht möglich
commands.moderation.kick.myself.error.description = Ich kann mich nicht selbst kicken\!
commands.moderation.kick.yourself.error.description = Du kannst dich nicht selbst kicken.
-commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\!
+commands.moderation.kick.mass.success.description = Ich habe %extra% Mitglieder erfolgreich gekickt\!
commands.moderation.kick.help.description = Wirft einen oder mehrere Benutzer vom Server.
commands.moderation.kick.masskick.success.description = Ich habe %extra% Mitglieder erfolgreich gekickt.
-commands.moderation.nick.success.title = %extra% Successfully nicked %extra%
-commands.moderation.nick.success.description = I successfully nicked %extra%.
+commands.moderation.nick.success.title = Erfolgreich umbenannt
+commands.moderation.nick.success.description = Ich habe %extra% erfolgreich umbenannt.
commands.moderation.nick.myself.success.description = Ich habe meinen Spitznamen erfolgreich geändert.
-commands.moderation.nick.massnick.success.description = I successfully nicked %extra% Members.
+commands.moderation.nick.massnick.success.description = Ich habe erfolgreich %extra% Mitglieder umbenannt.
commands.moderation.nick.help.description = Benennt einen oder mehrere Benutzer um.
commands.moderation.regionchange.regions.title = Alle Regionen
commands.moderation.regionchange.success.title = Region erfolgreich gesetzt
commands.moderation.regionchange.success.description = Ich habe die neue Serverregion erfolgreich zu %extra% geändert.
commands.moderation.regionchange.help.description = Changes the server region to locked regions.
-commands.moderation.role.add.success.title = %extra% Successfully added role(s) %extra%
+commands.moderation.role.add.success.title = Rolle(n) Erfolgreich hinzugefügt
commands.moderation.role.add.success.description = I successfully added %extra% roles to %extra_two% members.
commands.moderation.role.remove.success.title = %extra% Successfully removed role(s) %extra%
commands.moderation.role.remove.success.description = I successfully removed %extra% roles from %extra_two% members.
@@ -176,9 +179,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -190,30 +193,39 @@ commands.music.leave.help.description = Verlässt einen Sprachkanal
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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.help.description = Skips the currently playing song
commands.nsfw.gif.error.title = GIF wird nicht angezeigt? Klicke hier
commands.nsfw.img.error.title = Bild wird nicht angezeigt? Klicke hier
commands.nsfw.anal.help.description = Zeigt einen zufälligen Anal GIF.
-commands.nsfw.bdsm.help.description = Zeigt ein zufälliges BDSM Bild.
-commands.nsfw.blowjob.help.description = Zeigt ein zufälliges Blowjob Bild.
+commands.nsfw.bdsm.help.description = Zeigt ein zufälliges BDSM Bild
+commands.nsfw.blowjob.help.description = Zeigt ein zufälliges Blowjob Bild
commands.nsfw.boobs.help.description = Zeigt einen zufälligen Boob GIF.
commands.nsfw.cum.help.description = Zeigt einen zufälligen Cum GIF.
-commands.nsfw.erotic.help.description = Zeigt ein zufälliges Erotik Bild.
+commands.nsfw.erotic.help.description = Zeigt ein zufälliges Erotik Bild
commands.nsfw.feet.help.description = Zeigt einen zufälligen Feet GIF.
commands.nsfw.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -222,7 +234,7 @@ commands.nsfw.pussy.help.description = Zeigt einen zufälligen Pussy GIF.
commands.nsfw.randomporn.help.description = Zeigt ein völlig zufälliges Porno GIF.
commands.nsfw.solo.help.description = Zeigt einen zufälligen Solo GIF.
commands.nsfw.spank.help.description = Shows a random spank gif.
-commands.nsfw.trans.help.description = Zeigt ein zufälliges Trans Bild.
+commands.nsfw.trans.help.description = Zeigt ein zufälliges Trans Bild
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Eingabe
diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties
index 2da7c59..133e2e9 100644
--- a/src/main/resources/Translations/Translations_en.properties
+++ b/src/main/resources/Translations/Translations_en.properties
@@ -4,20 +4,6 @@
Hadder = Hadder
-user = <@User>
-searchterm =
-username =
-number = /all
-prefix =
-userprefix =
-vc-name/id =
-user+nickname = <@user>
-region =
-guildid =
-content =
-song =
-user/id= [@User]/[ID]
-
error = Error
none = None
success\! = Success\!
@@ -43,15 +29,17 @@ 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 = Check if two strings are the same
-commands.general.help.field.usage = Usage\:
+commands.general.equals.help.description = Checks if two strings are the same.
+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.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.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.
@@ -68,8 +56,10 @@ 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.title = API error
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.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.
@@ -89,10 +79,11 @@ commands.moderation.ban.success.description = I successfully baned %extra%
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 baned %extra% Members\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Successfully deleted
commands.moderation.lear.all.success.description = I successfully deleted %extra% messages.
+commands.moderation.clear.number.error.title = Invalid number
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99\!
commands.moderation.clear.success.title = Successfully cleared
commands.moderation.clear.success.description.singular = Successfully deleted one message.
@@ -179,9 +170,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -193,32 +184,43 @@ commands.music.leave.help.description = Leaves a 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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.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.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.bdsm.help.description = Shows a random BDSM picture.
-commands.nsfw.blowjob.help.description = Shows a random Blowjob picture.
+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.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.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -227,14 +229,13 @@ 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.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Input
commands.owner.eval.success.output = Output
commands.owner.eval.success.timing = Timing
commands.owner.eval.help.description = Execute the given code
-commands.owner.eval.help.usage =
commands.owner.guildleave.success.title = Successfully left
commands.owner.guildleave.success.description = I successfully left %extra%.
commands.owner.guildleave.error.title = Can not leave
@@ -249,7 +250,6 @@ commands.owner.test.help.description = Just a little Test Command
commands.settings.language.success.title = Language set
commands.settings.language.success.description = `%extra%` is your new language now.
commands.settings.language.help.description = Sets the new primary language for a user.
-commands.settings.language.help.usage =
commands.settings.prefix.success.title = %extra% Successfully set %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.
diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties
index 660e58c..d8cfb15 100644
--- a/src/main/resources/Translations/Translations_es.properties
+++ b/src/main/resources/Translations/Translations_es.properties
@@ -16,6 +16,7 @@ region =
guildid =
content =
song =
+user/id= [@User]/[ID]
error = Error
none = None
@@ -42,7 +43,7 @@ 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 = Check if two strings are the same
+commands.general.equals.help.description = Checks if two strings are the same.
commands.general.help.field.usage = Usage\:
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.
@@ -50,7 +51,7 @@ 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.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.
@@ -83,17 +84,19 @@ 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.moderation.ban.success.title = %extra% Successfully banned %extra%
+commands.moderation.ban.success.title = Successfully banned
commands.moderation.ban.success.description = I successfully baned %extra%
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 baned %extra% Members\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Successfully deleted
commands.moderation.lear.all.success.description = I successfully deleted %extra% messages.
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99\!
-commands.moderation.clear.success.description = Successfully deleted %extra% messages.
+commands.moderation.clear.success.title = Successfully cleared
+commands.moderation.clear.success.description.singular = Successfully deleted one message.
+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.
@@ -176,9 +179,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -190,30 +193,39 @@ commands.music.leave.help.description = Leaves a 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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.help.description = Skips the currently playing song
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.bdsm.help.description = Shows a random BDSM picture.
-commands.nsfw.blowjob.help.description = Shows a random Blowjob picture.
+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.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.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -222,7 +234,7 @@ 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.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Input
diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties
index 660e58c..d8cfb15 100644
--- a/src/main/resources/Translations/Translations_fr.properties
+++ b/src/main/resources/Translations/Translations_fr.properties
@@ -16,6 +16,7 @@ region =
guildid =
content =
song =
+user/id= [@User]/[ID]
error = Error
none = None
@@ -42,7 +43,7 @@ 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 = Check if two strings are the same
+commands.general.equals.help.description = Checks if two strings are the same.
commands.general.help.field.usage = Usage\:
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.
@@ -50,7 +51,7 @@ 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.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.
@@ -83,17 +84,19 @@ 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.moderation.ban.success.title = %extra% Successfully banned %extra%
+commands.moderation.ban.success.title = Successfully banned
commands.moderation.ban.success.description = I successfully baned %extra%
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 baned %extra% Members\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Successfully deleted
commands.moderation.lear.all.success.description = I successfully deleted %extra% messages.
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99\!
-commands.moderation.clear.success.description = Successfully deleted %extra% messages.
+commands.moderation.clear.success.title = Successfully cleared
+commands.moderation.clear.success.description.singular = Successfully deleted one message.
+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.
@@ -176,9 +179,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -190,30 +193,39 @@ commands.music.leave.help.description = Leaves a 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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.help.description = Skips the currently playing song
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.bdsm.help.description = Shows a random BDSM picture.
-commands.nsfw.blowjob.help.description = Shows a random Blowjob picture.
+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.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.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -222,7 +234,7 @@ 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.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Input
diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties
index 660e58c..d8cfb15 100644
--- a/src/main/resources/Translations/Translations_ru.properties
+++ b/src/main/resources/Translations/Translations_ru.properties
@@ -16,6 +16,7 @@ region =
guildid =
content =
song =
+user/id= [@User]/[ID]
error = Error
none = None
@@ -42,7 +43,7 @@ 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 = Check if two strings are the same
+commands.general.equals.help.description = Checks if two strings are the same.
commands.general.help.field.usage = Usage\:
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.
@@ -50,7 +51,7 @@ 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.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.
@@ -83,17 +84,19 @@ 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.moderation.ban.success.title = %extra% Successfully banned %extra%
+commands.moderation.ban.success.title = Successfully banned
commands.moderation.ban.success.description = I successfully baned %extra%
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 baned %extra% Members\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Successfully deleted
commands.moderation.lear.all.success.description = I successfully deleted %extra% messages.
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99\!
-commands.moderation.clear.success.description = Successfully deleted %extra% messages.
+commands.moderation.clear.success.title = Successfully cleared
+commands.moderation.clear.success.description.singular = Successfully deleted one message.
+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.
@@ -176,9 +179,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -190,30 +193,39 @@ commands.music.leave.help.description = Leaves a 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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.help.description = Skips the currently playing song
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.bdsm.help.description = Shows a random BDSM picture.
-commands.nsfw.blowjob.help.description = Shows a random Blowjob picture.
+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.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.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -222,7 +234,7 @@ 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.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Input
diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties
index 660e58c..d8cfb15 100644
--- a/src/main/resources/Translations/Translations_tr.properties
+++ b/src/main/resources/Translations/Translations_tr.properties
@@ -16,6 +16,7 @@ region =
guildid =
content =
song =
+user/id= [@User]/[ID]
error = Error
none = None
@@ -42,7 +43,7 @@ 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 = Check if two strings are the same
+commands.general.equals.help.description = Checks if two strings are the same.
commands.general.help.field.usage = Usage\:
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.
@@ -50,7 +51,7 @@ 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.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.
@@ -83,17 +84,19 @@ 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.moderation.ban.success.title = %extra% Successfully banned %extra%
+commands.moderation.ban.success.title = Successfully banned
commands.moderation.ban.success.description = I successfully baned %extra%
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 baned %extra% Members\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Successfully deleted
commands.moderation.lear.all.success.description = I successfully deleted %extra% messages.
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99\!
-commands.moderation.clear.success.description = Successfully deleted %extra% messages.
+commands.moderation.clear.success.title = Successfully cleared
+commands.moderation.clear.success.description.singular = Successfully deleted one message.
+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.
@@ -176,9 +179,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -190,30 +193,39 @@ commands.music.leave.help.description = Leaves a 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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.help.description = Skips the currently playing song
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.bdsm.help.description = Shows a random BDSM picture.
-commands.nsfw.blowjob.help.description = Shows a random Blowjob picture.
+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.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.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -222,7 +234,7 @@ 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.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Input
diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties
index 660e58c..d8cfb15 100644
--- a/src/main/resources/Translations/Translations_zh.properties
+++ b/src/main/resources/Translations/Translations_zh.properties
@@ -16,6 +16,7 @@ region =
guildid =
content =
song =
+user/id= [@User]/[ID]
error = Error
none = None
@@ -42,7 +43,7 @@ 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 = Check if two strings are the same
+commands.general.equals.help.description = Checks if two strings are the same.
commands.general.help.field.usage = Usage\:
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.
@@ -50,7 +51,7 @@ 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.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.
@@ -83,17 +84,19 @@ 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.moderation.ban.success.title = %extra% Successfully banned %extra%
+commands.moderation.ban.success.title = Successfully banned
commands.moderation.ban.success.description = I successfully baned %extra%
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 baned %extra% Members\!
-commands.moderation.ban.help.description = Bans one ore more user from the server
+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.lear.all.success.title = Successfully deleted
commands.moderation.lear.all.success.description = I successfully deleted %extra% messages.
commands.moderation.clear.number.error.description = You have to choose a number between 1 and 99\!
-commands.moderation.clear.success.description = Successfully deleted %extra% messages.
+commands.moderation.clear.success.title = Successfully cleared
+commands.moderation.clear.success.description.singular = Successfully deleted one message.
+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.
@@ -176,9 +179,9 @@ commands.moderation.editrules.help.description = Edits the rules message.
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
-commands.music.join.error.connecting.already.description = I am already connected to your voice channel.
+commands.music.join.error.connecting.already.description = I am already connected to your voice channel
commands.music.join.error.connecting.trying.title = Already trying to connect
-commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment.
+commands.music.join.error.connecting.trying.description = Hadder is already trying to connect. Please wait a moment
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.help.description = Joins your voice channel
@@ -190,30 +193,39 @@ commands.music.leave.help.description = Leaves a 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%
-commands.music.play.error.load.title = %extra% Load failed %extra%
-commands.music.play.error.load.description = Unfortunately I can not load the given song.
-commands.music.play.error.match.title = %extra% No matches %extra%
-commands.music.play.error.match.description = I can not find a song named this on YouTube.
commands.music.play.success.title = Title
commands.music.play.success.author = Author
commands.music.play.success.length = Length
+commands.music.play.success.tracks = Tracks
+commands.music.play.error.load.title = %extra% Load failed %extra%
+commands.music.play.error.load.description = Unfortunately I can not load the given song
+commands.music.play.error.match.title = %extra% No matches %extra%
+commands.music.play.error.match.description = I can not find a song named this on YouTube
commands.music.play.help.description = Plays a song
commands.music.stop.success.title = Successfully stopped
commands.music.stop.success.description = I successfully stopped 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.stop.help.description = Stops the 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
-commands.music.queue.success.description = This is the queue\: %extra%
+commands.music.queue.success.description = This is the queue\: \n %extra%
+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.help.description = Skips the currently playing song
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.bdsm.help.description = Shows a random BDSM picture.
-commands.nsfw.blowjob.help.description = Shows a random Blowjob picture.
+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.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.fingering.help.description = Shows a random fingering gif.
commands.nsfw.linking.help.description = Shows a random licking gif.
@@ -222,7 +234,7 @@ 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.nsfw.trans.help.description = Shows a random trans picture
commands.owner.eval.success.title = Eval Command
commands.owner.eval.success.input = Input