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. [![GitHub issues](https://img.shields.io/github/issues/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/issues) [![GitHub license](https://img.shields.io/github/license/BigBotNetwork/Hadder)](https://github.com/BigBotNetwork/Hadder/blob/master/LICENSE) - +[![Discord Extreme List](https://api.discordextremelist.xyz/v1/bot/637002314162372639/widget)](https://discordextremelist.xyz/bots/Hadder) [![Discord Bots](https://top.gg/api/widget/637002314162372639.svg)](https://top.gg/bot/637002314162372639) [![Hadder's Widget](https://api.botlist.space/widget/637002314162372639/2 "Hadder's Widget")](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.dv8tion JDA - 4.1.0_87 + 4.1.0_88 org.json @@ -31,16 +31,6 @@ rethinkdb-driver 2.3.3 - - com.google.code.gson - gson - 2.8.6 - - - org.slf4j - slf4j-api - 1.7.30 - org.slf4j slf4j-simple @@ -61,7 +51,6 @@ lavaplayer 1.3.32 - @@ -83,10 +72,6 @@ maven-resources-plugin 3.1.0 - - maven-compiler-plugin - 3.8.1 - maven-surefire-plugin 2.22.2 @@ -125,6 +110,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.8.1 13 13 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