Hax dev #292

Merged
greg6775 merged 2 commits from hax-dev into greg-dev 2020-01-01 15:54:42 +01:00
69 changed files with 763 additions and 398 deletions
Showing only changes of commit c6272c7f25 - Show all commits

View file

@ -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)
<a href="https://discordextremelist.xyz/bots/Hadder"><img src="https://discordextremelist.xyz/api/bot/637002314162372639/widget"/></a>
[![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)

18
pom.xml
View file

@ -19,7 +19,7 @@
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.1.0_87</version>
<version>4.1.0_88</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
@ -31,16 +31,6 @@
<artifactId>rethinkdb-driver</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
@ -61,7 +51,6 @@
<artifactId>lavaplayer</artifactId>
<version>1.3.32</version>
</dependency>
</dependencies>
<repositories>
@ -83,10 +72,6 @@
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
@ -125,6 +110,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>13</source>
<target>13</target>

View file

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

View file

@ -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<String, Map.Entry<AudioPlayer, TrackManager>> players = new HashMap<>();
private final AudioPlayerManager myManager = new DefaultAudioPlayerManager();
public AudioManager() {
AudioSourceManagers.registerRemoteSources(myManager);
}
public Map<String, Map.Entry<AudioPlayer, TrackManager>> 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<String, Map.Entry<AudioPlayer, TrackManager>> 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) {

View file

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

View file

@ -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;

View file

@ -66,6 +66,11 @@ public class AvatarCommand implements Command {
@Override
public String usage() {
return "user/id";
return "[User]";
}
@Override
public String example() {
return "@Skidder";
}
}

View file

@ -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";
}
}

View file

@ -58,6 +58,11 @@ public class GifCommand implements Command {
@Override
public String usage() {
return "searchterm";
return "[Term]";
}
@Override
public String example() {
return "Cute cat";
}
}

View file

@ -57,6 +57,11 @@ public class MemeCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -34,6 +34,11 @@ public class AboutCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -50,6 +50,11 @@ public class EqualsCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -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";
}
}

View file

@ -37,6 +37,11 @@ public class InviteCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -31,6 +31,11 @@ public class PingCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -65,6 +65,11 @@ public class FeedbackCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -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";
}
}

View file

@ -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<VoiceChannel> 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";
}
}

View file

@ -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";
}
}

View file

@ -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<Message> history = event.getTextChannel().getHistory().retrievePast(nbToDelete + 1).complete();
List<Message> 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";
}
}

View file

@ -93,6 +93,11 @@ public class EditRulesCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -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 "<on/off>";
return "[on/off]";
}
@Override
public String example() {
return "on";
}
}

View file

@ -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";
}
}

View file

@ -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";
}
}

View file

@ -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 "!";
}
}

View file

@ -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";
}
}

View file

@ -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";
}
}

View file

@ -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;
}
}

View file

@ -45,6 +45,11 @@ public class StarBoardCommand implements Command {
@Override
public String usage() {
return "<Channel id or channel mention> [Needed stars]";
return "[Channel] [Needed stars]";
}
@Override
public String example() {
return "#starboard 4";
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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";
}
}

View file

@ -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<AudioInfo> 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;
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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";
}
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -54,6 +54,11 @@ public class BlowjobCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -58,6 +58,11 @@ public class BoobsCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -58,6 +58,11 @@ public class CumCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -54,6 +54,11 @@ public class EroticCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -58,6 +58,11 @@ public class FeetCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -58,6 +58,11 @@ public class FingeringCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -58,6 +58,11 @@ public class LickingCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -58,6 +58,11 @@ public class PornCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -54,6 +54,11 @@ public class PussyCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -62,6 +62,11 @@ public class RandomPornCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -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;
}
}

View file

@ -59,6 +59,11 @@ public class SpankCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -55,6 +55,11 @@ public class TransCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -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\")";
}
}

View file

@ -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";
}
}

View file

@ -29,6 +29,11 @@ public class RebootCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -33,6 +33,11 @@ public class ShutdownCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -27,6 +27,11 @@ public class TestCommand implements Command {
@Override
public String usage() {
return "";
return null;
}
@Override
public String example() {
return null;
}
}

View file

@ -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";
}
}

View file

@ -36,6 +36,11 @@ public class UserPrefixCommand implements Command {
@Override
public String usage() {
return "userprefix";
return "[New Prefix]";
}
@Override
public String example() {
return "!";
}
}

View file

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

View file

@ -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";

View file

@ -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;
}
}

View file

@ -16,6 +16,7 @@ region = <Region>
guildid = <Guild-ID>
content = <Nachrichten-Inhalt>
song = <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

View file

@ -4,20 +4,6 @@
Hadder = Hadder
user = <@User>
searchterm = <SearchTerm>
username = <Username>
number = <Number>/all
prefix = <New Prefix>
userprefix = <New User-Prefix>
vc-name/id = <VoiceChannelID|VoiceChannelName>
user+nickname = <@user> <New Nickname>
region = <region>
guildid = <Guild-ID>
content = <Message-content>
song = <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 = <Code to execute>
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 = <Language code>
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.

View file

@ -16,6 +16,7 @@ region = <region>
guildid = <Guild-ID>
content = <Message-content>
song = <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

View file

@ -16,6 +16,7 @@ region = <region>
guildid = <Guild-ID>
content = <Message-content>
song = <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

View file

@ -16,6 +16,7 @@ region = <region>
guildid = <Guild-ID>
content = <Message-content>
song = <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

View file

@ -16,6 +16,7 @@ region = <region>
guildid = <Guild-ID>
content = <Message-content>
song = <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

View file

@ -16,6 +16,7 @@ region = <region>
guildid = <Guild-ID>
content = <Message-content>
song = <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