From cc5df3c6c465378881d5b17658b3ca3c12ead4c3 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 18 Dec 2019 17:41:13 +0100 Subject: [PATCH 001/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 42 ------------------- 1 file changed, 42 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 70f5ff4..66c66bc 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -220,45 +220,3 @@ commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. commands.settings.prefix.help.description = Sets a new Prefix - -commands.moderation.ban.success.title=Successfully banned -commands.moderation.ban.success.description=I successfully baned -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't ban yourself\! -commands.moderation.ban.help.description=Bans one ore more user from the server -commands.moderation.clear.number.error.description=You have to choose a number between 1 and 200\! -commands.moderation.clear.success.description=Successfully deleted 69 messages. -commands.moderation.clear.help.description=Deletes the specified number of messages. -commands.moderation.prefix.success.title=Successfully set -commands.moderation.prefix.success.description=I successfully set the new prefix for the guild to -commands.moderation.prefix.error.description=The prefix must not contain **** -commands.moderation.prefix.help.description=Sets the Guild-Prefix. -commands.moderation.invitedetect.activate.success.title=Successfully activated -commands.moderation.invitedetect.activate.success.description=I successfully activated the invite link detection for this guild. -commands.moderation.invitedetect.activate.error.title=Already activated -commands.moderation.invitedetect.activate.error.description=The invite link detection is already activated on this guild. -commands.moderation.invitedetect.deactivate.success.title=Successfully deactivated -commands.moderation.invitedetect.deactivate.success.description=I successfully deactivated the invite link detection for this guild. -commands.moderation.invitedetect.deactivate.error.title=Already deactivated -commands.moderation.invitedetect.deactivate.error.description=The invite link detection is already deactivated on this guild. -commands.moderation.invitedetect.help.description=Activate or deactivate the Discord invite link detection. -commands.moderation.kick.success.title=Successfully kicked -commands.moderation.kick.success.description=I successfully kicked -commands.moderation.kick.myself.error.description=I can not kick myself\! -commands.moderation.kick.yourself.error.description=You can't kick yourself. -commands.moderation.kick.mass.success.description=I successfully kicked 69 Members\! -commands.moderation.kick.help.description=Kicks one or more user from the server. -commands.moderation.link.request.success.description=If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title=Wait that's illegal. -commands.moderation.link.request.error.description=You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title=Skidder wants to link guilds\! -commands.moderation.link.request.accept.description=React with the reactions to accept or decline it -commands.moderation.link.set.title=Set the thing boi -commands.moderation.link.help.description=Links two or more servers. -commands.moderation.nick.success.title=Successfully nicked -commands.moderation.nick.success.description=I successfully nicked -commands.moderation.nick.myself.success.description=I successfully changed my nickname. -commands.moderation.nick.mass.success.description=I successfully nicked 69 Members\! -commands.moderation.nick.help.description=Rename a one or more user. -commands.moderation.starboard.successchannel= From eeefdb79dcb4f88a170e4dfb8243b55fd3052296 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 18 Dec 2019 17:41:14 +0100 Subject: [PATCH 002/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 9146657..8c367dd 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -92,9 +92,9 @@ commands.moderation.ban.massban.success.description = I successfully baned %extr commands.moderation.ban.help.description = Bans one ore more user 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.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.message.error.title = No messages! +commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.prefix.success.title = %extra% Successfully set %extra% @@ -163,7 +163,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel! +commands.moderation.starboard.successchannel=Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From 40a2d9cc5056a0535bc4167befa99ecb7b226981 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:08 +0100 Subject: [PATCH 003/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 66c66bc..06576ae 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadderino +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From 1305a6069e4350bff7aa0b993c8e92fb3b100a35 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:09 +0100 Subject: [PATCH 004/128] New translations Translations_en.properties (English) New English translation --- .../Translations/Translations_en.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 8c367dd..69d45cf 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From 48321fd6a01ac447c60533b044b1cf79a68418ee Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:11 +0100 Subject: [PATCH 005/128] New translations Translations_en.properties (Spanish) New Spanish translation --- .../Translations/Translations_es.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties index 8c367dd..69d45cf 100644 --- a/src/main/resources/Translations/Translations_es.properties +++ b/src/main/resources/Translations/Translations_es.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From e18a6008d2a7cb685ad7d87fdab323c3a0f6b27f Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:13 +0100 Subject: [PATCH 006/128] New translations Translations_en.properties (French) New French translation --- .../Translations/Translations_fr.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties index 8c367dd..69d45cf 100644 --- a/src/main/resources/Translations/Translations_fr.properties +++ b/src/main/resources/Translations/Translations_fr.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From 4da2e1e28535250d62f5df6b8d0cca1407854cb6 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:15 +0100 Subject: [PATCH 007/128] New translations Translations_en.properties (Russian) New Russian translation --- .../Translations/Translations_ru.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties index 8c367dd..69d45cf 100644 --- a/src/main/resources/Translations/Translations_ru.properties +++ b/src/main/resources/Translations/Translations_ru.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From a5056da2e4f321886b8b200fc91bef9fd0ca9e28 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:16 +0100 Subject: [PATCH 008/128] New translations Translations_en.properties (Turkish) New Turkish translation --- .../Translations/Translations_tr.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties index 8c367dd..69d45cf 100644 --- a/src/main/resources/Translations/Translations_tr.properties +++ b/src/main/resources/Translations/Translations_tr.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From 230dabeb09851c500641c98c36a71490c90dbde6 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sat, 21 Dec 2019 18:23:18 +0100 Subject: [PATCH 009/128] New translations Translations_en.properties (Chinese Simplified) New Chinese Simplified translation --- .../Translations/Translations_zh.properties | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties index 8c367dd..69d45cf 100644 --- a/src/main/resources/Translations/Translations_zh.properties +++ b/src/main/resources/Translations/Translations_zh.properties @@ -2,21 +2,19 @@ # @author Skidder / GregTCLTK # -# -# @author Skidder / GregTCLTK -# - Hadder = Hadder +user = <@User> searchterm = username = number = /all -guildprefix = prefix = +userprefix = vc-name/id = user+nickname = <@user> region = guildid = +content = error = Error none = None @@ -29,6 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. +commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. @@ -98,7 +97,7 @@ commands.moderation.clear.message.error.title = No messages\! commands.moderation.clear.message.error.description = There are no messages in this channel. commands.moderation.clear.help.description = Deletes the specified number of messages. commands.moderation.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.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.invitedetect.activate.success.title = Successfully activated @@ -206,6 +205,8 @@ commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Successfully left commands.owner.guildleave.success.description = I successfully left %extra%. +commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot commands.owner.shutdown.success.title = Shutdown @@ -214,9 +215,9 @@ commands.owner.test.success = TEST my friends 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.success.description = `%extra%` is your new language now. commands.settings.language.help.description = Sets the new primary language for a user. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% -commands.settings.prefix.success.description = I successfully set the new prefix for you to %extra%. +commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. commands.settings.prefix.help.description = Sets a new Prefix From fcaaa68daa7c0b656290fab8fcb8443b6836ff33 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 18:43:23 +0100 Subject: [PATCH 010/128] Removed unused imports --- src/main/java/com/bbn/hadder/commands/owner/TestCommand.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java index ae25810..58aaca5 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/TestCommand.java @@ -2,8 +2,6 @@ package com.bbn.hadder.commands.owner; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; -import com.bbn.hadder.core.Perm; -import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor.MessageType; /* From 0e69b22ab1a93b7fd3330ac75d34b7814b0ecc89 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 19:09:02 +0100 Subject: [PATCH 011/128] Better code --- .../commands/moderation/InviteDetectCommand.java | 1 - .../java/com/bbn/hadder/core/CommandHandler.java | 16 +++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java index 37f9b0d..b85fee6 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/InviteDetectCommand.java @@ -9,7 +9,6 @@ import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.core.Perm; import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; @Perms(Perm.MANAGE_SERVER) public class InviteDetectCommand implements Command { diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index a51e674..c8e8dd3 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -35,15 +35,13 @@ public class CommandHandler { CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); - if (cmd.getClass().getAnnotations().length>0) { - if (!Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { - for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { - if (!perm.check(commandEvent)) { - commandEvent.getTextChannel() - .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) - .queue(); - return; - } + if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { + for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { + if (!perm.check(commandEvent)) { + commandEvent.getTextChannel() + .sendMessage(commandEvent.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION).build()) + .queue(); + return; } } } From 77462097a8db36a279a67ce9f4f28c4bfc043c55 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 20:25:31 +0100 Subject: [PATCH 012/128] Unused import --- .../java/com/bbn/hadder/commands/moderation/PrefixCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java index 43742d9..86f2c12 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/PrefixCommand.java @@ -5,7 +5,6 @@ import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.core.Perm; import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; -import net.dv8tion.jda.api.Permission; @Perms(Perm.MANAGE_SERVER) public class PrefixCommand implements Command { From d482639e8232bbacdf1de16f51e1502780ebca40 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 21 Dec 2019 21:45:09 +0100 Subject: [PATCH 013/128] Beta --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 450bede..7346825 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ Hadder Hadder - 0.10-ALPHA + 0.1-BETA Hadder From e051c8122129c72029760fdbe40e24ced54481cb Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 01:04:10 +0100 Subject: [PATCH 014/128] A new command? :thinking: --- src/main/java/com/bbn/hadder/Hadder.java | 1 + src/main/resources/Translations/Translations_en.properties | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index f96792f..e6c8972 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -88,6 +88,7 @@ public class Hadder { new AboutCommand(), new LanguageCommand(), new ClydeCommand(), + new PlayCommand(), new StarBoardCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index c72b94c..c5b75dc 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -178,6 +178,8 @@ commands.music.leave.success.description = I successfully disconnected from the commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild commands.music.leave.help.description = Leaves a voice channel +commands.music.play.success.title = %extra% Now playing %extra% +commands.music.play.success.description = Playing some cool stuff xD commands.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From 895d06d7148b03afe4c07f6eba7a172be853cf60 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 09:57:40 +0100 Subject: [PATCH 015/128] Screenshare is back --- src/main/java/com/bbn/hadder/Hadder.java | 4 ++- .../hadder/commands/music/StopCommand.java | 31 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/StopCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index e6c8972..9fbd153 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -57,6 +57,7 @@ public class Hadder { new RebootCommand(), new EqualsCommand(), new InviteCommand(), + new ScreenShareCommand(), new NickCommand(), new PrefixCommand(), new BlowjobCommand(), @@ -89,7 +90,8 @@ public class Hadder { new LanguageCommand(), new ClydeCommand(), new PlayCommand(), - new StarBoardCommand()), config, helpCommand); + new StarBoardCommand(), + new StopCommand()), config, helpCommand); builder.addEventListeners( new MentionListener(rethink), diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java new file mode 100644 index 0000000..da77b5e --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java @@ -0,0 +1,31 @@ +package com.bbn.hadder.commands.music; + +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; + +/** + * @author Skidder / GregTCLTK + */ + +public class StopCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + } + + @Override + public String[] labels() { + return new String[]{"stop"}; + } + + @Override + public String description() { + return "Stops the song"; + } + + @Override + public String usage() { + return ""; + } +} From f45a3b7a74580fe58b4cc935f7dd38c04aa5986a Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 10:06:02 +0100 Subject: [PATCH 016/128] Delete LICENSE --- LICENSE | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 LICENSE diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d97a1fb..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Big Bot Network - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. From fbbd751bede104d9312d51a1bbc3e91cbccabb5e Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 10:07:21 +0100 Subject: [PATCH 017/128] Create LICENSE --- LICENSE | 661 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 661 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. From 4f7f675a8a10105904cd0aa947120d0bc1781dd0 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 11:12:01 +0100 Subject: [PATCH 018/128] Update --- src/main/java/com/bbn/hadder/utils/MessageEditor.java | 2 +- .../resources/Translations/Translations_en.properties | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/utils/MessageEditor.java b/src/main/java/com/bbn/hadder/utils/MessageEditor.java index 2f22d85..c7205f1 100644 --- a/src/main/java/com/bbn/hadder/utils/MessageEditor.java +++ b/src/main/java/com/bbn/hadder/utils/MessageEditor.java @@ -56,7 +56,7 @@ public class MessageEditor { switch (type) { case INFO: builder - .setColor(new Color(47, 94, 105)) + .setColor(new Color(78, 156, 174)) .setFooter("Hadder", "https://bigbotnetwork.com/images/Hadder.png") .setTimestamp(Instant.now()); break; diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index c5b75dc..feb12e4 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -178,8 +178,14 @@ commands.music.leave.success.description = I successfully disconnected from the commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.title = %extra% Now playing %extra% -commands.music.play.success.description = Playing some cool stuff xD +commands.music.play.success.description = 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From b1f82ae79d9a82226d6d3b7836728877834607f0 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 12:24:48 +0100 Subject: [PATCH 019/128] Better Starboard --- .../com/bbn/hadder/commands/moderation/StarBoardCommand.java | 2 +- src/main/resources/Translations/Translations_en.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java index 50d6987..3371eec 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/StarBoardCommand.java @@ -14,7 +14,7 @@ public class StarBoardCommand implements Command { event.getChannel().sendMessage( event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, - "commands.moderation.starboard.successchannel","") + "commands.moderation.starboard.success.title","") .build()) .queue(); } else { diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 2fd24e1..dc6faa8 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -162,7 +162,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From 54d109226a86a172dc1d3c213818b1514814a4b2 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 12:50:38 +0100 Subject: [PATCH 020/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 69d45cf..3b69594 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -27,7 +27,7 @@ commands.fun.gif.help.description = Look for a GIF on Giphy commands.fun.meme.success.title = Your random meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. -commands.fun.clyde.help.description = Send a message as a webhook named Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. From 6bce81e2f893b3f0700cc49034465d10ebb81728 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 14:30:51 +0100 Subject: [PATCH 021/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 06576ae..16be264 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -4,7 +4,7 @@ Hadder = Hadderino -user = <@User> +user = <@Benutzer> searchterm = username = number = /all @@ -16,15 +16,15 @@ region = guildid = content = -error = Error -none = None -success\! = Success\! +error = Fehler +none = Keine +success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme +commands.fun.meme.success.title = Deine zufällige Meme commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. commands.fun.meme.help.description = Sends you a random meme. commands.fun.clyde.help.description = Send a message as a webhook named Clyde. From 9bc30cc2bff4e1614d8e5974ee6e0f61a98a84b2 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 14:40:40 +0100 Subject: [PATCH 022/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 16be264..28c5419 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -2,12 +2,12 @@ # @author Skidder / GregTCLTK # -Hadder = Hadderino +Hadder = Hadder user = <@Benutzer> searchterm = username = -number = /all +number = /alle prefix = userprefix = vc-name/id = @@ -17,15 +17,15 @@ guildid = content = error = Fehler -none = Keine +none = Nicht angegeben success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. -commands.fun.gif.error.description = Please try again with another term. +commands.fun.gif.error.description = Bitte versuchen Sie es erneut mit einem anderen Begriff. commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Deine zufällige Meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +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 = Sends you a random meme. commands.fun.clyde.help.description = Send a message as a webhook named Clyde. From a7c9578ee545094b1329cb98d3f5526fb5f6562a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 14:46:21 +0100 Subject: [PATCH 023/128] Music stuff yk --- .../hadder/utils/AudioPlayerSendHandler.java | 25 ------------------- .../Translations/Translations_en.properties | 10 ++++++-- 2 files changed, 8 insertions(+), 27 deletions(-) delete mode 100644 src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java diff --git a/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java b/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java deleted file mode 100644 index ff3f483..0000000 --- a/src/main/java/com/bbn/hadder/utils/AudioPlayerSendHandler.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.bbn.hadder.utils; - -/* - * @author Skidder / GregTCLTK - */ - -import net.dv8tion.jda.api.audio.AudioSendHandler; - -import javax.annotation.Nullable; -import java.nio.ByteBuffer; - -public class AudioPlayerSendHandler implements AudioSendHandler { - - @Override - public boolean canProvide() { - return false; - } - - @Nullable - @Override - public ByteBuffer provide20MsAudio() { - - return null; - } -} diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index dc6faa8..078cf78 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -180,12 +180,18 @@ commands.music.leave.error.description = I'm currently in no Voice Channel on th 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.title = %extra% Now playing %extra% -commands.music.play.success.description = Now playing %extra% +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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the song. +commands.music.stop.help.description = Stops the playing song commands.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From 9733a8d465edf14a5b17fad0e3192618f0417433 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 14:50:35 +0100 Subject: [PATCH 024/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 28c5419..36db102 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -7,11 +7,11 @@ Hadder = Hadder user = <@Benutzer> searchterm = username = -number = /alle -prefix = +number = /all +prefix = userprefix = vc-name/id = -user+nickname = <@user> +user+nickname = <@Benutzer> region = guildid = content = @@ -22,7 +22,7 @@ success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. -commands.fun.gif.error.description = Bitte versuchen Sie es erneut mit einem anderen Begriff. +commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. commands.fun.gif.help.description = Look for a GIF on 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. @@ -37,10 +37,10 @@ commands.general.about.help.description = Shows infos about Hadder commands.general.equals.string.first.request = Please send me the first String commands.general.equals.string.second.request = Please send me the second String commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! -commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +commands.general.equals.string.equals.false = Ja, aber eigentlich nein. Das ist nicht dasselbe. +commands.general.equals.string.first = Erste Zeichenkette +commands.general.equals.string.second = Zweite Zeichenkette +commands.general.equals.string.result = Ergebnis commands.general.equals.help.description = Check if two strings are the same commands.general.help.field.usage = Benutzung commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu\! From c35a9d0afc90fdd833d08a262ef075b0171f1512 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 15:00:39 +0100 Subject: [PATCH 025/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 36db102..dbb8ca0 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -8,7 +8,7 @@ user = <@Benutzer> searchterm = username = number = /all -prefix = +prefix = userprefix = vc-name/id = user+nickname = <@Benutzer> @@ -36,10 +36,10 @@ commands.general.about.success.field.one.description = Hadder is completely free commands.general.about.help.description = Shows infos about Hadder commands.general.equals.string.first.request = Please send me the first String commands.general.equals.string.second.request = Please send me the second String -commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! +commands.general.equals.string.equals.true = Ja\! Die erste String entspricht der zweiten String\! commands.general.equals.string.equals.false = Ja, aber eigentlich nein. Das ist nicht dasselbe. -commands.general.equals.string.first = Erste Zeichenkette -commands.general.equals.string.second = Zweite Zeichenkette +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 = Check if two strings are the same commands.general.help.field.usage = Benutzung @@ -60,19 +60,19 @@ commands.misc.feedback.success.title = Feedback successfully sent commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio -commands.misc.github.success.location = Location -commands.misc.github.success.website = Website +commands.misc.github.success.location = Standort +commands.misc.github.success.website = Webseite 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.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.description = Dieser Benutzer existiert nicht\! commands.misc.github.connect.title = Connect you GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal +commands.misc.screenshare.id.error.title = 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 on this Guild. commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name From 901cc399d4af7727ea5cc159a183e191f67020e2 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 15:10:52 +0100 Subject: [PATCH 026/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index dbb8ca0..21ed7f1 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -34,14 +34,14 @@ commands.general.about.success.description = Hadder is an open source Discord bo commands.general.about.success.field.one.title = Support the Developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% commands.general.about.help.description = Shows infos about Hadder -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String -commands.general.equals.string.equals.true = Ja\! Die erste String entspricht der zweiten String\! +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 = Erster String commands.general.equals.string.second = Zweiter String commands.general.equals.string.result = Ergebnis -commands.general.equals.help.description = Check if two strings are the same +commands.general.equals.help.description = Prüfe, ob zwei Strings gleich sind commands.general.help.field.usage = Benutzung commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu\! commands.general.help.help.description = Shows each command or explains its usage From 83597f2d9be56535b2c47c8c17384deeb19fc032 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 15:20:42 +0100 Subject: [PATCH 027/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 21ed7f1..8603e66 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -41,7 +41,7 @@ commands.general.equals.string.equals.false = Ja, aber eigentlich nein. Das ist 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üfe, ob zwei Strings gleich sind +commands.general.equals.help.description = Prüft ob zwei Strings gleich sind commands.general.help.field.usage = Benutzung commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu\! commands.general.help.help.description = Shows each command or explains its usage From 869c9987ab270fadcd5c6940a0ec70ffdb37cbbc Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 15:25:54 +0100 Subject: [PATCH 028/128] i18n stuff --- src/main/resources/Translations/Translations_en.properties | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 078cf78..7281940 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -173,7 +174,7 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild @@ -191,7 +192,7 @@ commands.music.play.success.length = Length 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.stop.help.description = Stops the playing song +commands.music.stop.help.description = Stops the song commands.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From 7738951911ab1779d9c47bb81b2b47e6029ba6fb Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 15:26:32 +0100 Subject: [PATCH 029/128] AudioPlayerSendHandler leak^^ --- .../hadder/audio/AudioPlayerSendHandler.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/audio/AudioPlayerSendHandler.java diff --git a/src/main/java/com/bbn/hadder/audio/AudioPlayerSendHandler.java b/src/main/java/com/bbn/hadder/audio/AudioPlayerSendHandler.java new file mode 100644 index 0000000..1863de2 --- /dev/null +++ b/src/main/java/com/bbn/hadder/audio/AudioPlayerSendHandler.java @@ -0,0 +1,49 @@ +package com.bbn.hadder.audio; + +import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; +import com.sedmelluq.discord.lavaplayer.track.playback.AudioFrame; +import net.dv8tion.jda.api.audio.AudioSendHandler; + +import javax.annotation.Nullable; +import java.nio.ByteBuffer; + +/** + * @author Skidder / GregTCLTK + */ + +public class AudioPlayerSendHandler implements AudioSendHandler { + + private final AudioPlayer audioPlayer; + private AudioFrame lastFrame; + + public AudioPlayerSendHandler(AudioPlayer audioPlayer) { + this.audioPlayer = audioPlayer; + } + + @Override + public boolean canProvide() { + if (lastFrame == null) { + lastFrame = audioPlayer.provide(); + } + + return lastFrame != null; + } + + @Nullable + @Override + public ByteBuffer provide20MsAudio() { + if (lastFrame == null) { + lastFrame = audioPlayer.provide(); + } + + byte[] data = lastFrame != null ? lastFrame.getData() : null; + lastFrame = null; + + return ByteBuffer.wrap(data); + } + + @Override + public boolean isOpus() { + return true; + } +} From 88bff41e9a709510a702d2aa92110fe82ce59152 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 15:30:39 +0100 Subject: [PATCH 030/128] Uh a AudioManager --- src/main/java/com/bbn/hadder/audio/AudioManager.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/audio/AudioManager.java diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java new file mode 100644 index 0000000..b133dca --- /dev/null +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -0,0 +1,9 @@ +package com.bbn.hadder.audio; + +/** + * @author Skidder / GregTCLTK + */ + +public class AudioManager { + +} From c2cb2ae09164f0fbd82debe74398352f58227d19 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 15:40:36 +0100 Subject: [PATCH 031/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 8603e66..4a3ce59 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -12,7 +12,7 @@ prefix = userprefix = vc-name/id = user+nickname = <@Benutzer> -region = +region = guildid = content = @@ -20,7 +20,7 @@ error = Fehler none = Nicht angegeben success\! = Erfolgreich\! -commands.fun.avatar.success.title = Avatar of %extra% +commands.fun.avatar.success.title = Avatar von %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. commands.fun.gif.help.description = Look for a GIF on Giphy @@ -31,8 +31,8 @@ commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% +commands.general.about.success.field.one.title = Unterstütz die Entwickler +commands.general.about.success.field.one.description = Hadder ist für alle völlig kostenlos. Wir würden uns freuen, wenn Sie etwas Geld spenden [here]%extra% commands.general.about.help.description = Shows infos about 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 @@ -57,7 +57,7 @@ commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. commands.misc.feedback.success.title = Feedback successfully sent -commands.misc.github.link.title = Link your GitHub Account +commands.misc.github.link.title = Verbinde dein GitHub Konto commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio commands.misc.github.success.location = Standort From f126d3f868498de8574f20eec77b2c557407d1c0 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 15:50:36 +0100 Subject: [PATCH 032/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 4a3ce59..445a72c 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -31,8 +31,8 @@ commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Unterstütz die Entwickler -commands.general.about.success.field.one.description = Hadder ist für alle völlig kostenlos. Wir würden uns freuen, wenn Sie etwas Geld spenden [here]%extra% +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 uns freuen, wenn du [hier]%extra% etwas Geld spenden würdest. commands.general.about.help.description = Shows infos about 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 @@ -74,7 +74,7 @@ commands.misc.github.help.description = Displays information about a GitHub user commands.misc.screenshare.success.title = Here's your Url to share your Screen 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 on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel +commands.misc.screenshare.channel.error.title = Bitte wähle einen Sprachkanal commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. @@ -93,32 +93,32 @@ 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.message.error.title = No messages\! -commands.moderation.clear.message.error.description = There are no messages in this channel. -commands.moderation.clear.help.description = Deletes the specified number of messages. +commands.moderation.clear.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.invitedetect.activate.success.title = Successfully activated +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 = Already activated +commands.moderation.invitedetect.activate.error.title = Bereits aktiviert commands.moderation.invitedetect.activate.error.description = The invite link detection is already activated on this guild. -commands.moderation.invitedetect.deactivate.success.title = Successfully deactivated +commands.moderation.invitedetect.deactivate.success.title = Erfolgreich deaktiviert commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this guild. -commands.moderation.invitedetect.deactivate.error.title = Already deactivated +commands.moderation.invitedetect.deactivate.error.title = Bereits deaktiviert commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this guild. commands.moderation.invitedetect.help.description = Activate or deactivate the Discord invite link detection. commands.moderation.kick.success.title = %extra% Successfully kicked %extra% commands.moderation.kick.success.description = I successfully kicked %extra%. -commands.moderation.kick.error.title = Not possible -commands.moderation.kick.myself.error.description = I can not kick myself\! -commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! -commands.moderation.kick.help.description = Kicks one or more user from the server. -commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. +commands.moderation.kick.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 = Ich habe erfolgreich 69 Mitglieder 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.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. +commands.moderation.link.error.title = Warte, das ist illegal. commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this commands.moderation.link.request.accept.title = ) wants to link guilds\! commands.moderation.link.request.accept.description = React with the reactions to accept or decline it @@ -126,12 +126,12 @@ commands.moderation.link.set.title = Set the thing boi commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. -commands.moderation.nick.myself.success.description = I successfully changed my nickname. +commands.moderation.nick.myself.success.description = Ich habe meinen Spitznamen erfolgreich geändert. commands.moderation.nick.massnick.success.description = I successfully nicked %extra% Members. -commands.moderation.nick.help.description = Rename a one or more user. -commands.moderation.regionchange.regions.title = All regions -commands.moderation.regionchange.success.title = Successfully set region -commands.moderation.regionchange.success.description = I successfully set the new server region to %extra%. +commands.moderation.nick.help.description = Benenne 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 auf %extra% gesetzt. 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.description = I successfully added %extra% roles to %extra_two% members. From 1276b76a91c364fd3dbb2a643e59e48a0748b78c Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 16:30:41 +0100 Subject: [PATCH 033/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 445a72c..5a2554f 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -89,10 +89,10 @@ 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.lear.all.success.title = Successfully deleted +commands.moderation.lear.all.success.title = Erfolgreich gelöscht 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.number.error.description = Sie müssen eine Zahl zwischen 1 und 99 wählen\! +commands.moderation.clear.success.description = %extra% Nachrichten erfolgreich 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. @@ -108,7 +108,7 @@ commands.moderation.invitedetect.deactivate.success.title = Erfolgreich deaktivi commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this guild. commands.moderation.invitedetect.deactivate.error.title = Bereits deaktiviert commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this guild. -commands.moderation.invitedetect.help.description = Activate or deactivate the Discord invite link detection. +commands.moderation.invitedetect.help.description = Aktiviere oder deaktiviere die Discord Einladungs-Linkerkennung. commands.moderation.kick.success.title = %extra% Successfully kicked %extra% commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Nicht möglich @@ -128,10 +128,10 @@ commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. 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.help.description = Benenne einen oder mehrere Benutzer um. +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 auf %extra% 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.description = I successfully added %extra% roles to %extra_two% members. @@ -140,15 +140,15 @@ commands.moderation.role.remove.success.description = I successfully removed %ex commands.moderation.role.help.description = Adds and removes one or more role(s) from one or more user(s) commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. -commands.moderation.rules.channel.error.title = Channel not found +commands.moderation.rules.channel.error.title = Kanal nicht gefunden commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Regeln commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. -commands.moderation.rules.role.error.title = Role does not exist +commands.moderation.rules.role.error.title = Rolle existiert nicht commands.moderation.rules.role.error.description = The specified role does not exist on this guild. -commands.moderation.rules.guild.error.title = Wrong Guild +commands.moderation.rules.guild.error.title = Falsche Guild commands.moderation.rules.guild.error.description = The mentioned channel must be on this guild\! commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. From c798fff7615ddc0494bcadec4f9d60f9aee1e060 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 16:40:39 +0100 Subject: [PATCH 034/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 5a2554f..264c67f 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -92,7 +92,7 @@ commands.moderation.ban.help.description = Bans one ore more user from the serve commands.moderation.lear.all.success.title = Erfolgreich gelöscht commands.moderation.lear.all.success.description = I successfully deleted %extra% messages. commands.moderation.clear.number.error.description = Sie müssen eine Zahl zwischen 1 und 99 wählen\! -commands.moderation.clear.success.description = %extra% Nachrichten erfolgreich gelöscht. +commands.moderation.clear.success.description = 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. @@ -108,7 +108,7 @@ commands.moderation.invitedetect.deactivate.success.title = Erfolgreich deaktivi commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this guild. commands.moderation.invitedetect.deactivate.error.title = Bereits deaktiviert commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this guild. -commands.moderation.invitedetect.help.description = Aktiviere oder deaktiviere die Discord Einladungs-Linkerkennung. +commands.moderation.invitedetect.help.description = Aktiviert oder deaktiviert die Discord Einladungserkennung. commands.moderation.kick.success.title = %extra% Successfully kicked %extra% commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Nicht möglich @@ -140,7 +140,7 @@ commands.moderation.role.remove.success.description = I successfully removed %ex commands.moderation.role.help.description = Adds and removes one or more role(s) from one or more user(s) commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. -commands.moderation.rules.channel.error.title = Kanal nicht gefunden +commands.moderation.rules.channel.error.title = Kanal konnte nicht gefunden werden commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. commands.moderation.rules.rules.title = Regeln commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. From 7907bedf154dbddbe56dcb015f8927a98825a3b0 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 16:43:37 +0100 Subject: [PATCH 035/128] Fix --- src/main/resources/Translations/Translations_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 7281940..8544d79 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -115,7 +115,7 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. From f373b5e9692318f8dc2a5eb8a2c5c6f60c041c2a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 16:47:37 +0100 Subject: [PATCH 036/128] Music pre-release!!! --- .../java/com/bbn/hadder/audio/AudioInfo.java | 28 +++++ .../com/bbn/hadder/audio/AudioManager.java | 100 ++++++++++++++++ .../com/bbn/hadder/audio/TrackManager.java | 73 ++++++++++++ .../hadder/commands/music/PlayCommand.java | 109 ++++++++++++++++++ .../hadder/commands/music/StopCommand.java | 12 +- 5 files changed, 320 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/audio/AudioInfo.java create mode 100644 src/main/java/com/bbn/hadder/audio/TrackManager.java create mode 100644 src/main/java/com/bbn/hadder/commands/music/PlayCommand.java diff --git a/src/main/java/com/bbn/hadder/audio/AudioInfo.java b/src/main/java/com/bbn/hadder/audio/AudioInfo.java new file mode 100644 index 0000000..8aa35e9 --- /dev/null +++ b/src/main/java/com/bbn/hadder/audio/AudioInfo.java @@ -0,0 +1,28 @@ +package com.bbn.hadder.audio; + +import com.sedmelluq.discord.lavaplayer.track.AudioTrack; +import net.dv8tion.jda.api.entities.Member; + +/** + * @author Skidder / GregTCLTK + */ + +public class AudioInfo { + + private final AudioTrack track; + private final Member author; + + AudioInfo(AudioTrack track, Member author) { + this.track = track; + this.author = author; + } + + public AudioTrack getTrack() { + return track; + } + + public Member getAuthor() { + return author; + } + +} diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index b133dca..60db2f8 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -1,9 +1,109 @@ package com.bbn.hadder.audio; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; +import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; +import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; +import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; +import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; +import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; +import com.sedmelluq.discord.lavaplayer.track.AudioTrack; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Message; + +import java.util.AbstractMap; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + /** * @author Skidder / GregTCLTK */ public class AudioManager { + public static final Map> players = new HashMap<>(); + public static final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); + + public static void loadTrack(String identifier, CommandEvent event, Message msg) { + + Guild guild = event.getGuild(); + AudioManager.getPlayer(guild); + + myManager.loadItemOrdered(guild, identifier, new AudioLoadResultHandler() { + + @Override + public void trackLoaded(AudioTrack track) { + AudioManager.getTrackManager(guild).queue(track, 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"), track.getInfo().title, false) + .addField(event.getMessageEditor().getTerm("commands.music.play.success.author"), track.getInfo().author, true) + .addField(event.getMessageEditor().getTerm("commands.music.play.success.length"), + String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(track.getInfo().length), + TimeUnit.MILLISECONDS.toMinutes(track.getInfo().length) % TimeUnit.HOURS.toMinutes(1), + TimeUnit.MILLISECONDS.toSeconds(track.getInfo().length) % TimeUnit.MINUTES.toSeconds(1)), true) + .build()).queue(); + } + + @Override + public void playlistLoaded(AudioPlaylist playlist) { + if (playlist.getSelectedTrack() != null) { + trackLoaded(playlist.getSelectedTrack()); + } else if (playlist.isSearchResult()) { + trackLoaded(playlist.getTracks().get(0)); + } else { + for (int i = 0; i < Math.min(playlist.getTracks().size(), 200); i++) { + AudioManager.getTrackManager(guild).queue(playlist.getTracks().get(i), event.getMember()); + } + } + } + + @Override + public void noMatches() { + msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.play.error.match.title", "❌", + "commands.music.play.error.match.description", "") + .build()).queue(); + } + + @Override + public void loadFailed(FriendlyException e) { + msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.play.error.load.title", "❌", + "commands.music.play.error.load.description", "") + .build()).queue(); + } + }); + } + + public static boolean hasPlayer(Guild guild) { + return players.containsKey(guild.getId()); + } + + public static AudioPlayer getPlayer(Guild guild) { + AudioPlayer p; + if (hasPlayer(guild)) { + p = players.get(guild.getId()).getKey(); + } else { + p = createPlayer(guild); + } + return p; + } + + public static TrackManager getTrackManager(Guild guild) { + return players.get(guild.getId()).getValue(); + } + + public static AudioPlayer createPlayer(Guild guild) { + AudioPlayer nPlayer = myManager.createPlayer(); + TrackManager manager = new TrackManager(nPlayer); + nPlayer.addListener(manager); + guild.getAudioManager().setSendingHandler(new AudioPlayerSendHandler(nPlayer)); + players.put(guild.getId(), new AbstractMap.SimpleEntry<>(nPlayer, manager)); + return nPlayer; + } + } diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java new file mode 100644 index 0000000..b4c1e9a --- /dev/null +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -0,0 +1,73 @@ +package com.bbn.hadder.audio; + +import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; +import com.sedmelluq.discord.lavaplayer.player.event.AudioEventAdapter; +import com.sedmelluq.discord.lavaplayer.track.AudioTrack; +import com.sedmelluq.discord.lavaplayer.track.AudioTrackEndReason; +import net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Member; +import net.dv8tion.jda.api.entities.VoiceChannel; + +import java.util.*; +import java.util.concurrent.LinkedBlockingQueue; + +/** + * @author Skidder / GregTCLTK + */ + +public class TrackManager extends AudioEventAdapter { + + private final AudioPlayer player; + private final Queue queue; + + public TrackManager(AudioPlayer player) { + this.player = player; + this.queue = new LinkedBlockingQueue<>(); + } + + public void queue(AudioTrack track, Member author) { + AudioInfo info = new AudioInfo(track, author); + queue.add(info); + + if (player.getPlayingTrack() == null) { + player.playTrack(track); + } + } + + @Override + public void onTrackStart(AudioPlayer player, AudioTrack track) { + AudioInfo info = queue.element(); + VoiceChannel vChan = info.getAuthor().getVoiceState().getChannel(); + if (vChan == null) { + player.stopTrack(); + } else { + info.getAuthor().getGuild().getAudioManager().openAudioConnection(vChan); + } + } + + @Override + public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { + Guild g = queue.poll().getAuthor().getGuild(); + if (queue.isEmpty()) { + g.getAudioManager().closeAudioConnection(); + } else { + player.playTrack(queue.element().getTrack()); + } + } + + public Set getQueuedTracks() { + return new LinkedHashSet<>(queue); + } + + public void purgeQueue() { + queue.clear(); + } + + public void remove(AudioInfo entry) { + queue.remove(entry); + } + + public AudioInfo getTrackInfo(AudioTrack track) { + return queue.stream().filter(audioInfo -> audioInfo.getTrack().equals(track)).findFirst().orElse(null); + } +} diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java new file mode 100644 index 0000000..9e34f3e --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -0,0 +1,109 @@ +package com.bbn.hadder.commands.music; + +import com.bbn.hadder.audio.AudioInfo; +import com.bbn.hadder.audio.AudioManager; +import com.bbn.hadder.audio.AudioPlayerSendHandler; +import com.bbn.hadder.audio.TrackManager; +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.utils.MessageEditor; +import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; +import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; +import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; +import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; +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 net.dv8tion.jda.api.entities.Guild; +import net.dv8tion.jda.api.entities.Message; + +import java.net.URL; +import java.sql.Timestamp; +import java.util.*; +import java.util.concurrent.TimeUnit; + +import static com.bbn.hadder.audio.AudioManager.myManager; + +/** + * @author Skidder / GregTCLTK + */ + +public class PlayCommand implements Command { + + /* + private static final String CD = "\uD83D\uDCBF"; + private static final String MIC = "\uD83C\uDFA4 **|>** "; */ + + @Override + public void executed(String[] args, CommandEvent event) { + if (args.length > 0) { + if (event.getMember().getVoiceState().inVoiceChannel()) { + String input = event.getMessage().getContentRaw().replaceFirst(event.getRethink().getGuildPrefix(event.getGuild().getId()) + "play ", "").replaceFirst(event.getRethink().getUserPrefix(event.getAuthor().getId()) + "play ", ""); + try { + new URL(input).toURI(); + Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.play.load.title", "⭕", + "commands.music.play.load.description", "").build()).complete(); + AudioManager.loadTrack(input, event, msg); + } catch (Exception ignore) { + Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.play.load.title", "⏯", + "commands.music.play.load.description", "").build()).complete(); + AudioManager.loadTrack("ytsearch: " + input, event, msg); + } + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( + MessageEditor.MessageType.WARNING, + "commands.music.join.error.channel.title", + "commands.music.join.error.channel.description") + .build()).queue(); + } + } else event.getHelpCommand().sendHelp(this, event); + + /* OUTSOURCE THIS + Guild guild = event.getGuild(); + if (args.length == 1) { + switch (args[0].toLowerCase()) { + case "info": + if (!hasPlayer(guild) || getPlayer(guild).getPlayingTrack() == null) { // No song is playing + event.getTextChannel().sendMessage("No song is being played at the moment! *It's your time to shine..*").queue(); + } else { + AudioTrack track = getPlayer(guild).getPlayingTrack(); + event.getTextChannel().sendMessage("Track Info" + String.format(QUEUE_DESCRIPTION, CD, getOrNull(track.getInfo().title), + "\n\u23F1 **|>** `[ " + getTimestamp(track.getPosition()) + " / " + getTimestamp(track.getInfo().length) + " ]`", + "\n" + MIC, getOrNull(track.getInfo().author), + "\n\uD83C\uDFA7 **|>** " + "")).queue(); + } + break; + + case "queue": + if (!hasPlayer(guild) || getTrackManager(guild).getQueuedTracks().isEmpty()) { + event.getTextChannel().sendMessage("The queue is empty! Load a song with **" + + "dd" + "music play**!").queue(); + } else { + StringBuilder sb = new StringBuilder(); + Set queue = getTrackManager(guild).getQueuedTracks(); + queue.forEach(audioInfo -> sb.append(buildQueueMessage(audioInfo))); + } + break; + } + } */ + + } + + @Override + public String[] labels() { + return new String[]{"play"}; + } + + @Override + public String description() { + return "commands.music.play.help.description"; + } + + @Override + public String usage() { + return "song"; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java index da77b5e..1adeb88 100644 --- a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java @@ -1,7 +1,9 @@ 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; /** * @author Skidder / GregTCLTK @@ -11,7 +13,13 @@ public class StopCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - + AudioManager.players.remove(event.getGuild().getId()); + AudioManager.getPlayer(event.getGuild()).destroy(); + AudioManager.getTrackManager(event.getGuild()).purgeQueue(); + event.getGuild().getAudioManager().closeAudioConnection(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.stop.success.title", + "commands.music.stop.success.description").build()).queue(); } @Override @@ -21,7 +29,7 @@ public class StopCommand implements Command { @Override public String description() { - return "Stops the song"; + return "commands.music.stop.help.description"; } @Override From 4814cb00a02e04595e45d0d0b212c7b259b503c9 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 16:50:06 +0100 Subject: [PATCH 037/128] Unused import fix --- .../bbn/hadder/commands/music/PlayCommand.java | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java index 9e34f3e..37854d0 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -1,29 +1,13 @@ package com.bbn.hadder.commands.music; -import com.bbn.hadder.audio.AudioInfo; import com.bbn.hadder.audio.AudioManager; -import com.bbn.hadder.audio.AudioPlayerSendHandler; -import com.bbn.hadder.audio.TrackManager; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; -import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; -import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; -import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; -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 net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Message; import java.net.URL; -import java.sql.Timestamp; -import java.util.*; -import java.util.concurrent.TimeUnit; -import static com.bbn.hadder.audio.AudioManager.myManager; /** * @author Skidder / GregTCLTK From 8e53bf8cf958d7c7664eb3121abdb093bdf781dc Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 16:50:36 +0100 Subject: [PATCH 038/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 264c67f..4e4edb5 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -9,7 +9,7 @@ searchterm = username = number = /all prefix = -userprefix = +userprefix = vc-name/id = user+nickname = <@Benutzer> region = @@ -84,13 +84,13 @@ commands.misc.screenshare.help.description = Shows you the link to share your sc commands.moderation.ban.success.title = %extra% Successfully banned %extra% 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.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 %extra% Mitglieder erfolgreich gebannt\! commands.moderation.ban.help.description = Bans one ore more user from the server commands.moderation.lear.all.success.title = Erfolgreich gelöscht -commands.moderation.lear.all.success.description = I successfully deleted %extra% messages. +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.message.error.title = Keine Nachrichten\! From 10b0e40be3611d563acd698fde6ae1b9e04121db Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 18:40:37 +0100 Subject: [PATCH 039/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 4e4edb5..4a6842b 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -175,11 +175,11 @@ commands.music.join.error.channel.description = You aren't in a Voice Channel. commands.music.join.help.description = Joins your voice channel commands.music.leave.success.title = \= Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel -commands.music.leave.error.tile = Not connected -commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild -commands.music.leave.help.description = Leaves a voice channel +commands.music.leave.error.tile = Nicht verbunden +commands.music.leave.error.description = Ich bin derzeit in keinem Sprachkanal auf dieser Guild +commands.music.leave.help.description = Verlässt einen Sprachkanal -commands.nsfw.gif.error.title = GIF not showing? Click here +commands.nsfw.gif.error.title = GIF wird nicht angezeigt? Klicken Sie hier 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. From c55c8ca7dbce24a4207bd7046d36022ec6fca4f3 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 18:50:37 +0100 Subject: [PATCH 040/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 4a6842b..cd08451 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -180,11 +180,11 @@ commands.music.leave.error.description = Ich bin derzeit in keinem Sprachkanal a commands.music.leave.help.description = Verlässt einen Sprachkanal commands.nsfw.gif.error.title = GIF wird nicht angezeigt? Klicken Sie hier -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.boobs.help.description = Shows a random boob gif. +commands.nsfw.img.error.title = Bild wird nicht angezeigt? Klicken Sie 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.boobs.help.description = Zeigt einen zufälligen Boob GIF. commands.nsfw.cum.help.description = Shows a random cum gif. commands.nsfw.erotic.help.description = Shows a random erotic picture. commands.nsfw.feet.help.description = Shows a random feet gif. From 8a316f7db84b9006eb976b8db0051774b84712f4 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 19:00:38 +0100 Subject: [PATCH 041/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index cd08451..cad43c4 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -185,17 +185,17 @@ 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.boobs.help.description = Zeigt einen zufälligen Boob GIF. -commands.nsfw.cum.help.description = Shows a random cum gif. -commands.nsfw.erotic.help.description = Shows a random erotic picture. -commands.nsfw.feet.help.description = Shows a random feet gif. -commands.nsfw.fingering.help.description = Shows a random fingering gif. -commands.nsfw.linking.help.description = Shows a random licking gif. -commands.nsfw.porn.help.description = Shows a random porn gif. -commands.nsfw.pussy.help.description = Shows a random pussy gif. -commands.nsfw.randomporn.help.description = Shows a completely random porn gif. -commands.nsfw.solo.help.description = Shows a random solo gif. -commands.nsfw.spank.help.description = Shows a random spank gif. -commands.nsfw.trans.help.description = Shows a random trans picture. +commands.nsfw.cum.help.description = Zeigt einen zufälligen Cum GIF. +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 = Zeigt einen zufälligen fingering GIF. +commands.nsfw.linking.help.description = Zeigt einen zufälligen licking GIF. +commands.nsfw.porn.help.description = Zeigt einen zufälligen Porn GIF. +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 = Zeigt einen zufälligen spank GIF. +commands.nsfw.trans.help.description = Zeigt ein zufälliges Trans Bild. commands.owner.eval.success.title = Eval Command commands.owner.eval.success.input = Input From 0471d4fa1bfa64e87bc9a83c796f178281f33a67 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 19:31:02 +0100 Subject: [PATCH 042/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 3b69594..70c0afc 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -23,9 +23,9 @@ success\! = Success\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. -commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +commands.fun.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Your random meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sends you a random meme. commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. From 0588c5df1d0881b4aef46cd4ed54f635b611f800 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 19:40:37 +0100 Subject: [PATCH 043/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index cad43c4..a29ce8d 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -87,7 +87,7 @@ commands.moderation.ban.success.description = I successfully baned %extra% 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 %extra% Mitglieder erfolgreich gebannt\! +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.lear.all.success.title = Erfolgreich gelöscht commands.moderation.lear.all.success.description = Ich habe erfolgreich %extra% Nachrichten gelöscht. @@ -179,37 +179,37 @@ commands.music.leave.error.tile = Nicht verbunden commands.music.leave.error.description = Ich bin derzeit in keinem Sprachkanal auf dieser Guild commands.music.leave.help.description = Verlässt einen Sprachkanal -commands.nsfw.gif.error.title = GIF wird nicht angezeigt? Klicken Sie hier -commands.nsfw.img.error.title = Bild wird nicht angezeigt? Klicken Sie hier +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.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.feet.help.description = Zeigt einen zufälligen Feet GIF. -commands.nsfw.fingering.help.description = Zeigt einen zufälligen fingering GIF. -commands.nsfw.linking.help.description = Zeigt einen zufälligen licking GIF. +commands.nsfw.fingering.help.description = Shows a random fingering gif. +commands.nsfw.linking.help.description = Shows a random licking gif. commands.nsfw.porn.help.description = Zeigt einen zufälligen Porn GIF. 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.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 = Zeigt einen zufälligen spank GIF. +commands.nsfw.spank.help.description = Shows a random spank gif. commands.nsfw.trans.help.description = Zeigt ein zufälliges Trans Bild. commands.owner.eval.success.title = Eval Command -commands.owner.eval.success.input = Input -commands.owner.eval.success.output = Output +commands.owner.eval.success.input = Eingabe +commands.owner.eval.success.output = Ausgabe commands.owner.eval.success.timing = Timing commands.owner.eval.help.description = Execute the given code commands.owner.eval.help.usage = -commands.owner.guildleave.success.title = Successfully left -commands.owner.guildleave.success.description = I successfully left %extra%. -commands.owner.guildleave.error.title = Can not leave +commands.owner.guildleave.success.title = Erfolgreich verlassen +commands.owner.guildleave.success.description = Ich habe %extra% erfolgreich verlassen. +commands.owner.guildleave.error.title = Verlassen nicht möglich commands.owner.guildleave.error.description = I can not leave from this guild. Maybe this isn't a ID? commands.owner.guildleave.help.description = Quit from a guild commands.owner.reboot.help.description = Restart the bot -commands.owner.shutdown.success.title = Shutdown +commands.owner.shutdown.success.title = Fährt herrunter commands.owner.shutdown.help.description = Shuts the Bot down commands.owner.test.success = TEST my friends commands.owner.test.help.description = Just a little Test Command From 0ca8a931d452564c702d1bb3a40aaceaa2de070c Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 19:50:33 +0100 Subject: [PATCH 044/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index a29ce8d..dc6efb6 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -121,7 +121,7 @@ commands.moderation.link.request.success.description = If i'm on this guild i se commands.moderation.link.error.title = Warte, das ist illegal. commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it +commands.moderation.link.request.accept.description = Reagiere mit den Reaktionen um es zu akzeptieren oder abzulehnen commands.moderation.link.set.title = Set the thing boi commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% @@ -141,9 +141,9 @@ commands.moderation.role.help.description = Adds and removes one or more role(s) commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Kanal konnte nicht gefunden werden -commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. +commands.moderation.rules.channel.error.description = Ich kann den angegebenen Kanal nicht finden. Bitte starte das Setup erneut. commands.moderation.rules.rules.title = Regeln -commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. +commands.moderation.rules.rules.description = Der Kanal wurde erfolgreich auf %extra% gesetzt. Bitte senden Sie mir die Regeln jetzt. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. commands.moderation.rules.role.error.title = Rolle existiert nicht @@ -201,7 +201,7 @@ commands.owner.eval.success.title = Eval Command commands.owner.eval.success.input = Eingabe commands.owner.eval.success.output = Ausgabe commands.owner.eval.success.timing = Timing -commands.owner.eval.help.description = Execute the given code +commands.owner.eval.help.description = führe den angegebenen Code aus commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Erfolgreich verlassen commands.owner.guildleave.success.description = Ich habe %extra% erfolgreich verlassen. @@ -216,7 +216,7 @@ 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.description = Legt die neue primäre Sprache für einen Benutzer fest. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. From 6f5ca7248b397bb81ac0c171a1d930c7d977f82d Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 19:50:35 +0100 Subject: [PATCH 045/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 70c0afc..6f4a5e8 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -33,7 +33,7 @@ commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% -commands.general.about.help.description = Shows infos about Hadder +commands.general.about.help.description = Shows informations about Hadder. commands.general.equals.string.first.request = Please send me the first String commands.general.equals.string.second.request = Please send me the second String commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! From a60cf667472844dedb38f59d8f195cc3cf805a9c Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 20:00:37 +0100 Subject: [PATCH 046/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index dc6efb6..413623b 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -107,10 +107,10 @@ commands.moderation.invitedetect.activate.error.description = The invite link de commands.moderation.invitedetect.deactivate.success.title = Erfolgreich deaktiviert commands.moderation.invitedetect.deactivate.success.description = I successfully deactivated the invite link detection for this guild. commands.moderation.invitedetect.deactivate.error.title = Bereits deaktiviert -commands.moderation.invitedetect.deactivate.error.description = The invite link detection is already deactivated on this guild. +commands.moderation.invitedetect.deactivate.error.description = Die Einladungslink-Erkennung ist auf dieser Guild bereits deaktiviert. commands.moderation.invitedetect.help.description = Aktiviert oder deaktiviert die Discord Einladungserkennung. -commands.moderation.kick.success.title = %extra% Successfully kicked %extra% -commands.moderation.kick.success.description = I successfully kicked %extra%. +commands.moderation.kick.success.title = %extra% hat %extra% erfolgreich gekickt +commands.moderation.kick.success.description = Ich habe %extra% erfolgreich gekickt. 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. From 29a1b3947d69ac7ed3de9dda782c1a2e0be18cfe Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 20:17:05 +0100 Subject: [PATCH 047/128] Remove Link command strings --- src/main/resources/Translations/Translations_en.properties | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 8544d79..67a2706 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -118,13 +118,6 @@ commands.moderation.kick.yourself.error.description = You can't kick yourself. commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. From d462b0822dce334a8ba42edc25738684b5ed8473 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 20:28:00 +0100 Subject: [PATCH 048/128] Fix --- .../com/bbn/hadder/audio/AudioManager.java | 26 ++++++++++++------- .../hadder/commands/music/PlayCommand.java | 15 ++++++++--- .../hadder/commands/music/StopCommand.java | 6 ++--- 3 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index 60db2f8..9f54aab 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -6,6 +6,7 @@ import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; +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; @@ -23,19 +24,24 @@ import java.util.concurrent.TimeUnit; public class AudioManager { - public static final Map> players = new HashMap<>(); - public static final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); - public static void loadTrack(String identifier, CommandEvent event, Message msg) { + public AudioManager() { + AudioSourceManagers.registerRemoteSources(myManager); + } + + public final Map> players = new HashMap<>(); + public final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); + + public void loadTrack(String identifier, CommandEvent event, Message msg) { Guild guild = event.getGuild(); - AudioManager.getPlayer(guild); + getPlayer(guild); myManager.loadItemOrdered(guild, identifier, new AudioLoadResultHandler() { @Override public void trackLoaded(AudioTrack track) { - AudioManager.getTrackManager(guild).queue(track, event.getMember()); + getTrackManager(guild).queue(track, event.getMember()); msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.play.success.loading.title", "⏯", "", "") @@ -56,7 +62,7 @@ public class AudioManager { trackLoaded(playlist.getTracks().get(0)); } else { for (int i = 0; i < Math.min(playlist.getTracks().size(), 200); i++) { - AudioManager.getTrackManager(guild).queue(playlist.getTracks().get(i), event.getMember()); + getTrackManager(guild).queue(playlist.getTracks().get(i), event.getMember()); } } } @@ -79,11 +85,11 @@ public class AudioManager { }); } - public static boolean hasPlayer(Guild guild) { + public boolean hasPlayer(Guild guild) { return players.containsKey(guild.getId()); } - public static AudioPlayer getPlayer(Guild guild) { + public AudioPlayer getPlayer(Guild guild) { AudioPlayer p; if (hasPlayer(guild)) { p = players.get(guild.getId()).getKey(); @@ -93,11 +99,11 @@ public class AudioManager { return p; } - public static TrackManager getTrackManager(Guild guild) { + public TrackManager getTrackManager(Guild guild) { return players.get(guild.getId()).getValue(); } - public static AudioPlayer createPlayer(Guild guild) { + public AudioPlayer createPlayer(Guild guild) { AudioPlayer nPlayer = myManager.createPlayer(); TrackManager manager = new TrackManager(nPlayer); nPlayer.addListener(manager); diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java index 37854d0..a4b8019 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -1,13 +1,17 @@ package com.bbn.hadder.commands.music; import com.bbn.hadder.audio.AudioManager; +import com.bbn.hadder.audio.TrackManager; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; +import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; +import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; +import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; import net.dv8tion.jda.api.entities.Message; import java.net.URL; - +import java.util.*; /** * @author Skidder / GregTCLTK @@ -15,10 +19,14 @@ import java.net.URL; public class PlayCommand implements Command { + private final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); + public final Map> players = new HashMap<>(); + /* private static final String CD = "\uD83D\uDCBF"; private static final String MIC = "\uD83C\uDFA4 **|>** "; */ + @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { @@ -29,12 +37,12 @@ public class PlayCommand implements Command { Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.play.load.title", "⭕", "commands.music.play.load.description", "").build()).complete(); - AudioManager.loadTrack(input, event, msg); + new AudioManager().loadTrack(input, event, msg); } catch (Exception ignore) { Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.play.load.title", "⏯", "commands.music.play.load.description", "").build()).complete(); - AudioManager.loadTrack("ytsearch: " + input, event, msg); + new AudioManager().loadTrack("ytsearch: " + input, event, msg); } } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( @@ -45,6 +53,7 @@ public class PlayCommand implements Command { } } else event.getHelpCommand().sendHelp(this, event); + /* OUTSOURCE THIS Guild guild = event.getGuild(); if (args.length == 1) { diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java index 1adeb88..ab03799 100644 --- a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java @@ -13,9 +13,9 @@ public class StopCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - AudioManager.players.remove(event.getGuild().getId()); - AudioManager.getPlayer(event.getGuild()).destroy(); - AudioManager.getTrackManager(event.getGuild()).purgeQueue(); + new AudioManager().players.remove(event.getGuild().getId()); + new AudioManager().getPlayer(event.getGuild()).destroy(); + new AudioManager().getTrackManager(event.getGuild()).purgeQueue(); event.getGuild().getAudioManager().closeAudioConnection(); event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.music.stop.success.title", From 7bc151fc48c6f8f06f02b3f97a15ec7d49136f8c Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 20:30:36 +0100 Subject: [PATCH 049/128] Removed unused imports --- .../com/bbn/hadder/commands/music/PlayCommand.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java index a4b8019..118b7a2 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -1,17 +1,12 @@ package com.bbn.hadder.commands.music; import com.bbn.hadder.audio.AudioManager; -import com.bbn.hadder.audio.TrackManager; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.utils.MessageEditor; -import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; -import com.sedmelluq.discord.lavaplayer.player.AudioPlayerManager; -import com.sedmelluq.discord.lavaplayer.player.DefaultAudioPlayerManager; import net.dv8tion.jda.api.entities.Message; import java.net.URL; -import java.util.*; /** * @author Skidder / GregTCLTK @@ -19,9 +14,6 @@ import java.util.*; public class PlayCommand implements Command { - private final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); - public final Map> players = new HashMap<>(); - /* private static final String CD = "\uD83D\uDCBF"; private static final String MIC = "\uD83C\uDFA4 **|>** "; */ @@ -40,7 +32,7 @@ public class PlayCommand implements Command { new AudioManager().loadTrack(input, event, msg); } catch (Exception ignore) { Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, - "commands.music.play.load.title", "⏯", + "commands.music.play.load.title", "⭕", "commands.music.play.load.description", "").build()).complete(); new AudioManager().loadTrack("ytsearch: " + input, event, msg); } From 49c5e8688bfe3b608187df23f405f53315a6ccdc Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 20:30:42 +0100 Subject: [PATCH 050/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 6f4a5e8..f2820c2 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -34,8 +34,8 @@ commands.general.about.success.description = Hadder is an open source Discord bo commands.general.about.success.field.one.title = Support the Developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% commands.general.about.help.description = Shows informations about Hadder. -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String +commands.general.equals.string.first.request = Please send me the first String. +commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First String From 8d2bb6162ee7a9f4f8e77823bf44767f7511eaac Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 20:40:40 +0100 Subject: [PATCH 051/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index f2820c2..825d093 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -32,7 +32,7 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% +commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows informations about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. From 6ea63342af2e49790ace0678f66c38a0d50c395d Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sun, 22 Dec 2019 20:48:11 +0100 Subject: [PATCH 052/128] Outsource yk --- src/main/java/com/bbn/hadder/Hadder.java | 1 + .../hadder/commands/music/PlayCommand.java | 20 +-------- .../hadder/commands/music/QueueCommand.java | 42 +++++++++++++++++++ 3 files changed, 44 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/QueueCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 9fbd153..c9c2f77 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -91,6 +91,7 @@ public class Hadder { new ClydeCommand(), new PlayCommand(), new StarBoardCommand(), + new QueueCommand(), new StopCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java index 118b7a2..bae30df 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -18,7 +18,6 @@ public class PlayCommand implements Command { private static final String CD = "\uD83D\uDCBF"; private static final String MIC = "\uD83C\uDFA4 **|>** "; */ - @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { @@ -48,9 +47,6 @@ public class PlayCommand implements Command { /* OUTSOURCE THIS Guild guild = event.getGuild(); - if (args.length == 1) { - switch (args[0].toLowerCase()) { - case "info": if (!hasPlayer(guild) || getPlayer(guild).getPlayingTrack() == null) { // No song is playing event.getTextChannel().sendMessage("No song is being played at the moment! *It's your time to shine..*").queue(); } else { @@ -59,21 +55,7 @@ public class PlayCommand implements Command { "\n\u23F1 **|>** `[ " + getTimestamp(track.getPosition()) + " / " + getTimestamp(track.getInfo().length) + " ]`", "\n" + MIC, getOrNull(track.getInfo().author), "\n\uD83C\uDFA7 **|>** " + "")).queue(); - } - break; - - case "queue": - if (!hasPlayer(guild) || getTrackManager(guild).getQueuedTracks().isEmpty()) { - event.getTextChannel().sendMessage("The queue is empty! Load a song with **" - + "dd" + "music play**!").queue(); - } else { - StringBuilder sb = new StringBuilder(); - Set queue = getTrackManager(guild).getQueuedTracks(); - queue.forEach(audioInfo -> sb.append(buildQueueMessage(audioInfo))); - } - break; - } - } */ + }*/ } diff --git a/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java b/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java new file mode 100644 index 0000000..8756e38 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java @@ -0,0 +1,42 @@ +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 java.util.Set; + +/** + * @author Skidder / GregTCLTK + */ + +public class QueueCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (!new AudioManager().hasPlayer(event.getGuild()) || new AudioManager().getTrackManager(event.getGuild()).getQueuedTracks().isEmpty()) { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "").build()).queue(); + } else { + Set queue = new AudioManager().getTrackManager(event.getGuild()).getQueuedTracks(); + // Insert message here + } + } + + @Override + public String[] labels() { + return new String[]{"queue"}; + } + + @Override + public String description() { + return "Shows the music queue."; + } + + @Override + public String usage() { + return ""; + } +} From 78511f9b3e100d3222bd6f6aabc5afb5f404cf42 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 21:00:40 +0100 Subject: [PATCH 053/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 825d093..0a5cf44 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -44,11 +44,11 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.help.description = Shows each command or 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 to invite Hadder to your server +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Shows the ping to the Discord API commands.misc.feedback.title.request.title = Feedback Topic @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Please send me the feedback t commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio From 60cc08daf849d96f7e870aee2de450df4c1ffaa9 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 21:10:44 +0100 Subject: [PATCH 054/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 0a5cf44..4ce8379 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -33,7 +33,7 @@ commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. -commands.general.about.help.description = Shows informations about Hadder. +commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! @@ -71,8 +71,8 @@ commands.misc.github.user.error.description = This user does not exist\! commands.misc.github.connect.title = Connect you GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. -commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name From 667bc275df06d2faba5516d78ff92b6a1a84bc8d Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 21:20:37 +0100 Subject: [PATCH 055/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 4ce8379..8de8cd4 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -73,9 +73,9 @@ commands.misc.github.connect.description = [Please connect your GitHub account h commands.misc.github.help.description = Displays information about a GitHub user profile. commands.misc.screenshare.success.title = Here's your URL to share your Screen commands.misc.screenshare.id.error.title = Wait. That's illegal. -commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel -commands.misc.screenshare.channel.error.description = There is more than one channel with this name +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.channel.error.description = There is more than one channel with this name. commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up From 9496307009a433e486ebf65a819f5acc9d7a8467 Mon Sep 17 00:00:00 2001 From: Skidder Date: Sun, 22 Dec 2019 21:31:17 +0100 Subject: [PATCH 056/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 8de8cd4..13b64d4 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -79,7 +79,7 @@ commands.misc.screenshare.channel.error.description = There is more than one cha commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up -commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From f6d9e7f62455b0dbcc1ac365cc8f94e545b03aee Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 13:50:56 +0100 Subject: [PATCH 057/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 413623b..5e6649d 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -10,23 +10,23 @@ username = number = /all prefix = userprefix = -vc-name/id = +vc-name/id = user+nickname = <@Benutzer> region = guildid = -content = +content = error = Fehler none = Nicht angegeben success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar von %extra% -commands.fun.avatar.help.description = Sends the avatar of the specified member. +commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Mitglieds. commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. -commands.fun.gif.help.description = Look for a GIF on Giphy +commands.fun.gif.help.description = Suche 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 = Sends you a random meme. +commands.fun.meme.help.description = Sendet dir einen zufälligen Meme. commands.fun.clyde.help.description = Send a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About From c54929d0ee18127c1ee6500a1e77ad94846dface Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:00:50 +0100 Subject: [PATCH 058/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 5e6649d..ea9f4e0 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -27,13 +27,13 @@ commands.fun.gif.help.description = Suche 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 = Send 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 - About -commands.general.about.success.description = Hadder is an open source Discord bot. +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 = Unterstütze die Entwickler commands.general.about.success.field.one.description = Hadder ist für alle völlig kostenlos. Wir würden uns freuen, wenn du [hier]%extra% etwas Geld spenden würdest. -commands.general.about.help.description = Shows infos about Hadder +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\! @@ -43,11 +43,11 @@ 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.help.field.usage = Benutzung -commands.general.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.error.description = Ich brauche die Links Einbettung 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.invite.success.title = Invite me\! -commands.general.invite.success.description = [Invite me here\!]%extra% +commands.general.invite.success.title = Lade mich ein\! +commands.general.invite.success.description = [Lade mich hier ein\!]%extra% commands.general.invite.help.description = Shows the invitation to invite Hadder to your server commands.general.ping.help.description = Shows the ping to the Discord API From d9a67f86829a9d574ac5568e47a2bb8b7191b3a4 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:00:51 +0100 Subject: [PATCH 059/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 13b64d4..e1d6abf 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -44,7 +44,7 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage. +commands.general.help.help.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Invite me\! commands.general.invite.success.description = [Invite me here\!]%extra% From 6a44bb7773479f2751a0eec0b782e4e8cc8e7b69 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:10:46 +0100 Subject: [PATCH 060/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index ea9f4e0..02f204f 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -48,22 +48,22 @@ commands.general.help.help.description = Zeigt jeden Befehl an und erklärt sein commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Lade mich ein\! commands.general.invite.success.description = [Lade mich hier ein\!]%extra% -commands.general.invite.help.description = Shows the invitation to invite Hadder to your server -commands.general.ping.help.description = Shows the ping to the Discord API +commands.general.invite.help.description = Zeigt die Einladung, um Hadder auf deinen Server einzuladen +commands.general.ping.help.description = Zeigt den Ping zur Discord API -commands.misc.feedback.title.request.title = Feedback Topic -commands.misc.feedback.title.request.description = Please send me the feedback topic. -commands.misc.feedback.description.request.title = Feedback Description -commands.misc.feedback.description.request.description = Please send me the feedback description now. -commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.title.request.title = Feedback-Thema +commands.misc.feedback.title.request.description = Bitte senden Sie mir das Thema des Feedbacks. +commands.misc.feedback.description.request.title = Feedback-Beschreibung +commands.misc.feedback.description.request.description = Bitte senden Sie mir jetzt die Feedback-Beschreibung. +commands.misc.feedback.help.description = Sendet Feedback direkt an die Entwickler. +commands.misc.feedback.success.title = Feedback erfolgreich gesendet commands.misc.github.link.title = Verbinde dein GitHub Konto -commands.misc.github.success.title = Information about %extra% -commands.misc.github.success.bio = User bio +commands.misc.github.success.title = Informationen über %extra% +commands.misc.github.success.bio = Benutzer-Biographie commands.misc.github.success.location = Standort commands.misc.github.success.website = Webseite -commands.misc.github.success.repositories = Public repositories -commands.misc.github.success.gists = Public gists +commands.misc.github.success.repositories = Öffentliche Repositories +commands.misc.github.success.gists = Öffentliche Gists commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following commands.misc.github.api.error.description = The GitHub API might be down at the moment\! From 2193105643be1d1450afb30dc1bedf742f9a6ac2 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:20:42 +0100 Subject: [PATCH 061/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 02f204f..f53cef4 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -10,18 +10,18 @@ username = number = /all prefix = userprefix = -vc-name/id = +vc-name/id = user+nickname = <@Benutzer> region = guildid = -content = +content = error = Fehler none = Nicht angegeben success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar von %extra% -commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Mitglieds. +commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Benutzers. commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. commands.fun.gif.help.description = Suche nach einem GIF auf Giphy commands.fun.meme.success.title = Dein zufälliges Meme @@ -30,7 +30,7 @@ commands.fun.meme.help.description = Sendet dir einen zufälligen Meme. 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.description = Hadder ist ein Open-Source Discord Bot. 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 uns freuen, wenn du [hier]%extra% etwas Geld spenden würdest. commands.general.about.help.description = Zeigt Informationen über Hadder @@ -43,7 +43,7 @@ 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.help.field.usage = Benutzung -commands.general.help.error.description = Ich brauche die Links Einbettung Berechtigung, um das Hilfe-Menü zu senden\! +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.invite.success.title = Lade mich ein\! @@ -53,23 +53,23 @@ 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. -commands.misc.feedback.description.request.title = Feedback-Beschreibung -commands.misc.feedback.description.request.description = Bitte senden Sie mir jetzt die Feedback-Beschreibung. +commands.misc.feedback.description.request.title = Feedback Beschreibung +commands.misc.feedback.description.request.description = Bitte senden Sie mir jetzt die Feedback Beschreibung. commands.misc.feedback.help.description = Sendet Feedback direkt an die Entwickler. commands.misc.feedback.success.title = Feedback erfolgreich gesendet commands.misc.github.link.title = Verbinde dein GitHub Konto commands.misc.github.success.title = Informationen über %extra% -commands.misc.github.success.bio = Benutzer-Biographie +commands.misc.github.success.bio = Biographie commands.misc.github.success.location = Standort commands.misc.github.success.website = Webseite commands.misc.github.success.repositories = Öffentliche Repositories commands.misc.github.success.gists = Öffentliche Gists -commands.misc.github.success.followers = Followers -commands.misc.github.success.following = Following -commands.misc.github.api.error.description = The GitHub API might be down at the moment\! +commands.misc.github.success.followers = Abonnenten +commands.misc.github.success.following = Folgt +commands.misc.github.api.error.description = Die GitHub API könnte im Moment nicht verfügbar sein\! commands.misc.github.user.error.description = Dieser Benutzer existiert nicht\! -commands.misc.github.connect.title = Connect you GH account -commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% +commands.misc.github.connect.title = Verbinde dein GH-Konto +commands.misc.github.connect.description = [Bitte verbinden Sie Ihr GitHub-Konto hier]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. commands.misc.screenshare.success.title = Here's your Url to share your Screen commands.misc.screenshare.id.error.title = Warte, das ist illegal @@ -78,7 +78,7 @@ commands.misc.screenshare.channel.error.title = Bitte wähle einen Sprachkanal commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. -commands.misc.screenshare.channel.existing.error = Hol' up +commands.misc.screenshare.channel.existing.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 on this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. From 758fee0a57379f7f11f42c87d926c5764ba22169 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:20:44 +0100 Subject: [PATCH 062/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index e1d6abf..1ffdea2 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -68,14 +68,14 @@ commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following 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.connect.title = Connect you GH account +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. commands.misc.screenshare.success.title = Here's your URL to share your Screen commands.misc.screenshare.id.error.title = Wait. That's illegal. commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.channel.error.title = Please choose a Voice Channel -commands.misc.screenshare.channel.error.description = There is more than one channel with this name. +commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up From 1954198f717d4a2d8d5f295abf43ea4876a63963 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2019 13:22:04 +0000 Subject: [PATCH 063/128] Bump JDA from 4.0.0_79 to 4.1.0_81 Bumps JDA from 4.0.0_79 to 4.1.0_81. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7346825..dbf03e6 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ net.dv8tion JDA - 4.0.0_79 + 4.1.0_81 org.json From 9d44db47d0d3e4d103733d05d0b48cd46688c965 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:23:46 +0100 Subject: [PATCH 064/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index f53cef4..f526cae 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -68,9 +68,9 @@ commands.misc.github.success.followers = Abonnenten commands.misc.github.success.following = Folgt commands.misc.github.api.error.description = Die GitHub API könnte im Moment nicht verfügbar sein\! commands.misc.github.user.error.description = Dieser Benutzer existiert nicht\! -commands.misc.github.connect.title = Verbinde dein GH-Konto +commands.misc.github.connect.title = Verbinde dein GH Konto commands.misc.github.connect.description = [Bitte verbinden Sie Ihr GitHub-Konto hier]%extra% -commands.misc.github.help.description = Displays information about a GitHub user profile. +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.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 on this Guild. @@ -109,12 +109,12 @@ commands.moderation.invitedetect.deactivate.success.description = I successfully commands.moderation.invitedetect.deactivate.error.title = Bereits deaktiviert commands.moderation.invitedetect.deactivate.error.description = Die Einladungslink-Erkennung ist auf dieser Guild bereits deaktiviert. commands.moderation.invitedetect.help.description = Aktiviert oder deaktiviert die Discord Einladungserkennung. -commands.moderation.kick.success.title = %extra% hat %extra% erfolgreich gekickt +commands.moderation.kick.success.title = %extra% Erfolgreich gekickt %extra% commands.moderation.kick.success.description = Ich habe %extra% erfolgreich gekickt. 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 = Ich habe erfolgreich 69 Mitglieder gekickt\! +commands.moderation.kick.mass.success.description = Ich habe erfolgreich %extra% Mitglieder 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.link.request.success.description = If i'm on this guild i sent a message to accept the link. @@ -143,7 +143,7 @@ commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. commands.moderation.rules.channel.error.title = Kanal konnte nicht gefunden werden commands.moderation.rules.channel.error.description = Ich kann den angegebenen Kanal nicht finden. Bitte starte das Setup erneut. commands.moderation.rules.rules.title = Regeln -commands.moderation.rules.rules.description = Der Kanal wurde erfolgreich auf %extra% gesetzt. Bitte senden Sie mir die Regeln jetzt. +commands.moderation.rules.rules.description = Der Kanal wurde erfolgreich auf %extra% gesetzt. Bitte senden Sie mir jetzt die Regeln. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. commands.moderation.rules.role.error.title = Rolle existiert nicht @@ -201,7 +201,7 @@ commands.owner.eval.success.title = Eval Command commands.owner.eval.success.input = Eingabe commands.owner.eval.success.output = Ausgabe commands.owner.eval.success.timing = Timing -commands.owner.eval.help.description = führe den angegebenen Code aus +commands.owner.eval.help.description = Führt den angegebenen Code aus commands.owner.eval.help.usage = commands.owner.guildleave.success.title = Erfolgreich verlassen commands.owner.guildleave.success.description = Ich habe %extra% erfolgreich verlassen. @@ -216,7 +216,7 @@ 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 = Legt die neue primäre Sprache für einen Benutzer fest. +commands.settings.language.help.description = Führt den angegebenen Code aus. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. From 2b72a53fe8907cc3e4a705426ff9aa937c171e01 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:31:44 +0100 Subject: [PATCH 065/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index f526cae..339b842 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -23,19 +23,19 @@ success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar von %extra% commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Benutzers. commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. -commands.fun.gif.help.description = Suche 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.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Dein zufälliges Meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sendet dir einen zufälligen Meme. -commands.fun.clyde.help.description = Sendet eine Nachricht als Webhook namens Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named 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 = Unterstütze die Entwickler -commands.general.about.success.field.one.description = Hadder ist für alle völlig kostenlos. Wir würden uns freuen, wenn du [hier]%extra% etwas Geld spenden würdest. -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.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. +commands.general.about.help.description = Shows information about Hadder. +commands.general.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 = Erster String @@ -44,11 +44,11 @@ commands.general.equals.string.result = Ergebnis commands.general.equals.help.description = Prüft ob zwei Strings gleich sind 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.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Lade mich ein\! commands.general.invite.success.description = [Lade mich hier ein\!]%extra% -commands.general.invite.help.description = Zeigt die Einladung, um Hadder auf deinen Server einzuladen +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Zeigt den Ping zur Discord API commands.misc.feedback.title.request.title = Feedback-Thema @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Bitte senden Sie mir das Them commands.misc.feedback.description.request.title = Feedback Beschreibung commands.misc.feedback.description.request.description = Bitte senden Sie mir jetzt die Feedback Beschreibung. commands.misc.feedback.help.description = Sendet Feedback direkt an die Entwickler. -commands.misc.feedback.success.title = Feedback erfolgreich gesendet +commands.misc.feedback.success.title = Feedback erfolgreich gesendet\! commands.misc.github.link.title = Verbinde dein GitHub Konto commands.misc.github.success.title = Informationen über %extra% commands.misc.github.success.bio = Biographie @@ -68,18 +68,18 @@ commands.misc.github.success.followers = Abonnenten commands.misc.github.success.following = Folgt commands.misc.github.api.error.description = Die GitHub API könnte im Moment nicht verfügbar sein\! commands.misc.github.user.error.description = Dieser Benutzer existiert nicht\! -commands.misc.github.connect.title = Verbinde dein GH Konto +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Bitte verbinden Sie Ihr 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.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 on this Guild. -commands.misc.screenshare.channel.error.title = Bitte wähle einen Sprachkanal -commands.misc.screenshare.channel.error.description = There is more than one channel with this name +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. +commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. +commands.misc.screenshare.channel.error.title = Please choose a Voice Channel +commands.misc.screenshare.channel.error.description = Es gibt mehr als einen Kanal mit diesem Namen commands.misc.screenshare.number.error.title = You specified a wrong number\! -commands.misc.screenshare.number.error.description = This isn't a Number. +commands.misc.screenshare.number.error.description = 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 on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From 8e2b702ed18212f676c3cacdccee9c74a3ac1f0c Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:31:46 +0100 Subject: [PATCH 066/128] New translations Translations_en.properties (Spanish) New Spanish translation --- .../Translations/Translations_es.properties | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties index 69d45cf..1ffdea2 100644 --- a/src/main/resources/Translations/Translations_es.properties +++ b/src/main/resources/Translations/Translations_es.properties @@ -23,19 +23,19 @@ success\! = Success\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. -commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +commands.fun.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Your random meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sends you a random meme. -commands.fun.clyde.help.description = Send a message as a webhook named Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% -commands.general.about.help.description = Shows infos about Hadder -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String +commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. +commands.general.about.help.description = Shows information about Hadder. +commands.general.equals.string.first.request = Please send me the first String. +commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First String @@ -44,11 +44,11 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.help.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Invite me\! commands.general.invite.success.description = [Invite me here\!]%extra% -commands.general.invite.help.description = Shows the invitation to invite Hadder to your server +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Shows the ping to the Discord API commands.misc.feedback.title.request.title = Feedback Topic @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Please send me the feedback t commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio @@ -68,18 +68,18 @@ commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following 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.connect.title = Connect you GH account +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. -commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal -commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. +commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. +commands.misc.screenshare.channel.error.title = Please choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up -commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From c32ae834674c17d812aa754a16f680caf2483294 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:31:47 +0100 Subject: [PATCH 067/128] New translations Translations_en.properties (French) New French translation --- .../Translations/Translations_fr.properties | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties index 69d45cf..1ffdea2 100644 --- a/src/main/resources/Translations/Translations_fr.properties +++ b/src/main/resources/Translations/Translations_fr.properties @@ -23,19 +23,19 @@ success\! = Success\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. -commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +commands.fun.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Your random meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sends you a random meme. -commands.fun.clyde.help.description = Send a message as a webhook named Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% -commands.general.about.help.description = Shows infos about Hadder -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String +commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. +commands.general.about.help.description = Shows information about Hadder. +commands.general.equals.string.first.request = Please send me the first String. +commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First String @@ -44,11 +44,11 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.help.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Invite me\! commands.general.invite.success.description = [Invite me here\!]%extra% -commands.general.invite.help.description = Shows the invitation to invite Hadder to your server +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Shows the ping to the Discord API commands.misc.feedback.title.request.title = Feedback Topic @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Please send me the feedback t commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio @@ -68,18 +68,18 @@ commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following 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.connect.title = Connect you GH account +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. -commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal -commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. +commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. +commands.misc.screenshare.channel.error.title = Please choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up -commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From 016cadfe247039098d6fce8add33289ff4ba7dc9 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:31:49 +0100 Subject: [PATCH 068/128] New translations Translations_en.properties (Russian) New Russian translation --- .../Translations/Translations_ru.properties | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties index 69d45cf..1ffdea2 100644 --- a/src/main/resources/Translations/Translations_ru.properties +++ b/src/main/resources/Translations/Translations_ru.properties @@ -23,19 +23,19 @@ success\! = Success\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. -commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +commands.fun.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Your random meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sends you a random meme. -commands.fun.clyde.help.description = Send a message as a webhook named Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% -commands.general.about.help.description = Shows infos about Hadder -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String +commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. +commands.general.about.help.description = Shows information about Hadder. +commands.general.equals.string.first.request = Please send me the first String. +commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First String @@ -44,11 +44,11 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.help.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Invite me\! commands.general.invite.success.description = [Invite me here\!]%extra% -commands.general.invite.help.description = Shows the invitation to invite Hadder to your server +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Shows the ping to the Discord API commands.misc.feedback.title.request.title = Feedback Topic @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Please send me the feedback t commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio @@ -68,18 +68,18 @@ commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following 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.connect.title = Connect you GH account +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. -commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal -commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. +commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. +commands.misc.screenshare.channel.error.title = Please choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up -commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From 8e075a7b132faf4b4286c504a2eaf5f779d22342 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:31:50 +0100 Subject: [PATCH 069/128] New translations Translations_en.properties (Turkish) New Turkish translation --- .../Translations/Translations_tr.properties | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties index 69d45cf..1ffdea2 100644 --- a/src/main/resources/Translations/Translations_tr.properties +++ b/src/main/resources/Translations/Translations_tr.properties @@ -23,19 +23,19 @@ success\! = Success\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. -commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +commands.fun.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Your random meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sends you a random meme. -commands.fun.clyde.help.description = Send a message as a webhook named Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% -commands.general.about.help.description = Shows infos about Hadder -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String +commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. +commands.general.about.help.description = Shows information about Hadder. +commands.general.equals.string.first.request = Please send me the first String. +commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First String @@ -44,11 +44,11 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.help.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Invite me\! commands.general.invite.success.description = [Invite me here\!]%extra% -commands.general.invite.help.description = Shows the invitation to invite Hadder to your server +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Shows the ping to the Discord API commands.misc.feedback.title.request.title = Feedback Topic @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Please send me the feedback t commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio @@ -68,18 +68,18 @@ commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following 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.connect.title = Connect you GH account +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. -commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal -commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. +commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. +commands.misc.screenshare.channel.error.title = Please choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up -commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From 7eee000df058b5780312b3bbe0db110e3cd95650 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 14:31:51 +0100 Subject: [PATCH 070/128] New translations Translations_en.properties (Chinese Simplified) New Chinese Simplified translation --- .../Translations/Translations_zh.properties | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties index 69d45cf..1ffdea2 100644 --- a/src/main/resources/Translations/Translations_zh.properties +++ b/src/main/resources/Translations/Translations_zh.properties @@ -23,19 +23,19 @@ success\! = Success\! commands.fun.avatar.success.title = Avatar of %extra% commands.fun.avatar.help.description = Sends the avatar of the specified member. commands.fun.gif.error.description = Please try again with another term. -commands.fun.gif.help.description = Look for a GIF on Giphy -commands.fun.meme.success.title = Your random meme -commands.fun.meme.api.error = The request to the meme API could not be processed. Please try it again later. +commands.fun.gif.help.description = Looks for a GIF on Giphy. +commands.fun.meme.success.title = Your random meme\: +commands.fun.meme.api.error = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sends you a random meme. -commands.fun.clyde.help.description = Send a message as a webhook named Clyde. +commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. commands.general.about.success.field.one.title = Support the Developers -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it you donate some money [here]%extra% -commands.general.about.help.description = Shows infos about Hadder -commands.general.equals.string.first.request = Please send me the first String -commands.general.equals.string.second.request = Please send me the second String +commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. +commands.general.about.help.description = Shows information about Hadder. +commands.general.equals.string.first.request = Please send me the first String. +commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First String @@ -44,11 +44,11 @@ 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.help.error.description = I need the Embed Links Permission to send the Help Menu\! -commands.general.help.help.description = Shows each command or explains its usage +commands.general.help.help.description = Shows each command and explains its usage commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Invite me\! commands.general.invite.success.description = [Invite me here\!]%extra% -commands.general.invite.help.description = Shows the invitation to invite Hadder to your server +commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. commands.general.ping.help.description = Shows the ping to the Discord API commands.misc.feedback.title.request.title = Feedback Topic @@ -56,7 +56,7 @@ commands.misc.feedback.title.request.description = Please send me the feedback t commands.misc.feedback.description.request.title = Feedback Description commands.misc.feedback.description.request.description = Please send me the feedback description now. commands.misc.feedback.help.description = Sends feedback directly to the developers. -commands.misc.feedback.success.title = Feedback successfully sent +commands.misc.feedback.success.title = Feedback successfully sent\! commands.misc.github.link.title = Link your GitHub Account commands.misc.github.success.title = Information about %extra% commands.misc.github.success.bio = User bio @@ -68,18 +68,18 @@ commands.misc.github.success.followers = Followers commands.misc.github.success.following = Following 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.connect.title = Connect you GH account +commands.misc.github.connect.title = Connect your GH account commands.misc.github.connect.description = [Please connect your GitHub account here]%extra% commands.misc.github.help.description = Displays information about a GitHub user profile. -commands.misc.screenshare.success.title = Here's your Url to share your Screen -commands.misc.screenshare.id.error.title = Wait that's illegal -commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID? \n\nNote\: Make sure the Voice Channel is on this Guild. -commands.misc.screenshare.channel.error.title = Please Choose a Voice Channel +commands.misc.screenshare.success.title = Here's your URL to share your Screen +commands.misc.screenshare.id.error.title = Wait. That's illegal. +commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. +commands.misc.screenshare.channel.error.title = Please choose a Voice Channel commands.misc.screenshare.channel.error.description = There is more than one channel with this name commands.misc.screenshare.number.error.title = You specified a wrong number\! commands.misc.screenshare.number.error.description = This isn't a Number. commands.misc.screenshare.channel.existing.error = Hol' up -commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is on this Guild. +commands.misc.screenshare.channel.existing.description = There is no Voice Channel named like this. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.help.description = Shows you the link to share your screen. commands.moderation.ban.success.title = %extra% Successfully banned %extra% From ef74e3240bbd2fe9a9ebcd9c2aafad5c94c13215 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 23 Dec 2019 15:32:34 +0100 Subject: [PATCH 071/128] Queue Command but queue is not working --- .../java/com/bbn/hadder/audio/AudioManager.java | 1 - .../bbn/hadder/commands/music/QueueCommand.java | 16 +++++++++++++--- .../Translations/Translations_en.properties | 4 ++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index 9f54aab..835800f 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -24,7 +24,6 @@ import java.util.concurrent.TimeUnit; public class AudioManager { - public AudioManager() { AudioSourceManagers.registerRemoteSources(myManager); } diff --git a/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java b/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java index 8756e38..d2178f9 100644 --- a/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/QueueCommand.java @@ -5,6 +5,7 @@ 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; @@ -17,11 +18,20 @@ public class QueueCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (!new AudioManager().hasPlayer(event.getGuild()) || new AudioManager().getTrackManager(event.getGuild()).getQueuedTracks().isEmpty()) { - event.getTextChannel().sendMessage( - event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, "", "").build()).queue(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.WARNING, + "commands.music.queue.error.title", + "commands.music.queue.error.description" + ).build()).queue(); } else { Set queue = new AudioManager().getTrackManager(event.getGuild()).getQueuedTracks(); - // Insert message here + 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); + for (AudioInfo g : queue) { + b.addField(g.getTrack().getInfo().author, g.getTrack().getInfo().title, true); + } + event.getTextChannel().sendMessage(b.build()).queue(); } } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 67a2706..2be420e 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -186,6 +186,10 @@ 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.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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From 6c021cd07ae43587afd520efd66d5ed789fedc2a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 23 Dec 2019 16:10:49 +0100 Subject: [PATCH 072/128] Info stuff --- src/main/java/com/bbn/hadder/Hadder.java | 1 + .../com/bbn/hadder/audio/AudioManager.java | 4 ++ .../hadder/commands/general/AboutCommand.java | 2 +- .../hadder/commands/music/InfoCommand.java | 57 +++++++++++++++++++ .../hadder/commands/music/PlayCommand.java | 18 ------ 5 files changed, 63 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/InfoCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index c9c2f77..f89a23c 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -92,6 +92,7 @@ public class Hadder { new PlayCommand(), new StarBoardCommand(), new QueueCommand(), + new InfoCommand(), new StopCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index 835800f..7c0d6dd 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -111,4 +111,8 @@ public class AudioManager { return nPlayer; } + public String getOrNull(String s) { + return s.isEmpty() ? "N/A" : s; + } + } diff --git a/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java b/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java index 82d17eb..3800836 100644 --- a/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/AboutCommand.java @@ -24,7 +24,7 @@ public class AboutCommand implements Command { @Override public String[] labels() { - return new String[]{"about", "info"}; + return new String[]{"about"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java new file mode 100644 index 0000000..85605b3 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java @@ -0,0 +1,57 @@ +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.sedmelluq.discord.lavaplayer.track.AudioTrack; + +/** + * @author Skidder / GregTCLTK + */ + +public class InfoCommand implements Command { + + private static final String CD = "\uD83D\uDCBF"; + private static final String MIC = "\uD83C\uDFA4"; + + private static final String QUEUE_TITLE = "__%s has added %d new track%s to the Queue:__"; + private static final String QUEUE_DESCRIPTION = "%s **|>** %s\n%s\n%s %s\n%s"; + private static final String QUEUE_INFO = "Info about the Queue: (Size - %d)"; + private static final String ERROR = "Error while loading \"%s\""; + @Override + public void executed(String[] args, CommandEvent event) { + if (!new AudioManager().hasPlayer(event.getGuild()) || new AudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) { + event.getTextChannel().sendMessage("No song is being played at the moment! *It's your time to shine..*").queue(); + } else { + AudioTrack track = new AudioManager().getPlayer(event.getGuild()).getPlayingTrack(); + event.getTextChannel().sendMessage("Track Info" + String.format(QUEUE_DESCRIPTION, CD, new AudioManager().getOrNull(track.getInfo().title), + "\n\u23F1 **|>** `[ " + getTimestamp(track.getPosition()) + " / " + getTimestamp(track.getInfo().length) + " ]`", + "\n" + MIC, new AudioManager().getOrNull(track.getInfo().author), + "\n\uD83C\uDFA7 **|>** " + "")).queue(); + } + } + + private String getTimestamp(long milis) { + long seconds = milis / 1000; + long hours = Math.floorDiv(seconds, 3600); + seconds = seconds - (hours * 3600); + long mins = Math.floorDiv(seconds, 60); + seconds = seconds - (mins * 60); + return (hours == 0 ? "" : hours + ":") + String.format("%02d", mins) + ":" + String.format("%02d", seconds); + } + + @Override + public String[] labels() { + return new String[]{"info"}; + } + + @Override + public String description() { + return "Shows information about the playing song"; + } + + @Override + public String usage() { + return ""; + } +} diff --git a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java index bae30df..ddb5c92 100644 --- a/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/PlayCommand.java @@ -14,10 +14,6 @@ import java.net.URL; public class PlayCommand implements Command { - /* - private static final String CD = "\uD83D\uDCBF"; - private static final String MIC = "\uD83C\uDFA4 **|>** "; */ - @Override public void executed(String[] args, CommandEvent event) { if (args.length > 0) { @@ -43,20 +39,6 @@ public class PlayCommand implements Command { .build()).queue(); } } else event.getHelpCommand().sendHelp(this, event); - - - /* OUTSOURCE THIS - Guild guild = event.getGuild(); - if (!hasPlayer(guild) || getPlayer(guild).getPlayingTrack() == null) { // No song is playing - event.getTextChannel().sendMessage("No song is being played at the moment! *It's your time to shine..*").queue(); - } else { - AudioTrack track = getPlayer(guild).getPlayingTrack(); - event.getTextChannel().sendMessage("Track Info" + String.format(QUEUE_DESCRIPTION, CD, getOrNull(track.getInfo().title), - "\n\u23F1 **|>** `[ " + getTimestamp(track.getPosition()) + " / " + getTimestamp(track.getInfo().length) + " ]`", - "\n" + MIC, getOrNull(track.getInfo().author), - "\n\uD83C\uDFA7 **|>** " + "")).queue(); - }*/ - } @Override From 4b36a903f16f945d1be1eee64e31370f5bd2a308 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:32:57 +0100 Subject: [PATCH 073/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 339b842..622a378 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -15,6 +15,7 @@ user+nickname = <@Benutzer> region = guildid = content = +song = error = Fehler none = Nicht angegeben @@ -114,16 +115,9 @@ 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 = Ich habe erfolgreich %extra% Mitglieder gekickt\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! 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.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Warte, das ist illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = Reagiere mit den Reaktionen um es zu akzeptieren oder abzulehnen -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = Ich habe meinen Spitznamen erfolgreich geändert. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Nicht verbunden commands.music.leave.error.description = Ich bin derzeit in keinem Sprachkanal auf dieser Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF wird nicht angezeigt? Klicke hier commands.nsfw.img.error.title = Bild wird nicht angezeigt? Klicke hier From e59f5fcc13af704cd51c14c7654d59fde8b982d4 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:32:58 +0100 Subject: [PATCH 074/128] New translations Translations_en.properties (English) New English translation --- .../Translations/Translations_en.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 1ffdea2..ea4def7 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -114,16 +115,9 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From 9275f7455838dfa4834d4d2760e8312446d07bd8 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:33:00 +0100 Subject: [PATCH 075/128] New translations Translations_en.properties (Spanish) New Spanish translation --- .../Translations/Translations_es.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties index 1ffdea2..ea4def7 100644 --- a/src/main/resources/Translations/Translations_es.properties +++ b/src/main/resources/Translations/Translations_es.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -114,16 +115,9 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From fb6c090295f3fb8d94c323dc82392c1e7b1d739e Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:33:01 +0100 Subject: [PATCH 076/128] New translations Translations_en.properties (French) New French translation --- .../Translations/Translations_fr.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties index 1ffdea2..ea4def7 100644 --- a/src/main/resources/Translations/Translations_fr.properties +++ b/src/main/resources/Translations/Translations_fr.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -114,16 +115,9 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From dddc0ffe22d4b69f2fdf63bfd6eac275dee38315 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:33:03 +0100 Subject: [PATCH 077/128] New translations Translations_en.properties (Russian) New Russian translation --- .../Translations/Translations_ru.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties index 1ffdea2..ea4def7 100644 --- a/src/main/resources/Translations/Translations_ru.properties +++ b/src/main/resources/Translations/Translations_ru.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -114,16 +115,9 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From 44bfa8449b23f7347b35808df655f3a3fc1799dc Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:33:05 +0100 Subject: [PATCH 078/128] New translations Translations_en.properties (Turkish) New Turkish translation --- .../Translations/Translations_tr.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties index 1ffdea2..ea4def7 100644 --- a/src/main/resources/Translations/Translations_tr.properties +++ b/src/main/resources/Translations/Translations_tr.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -114,16 +115,9 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From d02ded46b28d437983f88177c07b66d762122964 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 16:33:06 +0100 Subject: [PATCH 079/128] New translations Translations_en.properties (Chinese Simplified) New Chinese Simplified translation --- .../Translations/Translations_zh.properties | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties index 1ffdea2..ea4def7 100644 --- a/src/main/resources/Translations/Translations_zh.properties +++ b/src/main/resources/Translations/Translations_zh.properties @@ -15,6 +15,7 @@ user+nickname = <@user> region = guildid = content = +song = error = Error none = None @@ -114,16 +115,9 @@ commands.moderation.kick.success.description = I successfully kicked %extra%. commands.moderation.kick.error.title = Not possible commands.moderation.kick.myself.error.description = I can not kick myself\! commands.moderation.kick.yourself.error.description = You can't kick yourself. -commands.moderation.kick.mass.success.description = I successfully kicked 69 Members\! +commands.moderation.kick.mass.success.description = I successfully kicked %extra% Members\! commands.moderation.kick.help.description = Kicks one or more user from the server. commands.moderation.kick.masskick.success.description = I successfully kicked %extra% members. -commands.moderation.link.request.success.description = If i'm on this guild i sent a message to accept the link. -commands.moderation.link.error.title = Wait that's illegal. -commands.moderation.link.request.error.description = You specified the same guild as the guild on which you're reading this -commands.moderation.link.request.accept.title = ) wants to link guilds\! -commands.moderation.link.request.accept.description = React with the reactions to accept or decline it -commands.moderation.link.set.title = Set the thing boi -commands.moderation.link.help.description = Links two or more servers. commands.moderation.nick.success.title = %extra% Successfully nicked %extra% commands.moderation.nick.success.description = I successfully nicked %extra%. commands.moderation.nick.myself.success.description = I successfully changed my nickname. @@ -162,7 +156,7 @@ commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. commands.moderation.rules.help.description = Setup the rules on your Discord server -commands.moderation.starboard.successchannel=Successfully set the Channel\! +commands.moderation.starboard.success.title = Successfully set the Channel\! commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. @@ -173,11 +167,29 @@ commands.music.join.error.connecting.trying.description = Hadder is already tryi 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 -commands.music.leave.success.title = \= Successfully disconnected +commands.music.leave.success.title = Successfully disconnected commands.music.leave.success.description = I successfully disconnected from the Voice Channel commands.music.leave.error.tile = Not connected commands.music.leave.error.description = I'm currently in no Voice Channel on this Guild 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.help.description = Plays a song +commands.music.stop.success.title = Successfully stopped +commands.music.stop.success.description = I successfully stopped the 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.nsfw.gif.error.title = GIF not showing? Click here commands.nsfw.img.error.title = Image not showing? Click here From e54918b832292b7d81a055046e4aae9141dcb573 Mon Sep 17 00:00:00 2001 From: Skidder Date: Mon, 23 Dec 2019 17:21:35 +0100 Subject: [PATCH 080/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 622a378..eb6c591 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -24,7 +24,7 @@ success\! = Erfolgreich\! commands.fun.avatar.success.title = Avatar von %extra% commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Benutzers. commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. -commands.fun.gif.help.description = Looks for a GIF on Giphy. +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 = The request to the meme API could not be processed. Please try again later. commands.fun.meme.help.description = Sendet dir einen zufälligen Meme. From 52c0ac730c7a487385600f5f1713d2e6cf458211 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 23 Dec 2019 18:07:40 +0100 Subject: [PATCH 081/128] Skip command without skip --- src/main/java/com/bbn/hadder/Hadder.java | 1 + .../hadder/commands/music/InfoCommand.java | 13 +++++--- .../hadder/commands/music/SkipCommand.java | 33 +++++++++++++++++++ 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/bbn/hadder/commands/music/SkipCommand.java diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index f89a23c..5626793 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -93,6 +93,7 @@ public class Hadder { new StarBoardCommand(), new QueueCommand(), new InfoCommand(), + new SkipCommand(), new StopCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java index 85605b3..3baeb46 100644 --- a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java @@ -13,15 +13,18 @@ public class InfoCommand implements Command { private static final String CD = "\uD83D\uDCBF"; private static final String MIC = "\uD83C\uDFA4"; - - private static final String QUEUE_TITLE = "__%s has added %d new track%s to the Queue:__"; private static final String QUEUE_DESCRIPTION = "%s **|>** %s\n%s\n%s %s\n%s"; - private static final String QUEUE_INFO = "Info about the Queue: (Size - %d)"; - private static final String ERROR = "Error while loading \"%s\""; + @Override public void executed(String[] args, CommandEvent event) { + if (new AudioManager().hasPlayer(event.getGuild())) { + event.getTextChannel().sendMessage("Ja Player is auch wieder da"); + } + if (new AudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) { + event.getTextChannel().sendMessage("Joo playing track net anwesend^^").queue(); + } if (!new AudioManager().hasPlayer(event.getGuild()) || new AudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) { - event.getTextChannel().sendMessage("No song is being played at the moment! *It's your time to shine..*").queue(); + event.getTextChannel().sendMessage("Shut up eyyyy du kek").queue(); } else { AudioTrack track = new AudioManager().getPlayer(event.getGuild()).getPlayingTrack(); event.getTextChannel().sendMessage("Track Info" + String.format(QUEUE_DESCRIPTION, CD, new AudioManager().getOrNull(track.getInfo().title), diff --git a/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java b/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java new file mode 100644 index 0000000..ea36991 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/music/SkipCommand.java @@ -0,0 +1,33 @@ +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; + +/** + * @author Skidder / GregTCLTK + */ + +public class SkipCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + + } + + @Override + public String[] labels() { + return new String[]{"skip"}; + } + + @Override + public String description() { + return "Skips the song"; + } + + @Override + public String usage() { + return ""; + } +} From 8fdf2c42a8ae1559c1f71b64a7baeed018829df4 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Tue, 24 Dec 2019 13:29:54 +0100 Subject: [PATCH 082/128] Fix #245 --- .../java/com/bbn/hadder/commands/moderation/RulesCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 23fb16e..78db7b3 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -96,7 +96,7 @@ public class RulesCommand implements Command { }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_PERMISSION) + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION) .build()).queue(); } } else { From 4f08e4f300d0092466fe76647749b1c6b0156d7c Mon Sep 17 00:00:00 2001 From: Skidder Date: Tue, 24 Dec 2019 13:33:56 +0100 Subject: [PATCH 083/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index eb6c591..8e6de53 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -70,13 +70,13 @@ commands.misc.github.success.following = Folgt commands.misc.github.api.error.description = Die GitHub API könnte im Moment nicht verfügbar sein\! commands.misc.github.user.error.description = Dieser Benutzer existiert nicht\! commands.misc.github.connect.title = Connect your GH account -commands.misc.github.connect.description = [Bitte verbinden Sie Ihr GitHub-Konto hier]%extra% +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.id.error.title = Wait. That's illegal. commands.misc.screenshare.id.error.description = This ID is invalid. \nMaybe you entered a wrong ID. \n\nNote\: Make sure the Voice Channel is in this Guild. commands.misc.screenshare.channel.error.title = Please choose a Voice Channel -commands.misc.screenshare.channel.error.description = Es gibt mehr als einen Kanal mit diesem Namen +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.description = Dies ist keine Zahl. commands.misc.screenshare.channel.existing.error = Warte ma' From ee118e3ee8f995f4e67c4bc9ce53fd20b961f15d Mon Sep 17 00:00:00 2001 From: Skidder Date: Tue, 24 Dec 2019 22:10:34 +0100 Subject: [PATCH 084/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 8e6de53..f4cd9d9 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -26,7 +26,7 @@ commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Benutze commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. 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 = The request to the meme API could not be processed. Please try again later. +commands.fun.meme.api.error = Die Anfrage an die Meme-API konnte nicht verarbeitet werden. Bitte versuchen Sie 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. From 588e0bcea110d426c5fe3ee23a1e362cdc75be31 Mon Sep 17 00:00:00 2001 From: Skidder Date: Tue, 24 Dec 2019 22:20:38 +0100 Subject: [PATCH 085/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index f4cd9d9..51f4be2 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -45,7 +45,7 @@ commands.general.equals.string.result = Ergebnis commands.general.equals.help.description = Prüft ob zwei Strings gleich sind 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 = Shows each command and explains its usage +commands.general.help.help.description = Zeigt jeden Befehl an und erklärt seine Verwendung commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Lade mich ein\! commands.general.invite.success.description = [Lade mich hier ein\!]%extra% From 8061d72b1d97d131f22ef86780c0d95d0a2e6937 Mon Sep 17 00:00:00 2001 From: Skidder Date: Tue, 24 Dec 2019 22:30:34 +0100 Subject: [PATCH 086/128] New translations Translations_en.properties (German) New German translation --- .../resources/Translations/Translations_de.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 51f4be2..d7b3326 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -33,8 +33,8 @@ commands.fun.clyde.help.description = Sends a message as a webhook named 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 = Unterstütze die Entwickler -commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. -commands.general.about.help.description = Shows information about Hadder. +commands.general.about.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 Sie auf [here]%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\! @@ -49,7 +49,7 @@ commands.general.help.help.description = Zeigt jeden Befehl an und erklärt sein commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Lade mich ein\! commands.general.invite.success.description = [Lade mich hier ein\!]%extra% -commands.general.invite.help.description = Shows the invitation link to invite Hadder to your server. +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.misc.feedback.title.request.title = Feedback-Thema @@ -69,11 +69,11 @@ commands.misc.github.success.followers = Abonnenten commands.misc.github.success.following = Folgt commands.misc.github.api.error.description = Die GitHub API könnte im Moment nicht verfügbar sein\! commands.misc.github.user.error.description = Dieser Benutzer existiert nicht\! -commands.misc.github.connect.title = Connect your GH account +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.id.error.title = Wait. That's illegal. +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.channel.error.description = Es gibt mehr als einen Sprachkanal mit diesem Namen From 9e08cc4a0bc17d484ccb186e6bc593cd99664b21 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 00:10:33 +0100 Subject: [PATCH 087/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index ea4def7..086460c 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -39,9 +39,9 @@ commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +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.help.error.description = I need the Embed Links Permission to send the Help Menu\! From ec4ad872a1d20ff222a5a677181e933dbf3c35e0 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 00:20:31 +0100 Subject: [PATCH 088/128] New translations Translations_en.properties (English) New English translation --- .../resources/Translations/Translations_en.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 086460c..4898b72 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers +commands.general.about.success.field.one.title = Support the developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String\: -commands.general.equals.string.second = Second String\: +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.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 +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% From 1c272f9066ea78c9f90e5cca47edfb2063bcf6ac Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 00:33:18 +0100 Subject: [PATCH 089/128] New translations Translations_en.properties (English) New English translation --- src/main/resources/Translations/Translations_en.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 4898b72..443459a 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -40,7 +40,7 @@ commands.general.equals.string.second.request = Please send me the second String commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. commands.general.equals.string.first = First string\: -commands.general.equals.string.second = Second String +commands.general.equals.string.second = Second string\: commands.general.equals.string.result = Result\: commands.general.equals.help.description = Check if two strings are the same commands.general.help.field.usage = Usage\: @@ -232,4 +232,4 @@ commands.settings.language.help.description = Sets the new primary language for commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From c1fdacd46d01ddb9d41300c4c16ee94781d6e685 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 25 Dec 2019 00:39:14 +0100 Subject: [PATCH 090/128] Custom error message for #245 --- .../java/com/bbn/hadder/commands/moderation/RulesCommand.java | 4 +++- src/main/resources/Translations/Translations_en.properties | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 78db7b3..f05e1c2 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -96,7 +96,9 @@ public class RulesCommand implements Command { }, event.getJDA(), event.getAuthor()); }, event.getJDA(), event.getAuthor()); } else { - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION) + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.moderation.rules.error.message.title", + "commands.moderation.rules.error.message.description") .build()).queue(); } } else { diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index ea4def7..81fb255 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! From 4b8901e99d08f5d54cc23867e18de5197c184874 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 00:50:29 +0100 Subject: [PATCH 091/128] New translations Translations_en.properties (German) New German translation --- src/main/resources/Translations/Translations_de.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index d7b3326..6bdcfd7 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -26,14 +26,14 @@ commands.fun.avatar.help.description = Sendet den Avatar des angegebenen Benutze commands.fun.gif.error.description = Bitte versuche es mit einem anderen Begriff erneut. 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 versuchen Sie es später erneut. +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.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 = 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 Sie auf [here]%extra%, um zu spenden. +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. From 3cfae8eaf9b3114e1b7a7900e037eecdc469bb8a Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 01:01:00 +0100 Subject: [PATCH 092/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 6bdcfd7..8301ba1 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named 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 = Unterstütze die Entwickler +commands.general.about.success.field.one.title = Support the developers 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 = Erster String -commands.general.equals.string.second = Zweiter String -commands.general.equals.string.result = Ergebnis +commands.general.equals.string.first = First string\: +commands.general.equals.string.second = Second string\: +commands.general.equals.string.result = Ergebnis\: commands.general.equals.help.description = Prüft ob zwei Strings gleich sind -commands.general.help.field.usage = Benutzung +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.description = Zeigt jeden Befehl an und erklärt seine Verwendung. commands.general.help.help.label = [CommandName] commands.general.invite.success.title = Lade mich ein\! commands.general.invite.success.description = [Lade mich hier ein\!]%extra% @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! @@ -232,4 +234,4 @@ commands.settings.language.help.description = Führt den angegebenen Code aus. commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From 61a724a2262f7a95efb59e0951accfe43b7c1f46 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 01:01:02 +0100 Subject: [PATCH 093/128] New translations Translations_en.properties (Spanish) New Spanish translation --- .../Translations/Translations_es.properties | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties index ea4def7..219fc21 100644 --- a/src/main/resources/Translations/Translations_es.properties +++ b/src/main/resources/Translations/Translations_es.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers +commands.general.about.success.field.one.title = Support the developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +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.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 +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% @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! @@ -232,4 +234,4 @@ commands.settings.language.help.description = Sets the new primary language for commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From e540c2cd0286f94e24610787f0d45b3a6b47e6cf Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 01:01:03 +0100 Subject: [PATCH 094/128] New translations Translations_en.properties (French) New French translation --- .../Translations/Translations_fr.properties | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties index ea4def7..219fc21 100644 --- a/src/main/resources/Translations/Translations_fr.properties +++ b/src/main/resources/Translations/Translations_fr.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers +commands.general.about.success.field.one.title = Support the developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +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.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 +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% @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! @@ -232,4 +234,4 @@ commands.settings.language.help.description = Sets the new primary language for commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From 91507db519e40acb350407b3ac455ca84978acf9 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 01:01:05 +0100 Subject: [PATCH 095/128] New translations Translations_en.properties (Russian) New Russian translation --- .../Translations/Translations_ru.properties | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties index ea4def7..219fc21 100644 --- a/src/main/resources/Translations/Translations_ru.properties +++ b/src/main/resources/Translations/Translations_ru.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers +commands.general.about.success.field.one.title = Support the developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +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.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 +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% @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! @@ -232,4 +234,4 @@ commands.settings.language.help.description = Sets the new primary language for commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From acf15f0d99e6db25e5a6811b0ba969b9bbb256a4 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 01:01:06 +0100 Subject: [PATCH 096/128] New translations Translations_en.properties (Turkish) New Turkish translation --- .../Translations/Translations_tr.properties | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties index ea4def7..219fc21 100644 --- a/src/main/resources/Translations/Translations_tr.properties +++ b/src/main/resources/Translations/Translations_tr.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers +commands.general.about.success.field.one.title = Support the developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +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.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 +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% @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! @@ -232,4 +234,4 @@ commands.settings.language.help.description = Sets the new primary language for commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From bc25e0644e7078dab3deef1fd68a0f5df3fa2094 Mon Sep 17 00:00:00 2001 From: Skidder Date: Wed, 25 Dec 2019 01:01:07 +0100 Subject: [PATCH 097/128] New translations Translations_en.properties (Chinese Simplified) New Chinese Simplified translation --- .../Translations/Translations_zh.properties | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties index ea4def7..219fc21 100644 --- a/src/main/resources/Translations/Translations_zh.properties +++ b/src/main/resources/Translations/Translations_zh.properties @@ -32,20 +32,20 @@ commands.fun.clyde.help.description = Sends a message as a webhook named Clyde. commands.general.about.success.title = Hadder - About commands.general.about.success.description = Hadder is an open source Discord bot. -commands.general.about.success.field.one.title = Support the Developers +commands.general.about.success.field.one.title = Support the developers commands.general.about.success.field.one.description = Hadder is completely free for everyone. We would appreciate it if you donated some money to us. Click [here]%extra% to donate. commands.general.about.help.description = Shows information about Hadder. commands.general.equals.string.first.request = Please send me the first String. commands.general.equals.string.second.request = Please send me the second String. commands.general.equals.string.equals.true = Yes\! The first string equals the second string\! commands.general.equals.string.equals.false = Well yes but actually No. This isn't the same. -commands.general.equals.string.first = First String -commands.general.equals.string.second = Second String -commands.general.equals.string.result = Result +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.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 +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% @@ -155,6 +155,8 @@ commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.error.message.title = Can't write messages +commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! @@ -232,4 +234,4 @@ commands.settings.language.help.description = Sets the new primary language for commands.settings.language.help.usage = commands.settings.prefix.success.title = %extra% Successfully set %extra% commands.settings.prefix.success.description = I successfully set the new prefix for you to `%extra%`. -commands.settings.prefix.help.description = Sets a new Prefix +commands.settings.prefix.help.description = Sets a new prefix. From 1223e98552ab59fd199e9662b4fa536ef6101a24 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Wed, 25 Dec 2019 11:45:52 +0100 Subject: [PATCH 098/128] Code improvements --- src/main/java/com/bbn/hadder/Rethink.java | 73 +++++++++++------------ 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index f501971..cf63bf4 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -4,7 +4,6 @@ import com.bbn.hadder.core.Config; import com.rethinkdb.RethinkDB; import com.rethinkdb.gen.exc.ReqlOpFailedError; import com.rethinkdb.net.Connection; -import com.rethinkdb.net.Cursor; import org.json.JSONArray; import java.util.NoSuchElementException; @@ -56,33 +55,31 @@ public class Rethink { public Object get(String table, String where, String value, String column) { JSONArray array = this.getAsArray(table, where, value); - if (array.length()>0) + if (array.length() > 0) if (array.getJSONObject(0).has(column)) return array.getJSONObject(0).get(column); else return null; else return null; } - public String update(String table, String wherevalue, String what, String whatvalue) { - String out = ""; + public void update(String table, String value, String what, String whatvalue) { try { - Cursor cursor = r.table(table).get(wherevalue).update(r.hashMap(what, whatvalue)).run(conn); - out=cursor.toString(); - } catch (ClassCastException ignored) {} - return out; + r.table(table).get(value).update(r.hashMap(what, whatvalue)).run(conn); + } catch (ClassCastException e) { + e.printStackTrace(); + } } - public String insert(String table, Object object) { - String out = ""; + public void insert(String table, Object object) { try { - Cursor cursor = r.table(table).insert(object).run(conn); - out = cursor.next().toString(); - } catch (ClassCastException ignored) {} - return out; + r.table(table).insert(object).run(conn); + } catch (ClassCastException e) { + e.printStackTrace(); + } } - public void remove(String table, String where, String wherevalue) { - r.table(table).filter(row -> row.g(where.toLowerCase()).eq(wherevalue)).delete().run(conn); + public void remove(String table, String where, String value) { + r.table(table).filter(row -> row.g(where.toLowerCase()).eq(value)).delete().run(conn); } public void setup() { @@ -108,16 +105,16 @@ public class Rethink { } } - public void setUserPrefix(String prefix, String userid) { - this.update("user", userid, "prefix", prefix); + public void setUserPrefix(String prefix, String user_id) { + this.update("user", user_id, "prefix", prefix); } public String getUserPrefix(String id) { return (String) this.get("user", "id", id, "prefix"); } - public void setGuildPrefix(String prefix, String guildid) { - this.update("server", guildid, "prefix", prefix); + public void setGuildPrefix(String prefix, String guild_id) { + this.update("server", guild_id, "prefix", prefix); } public String getGuildPrefix(String id) { @@ -139,40 +136,40 @@ public class Rethink { this.insert("user", r.hashMap("id", id).with("prefix", "h.").with("language", "en")); } - public void setNeededstars(String stars, String guildid) { - this.update("server", guildid, "neededstars", stars); + public void setNeededstars(String stars, String guild_id) { + this.update("server", guild_id, "neededstars", stars); } - public String getNeededstars(String guildid) { - return (String) this.get("server", "id", guildid, "neededstars"); + public String getNeededstars(String guild_id) { + return (String) this.get("server", "id", guild_id, "neededstars"); } - public void setStarboardChannel(String guildid, String channelid) { - this.update("server", guildid, "starboard", channelid); + public void setStarboardChannel(String guild_id, String channel_id) { + this.update("server", guild_id, "starboard", channel_id); } - public String getStarboardChannel(String guildid) { - return (String) this.get("server", "id", guildid, "starboard"); + public String getStarboardChannel(String guild_id) { + return (String) this.get("server", "id", guild_id, "starboard"); } - public boolean hasStarboardChannel(String guildid) { - return !this.get("server", "id", guildid, "starboard").equals(""); + public boolean hasStarboardChannel(String guild_id) { + return !this.get("server", "id", guild_id, "starboard").equals(""); } - public void insertStarboardMessage(String messageid, String guildid, String starboardmessageid) { - this.insert("stars", r.hashMap("id", messageid).with("guild", guildid).with("starboardmsg", starboardmessageid)); + public void insertStarboardMessage(String message_id, String guild_id, String starboardmessageid) { + this.insert("stars", r.hashMap("id", message_id).with("guild", guild_id).with("starboardmsg", starboardmessageid)); } - public String getStarboardMessage(String messageid) { - return (String) this.get("stars", "id", messageid, "starboardmsg"); + public String getStarboardMessage(String message_id) { + return (String) this.get("stars", "id", message_id, "starboardmsg"); } - public void removeStarboardMessage(String messageid) { - this.remove("stars", "id", messageid); + public void removeStarboardMessage(String message_id) { + this.remove("stars", "id", message_id); } - public boolean hasStarboardMessage(String messageid) { - return this.get("stars", "id", messageid, "guild") != null; + public boolean hasStarboardMessage(String message_id) { + return this.get("stars", "id", message_id, "guild") != null; } public void updateRules(String guild_id, String message_id, String role_id, String accept_emote, String decline_emote) { From 07ba3dabbc596090dbe7c267f47ce515e5320f30 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2019 13:48:35 +0000 Subject: [PATCH 099/128] Bump JDA from 4.1.0_81 to 4.1.0_84 Bumps JDA from 4.1.0_81 to 4.1.0_84. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dbf03e6..835275f 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ net.dv8tion JDA - 4.1.0_81 + 4.1.0_84 org.json From dfa8578f8f5ffc4b46714cc9a230e8ba9da01214 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 14:18:29 +0100 Subject: [PATCH 100/128] GH issue label --- src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index d081a46..a84d9f3 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -37,6 +37,7 @@ public class FeedbackCommand implements Command { GitHub connection = GitHub.connectUsingOAuth(event.getConfig().getGitHubToken()); GHRepository Hadder = connection.getOrganization("BigBotNetwork").getRepository("Hadder"); GHIssue issue = Hadder.createIssue(title).body("Feedback by " + event.getAuthor().getAsTag() + "
" + description).label("feedback").create(); + issue.addLabels("feedback"); event.getTextChannel().sendMessage( event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, From 6ad176f789155fb38ab6174226142d90131e098e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 26 Dec 2019 13:48:17 +0000 Subject: [PATCH 101/128] Bump JDA from 4.1.0_84 to 4.1.0_86 Bumps JDA from 4.1.0_84 to 4.1.0_86. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 835275f..24b1adf 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ net.dv8tion JDA - 4.1.0_84 + 4.1.0_86 org.json From 0d621717dfe9971f6a48ce0ecec338d26c1d7012 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 17:43:40 +0100 Subject: [PATCH 102/128] EditRules Command --- .../com/bbn/hadder/commands/moderation/EditRulesCommand.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java diff --git a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java new file mode 100644 index 0000000..4a2bc14 --- /dev/null +++ b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java @@ -0,0 +1,4 @@ +package com.bbn.hadder.commands.moderation; + +public class EditRulesCommand { +} From 409088c7217da0f224efa31807ae048d1f0a2f6a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 17:44:38 +0100 Subject: [PATCH 103/128] EventWaiter --- .../java/com/bbn/hadder/commands/CommandEvent.java | 9 ++++++++- .../bbn/hadder/commands/general/EqualsCommand.java | 4 ++-- .../bbn/hadder/commands/misc/FeedbackCommand.java | 4 ++-- .../hadder/commands/misc/ScreenShareCommand.java | 4 ++-- .../hadder/commands/moderation/RulesCommand.java | 13 +++++++------ .../com/bbn/hadder/commands/music/LeaveCommand.java | 10 +++++----- .../java/com/bbn/hadder/core/CommandHandler.java | 3 ++- src/main/java/com/bbn/hadder/utils/EventWaiter.java | 11 +++++------ .../Translations/Translations_en.properties | 5 +++++ 9 files changed, 38 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java index 7ea21a7..fb9d643 100644 --- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.Config; +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; @@ -18,14 +19,16 @@ public class CommandEvent extends MessageReceivedEvent { private CommandHandler commandHandler; private HelpCommand helpCommand; private MessageEditor messageEditor; + private EventWaiter eventWaiter; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor) { + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter) { super(api, responseNumber, message); this.rethink = rethink; this.config = config; this.commandHandler = commandHandler; this.helpCommand = helpCommand; this.messageEditor = messageEditor; + this.eventWaiter = eventWaiter; } public Rethink getRethink() { @@ -47,4 +50,8 @@ public class CommandEvent extends MessageReceivedEvent { public MessageEditor getMessageEditor() { return messageEditor; } + + public EventWaiter getEventWaiter() { + return eventWaiter; + } } diff --git a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java index f2772e3..e4e806e 100644 --- a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java @@ -34,8 +34,8 @@ public class EqualsCommand implements Command { .addField(event.getMessageEditor().getTerm( "commands.general.equals.string.second"), secondString, false) .addField(event.getMessageEditor().getTerm( "commands.general.equals.string.result"), String.valueOf(firstString.equals(secondString)), false) .build()).queue(); - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + }, event); + }, event); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index a84d9f3..c021568 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -48,8 +48,8 @@ public class FeedbackCommand implements Command { } catch (IOException e) { e.printStackTrace(); } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + }, event); + }, event); } diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java index 9077d04..96ced02 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java @@ -21,7 +21,7 @@ public class ScreenShareCommand implements Command { try { if (vc.getIdLong() == Long.parseLong(args[0])) { event.getChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, + MessageEditor.MessageType.INFO, "commands.misc.screenshare.success.title", "") .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue(); return; @@ -56,7 +56,7 @@ public class ScreenShareCommand implements Command { event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.id.error.title", "commands.misc.screenshare.number.error.description").build()).queue(); event.getHelpCommand().sendHelp(this, event); } - }, event.getJDA(), event.getAuthor()); + }, event); } else if (vcs.size()==0) { event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.channel.existing.error", "commands.misc.screenshare.channel.existing.description").build()).queue(); event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index f05e1c2..e9e2e36 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -53,7 +53,7 @@ public class RulesCommand implements Command { .build()).queue(); } } - }, event.getJDA(), event.getAuthor()); + }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } @@ -93,8 +93,8 @@ public class RulesCommand implements Command { "commands.moderation.rules.role.error.description") .build()).queue(); } - }, event.getJDA(), event.getAuthor()); - }, event.getJDA(), event.getAuthor()); + }, event); + }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.rules.error.message.title", @@ -165,7 +165,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.error.equal.description") .build()).queue(); } - }, event.getJDA(), event.getAuthor()); + }, event); } else { String aemote = event4.getMessage().getContentRaw(); event4.getChannel().sendMessage( @@ -210,9 +210,10 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.error.equal.description") .build()).queue(); } - }, event.getJDA(), event.getAuthor()); + }, event + ); } - }, event.getJDA(), event.getAuthor()); + }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java index eb860db..c2a0398 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java @@ -15,14 +15,14 @@ public class LeaveCommand implements Command { if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { event.getGuild().getAudioManager().closeAudioConnection(); event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.music.leave.success.title", + MessageEditor.MessageType.INFO, + "commands.music.leave.success.title", "commands.music.leave.success.description") .build()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.music.leave.error.tile", + MessageEditor.MessageType.WARNING, + "commands.music.leave.error.tile", "commands.music.leave.error.description") .build()).queue(); } @@ -30,7 +30,7 @@ public class LeaveCommand implements Command { @Override public String[] labels() { - return new String[]{"leave"}; + return new String[]{"leave", "quit"}; } @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index c8e8dd3..9d7469f 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.general.HelpCommand; +import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -34,7 +35,7 @@ public class CommandHandler { if (args.length > 0 && args[0].equals("")) args = new String[0]; CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, - config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); + config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()), new EventWaiter()); if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { diff --git a/src/main/java/com/bbn/hadder/utils/EventWaiter.java b/src/main/java/com/bbn/hadder/utils/EventWaiter.java index bc9ad89..9b8e245 100644 --- a/src/main/java/com/bbn/hadder/utils/EventWaiter.java +++ b/src/main/java/com/bbn/hadder/utils/EventWaiter.java @@ -1,7 +1,6 @@ package com.bbn.hadder.utils; -import net.dv8tion.jda.api.JDA; -import net.dv8tion.jda.api.entities.User; +import com.bbn.hadder.commands.CommandEvent; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -10,20 +9,20 @@ import java.util.function.Consumer; public class EventWaiter { - public void newOnMessageEventWaiter(Consumer onEvent, JDA jda, User user) { + public void newOnMessageEventWaiter(Consumer onEvent, CommandEvent event) { Object listener = new ListenerAdapter() { @Override public void onGuildMessageReceived(@Nonnull GuildMessageReceivedEvent event) { - if (user==null) { + if (event.getAuthor() == null) { onEvent.accept(event); event.getJDA().getShardManager().removeEventListener(this); - } else if (event.getAuthor().getId().equals(user.getId())) { + } else if (event.getAuthor().getId().equals(event.getAuthor().getId())) { onEvent.accept(event); event.getJDA().getShardManager().removeEventListener(this); } } }; - jda.getShardManager().addEventListener(listener); + event.getJDA().getShardManager().addEventListener(listener); } } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 219fc21..2d22092 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -159,6 +159,11 @@ commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From a8d1dc160665e14d7e00c943e4628a99e04f6cd5 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 17:44:52 +0100 Subject: [PATCH 104/128] Begin with the Edit Rules Command --- src/main/java/com/bbn/hadder/Hadder.java | 1 + .../commands/moderation/EditRulesCommand.java | 44 ++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 5626793..173d6f2 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -94,6 +94,7 @@ public class Hadder { new QueueCommand(), new InfoCommand(), new SkipCommand(), + new EditRulesCommand(), new StopCommand()), config, helpCommand); builder.addEventListeners( diff --git a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java index 4a2bc14..31368c6 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java @@ -1,4 +1,46 @@ package com.bbn.hadder.commands.moderation; -public class EditRulesCommand { +import com.bbn.hadder.commands.Command; +import com.bbn.hadder.commands.CommandEvent; +import com.bbn.hadder.core.Perm; +import com.bbn.hadder.core.Perms; +import com.bbn.hadder.utils.MessageEditor; + +/** + * @author Skidder / GregTCLTK + */ + +@Perms(Perm.MANAGE_SERVER) +public class EditRulesCommand implements Command { + + @Override + public void executed(String[] args, CommandEvent event) { + if (event.getRethink().getRulesMID(event.getGuild().getId()).length() == 18) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.moderation.editrules.message.title", + "commands.moderation.editrules.message.description").build()).queue(); + event.getEventWaiter().newOnMessageEventWaiter(event1 -> { + + }, event); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.moderation.editrules.error.title", "", + "commands.moderation.editrules.error.description", event.getRethink().getGuildPrefix(event.getGuild().getId())).build()).queue(); + } + } + + @Override + public String[] labels() { + return new String[]{"editrules", "rulesedit", "edit_rules", "rules_edit"}; + } + + @Override + public String description() { + return "commands.moderation.editrules.help.description"; + } + + @Override + public String usage() { + return ""; + } } From 8d3001adcf99d23903fdfd6a8bcf88fe723a56ce Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 21:46:13 +0100 Subject: [PATCH 105/128] Edit Rules command #253 --- .../commands/moderation/EditRulesCommand.java | 54 ++++++++++++++++++- .../commands/moderation/RulesCommand.java | 10 ++-- .../Translations/Translations_en.properties | 9 +++- 3 files changed, 66 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java index 31368c6..3768fa5 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java @@ -5,6 +5,7 @@ import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.core.Perm; import com.bbn.hadder.core.Perms; import com.bbn.hadder.utils.MessageEditor; +import net.dv8tion.jda.api.entities.TextChannel; /** * @author Skidder / GregTCLTK @@ -19,8 +20,38 @@ public class EditRulesCommand implements Command { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.editrules.message.title", "commands.moderation.editrules.message.description").build()).queue(); - event.getEventWaiter().newOnMessageEventWaiter(event1 -> { + event.getEventWaiter().newOnMessageEventWaiter(event1 -> { + String rules = event1.getMessage().getContentRaw(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.moderation.editrules.channel.title", + "commands.moderation.editrules.channel.description").build()).queue(); + + event.getEventWaiter().newOnMessageEventWaiter(event2 -> { + if (event2.getMessage().getMentionedChannels().size() == 1) { + try { + TextChannel channel = event2.getMessage().getMentionedChannels().get(0); + checkChannel(event, rules, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.moderation.editrules.channel.error.title", + "commands.moderation.editrules.channel.error.description") + .build()).queue(); + } + } else { + try { + TextChannel channel = event1.getGuild().getTextChannelsByName(event2.getMessage().getContentRaw(), true).get(0); + checkChannel(event, rules, channel); + } catch (Exception e) { + event.getTextChannel().sendMessage( + event.getMessageEditor().getMessage( + MessageEditor.MessageType.ERROR, + "commands.moderation.editrules.channel.error.title", + "commands.moderation.editrules.channel.error.description") + .build()).queue(); + } + } + }, event); }, event); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, @@ -29,6 +60,27 @@ public class EditRulesCommand implements Command { } } + public void checkChannel(CommandEvent event, String rules, TextChannel channel) { + try { + channel.retrieveMessageById(event.getRethink().getRulesMID(event.getGuild().getId())).queue(); + setRules(event, rules, channel); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.moderation.editrules.success.title", + "commands.moderation.editrules.success.description").build()).queue(); + } catch (Exception e) { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.moderation.editrules.channel.message.error.title", + "commands.moderation.editrules.channel.message.error.description").build()).queue(); + } + } + + public void setRules(CommandEvent event, String rules, TextChannel channel) { + channel.retrieveMessageById(event.getRethink().getRulesMID(event.getGuild().getId())).complete().editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) + .setTitle("Rules") + .setDescription(rules) + .build()).queue(); + } + @Override public String[] labels() { return new String[]{"editrules", "rulesedit", "edit_rules", "rules_edit"}; diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index e9e2e36..2033174 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -29,7 +29,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.setup.title", "commands.moderation.rules.setup.description") .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event1 -> { + event.getEventWaiter().newOnMessageEventWaiter(event1 -> { if (event1.getMessage().getMentionedChannels().size() == 1) { try { TextChannel channel = event1.getMessage().getMentionedChannels().get(0); @@ -70,7 +70,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.rules.description", channel.getName()) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event2 -> { + event.getEventWaiter().newOnMessageEventWaiter(event2 -> { String message = event2.getMessage().getContentRaw(); event2.getChannel().sendMessage( event.getMessageEditor().getMessage( @@ -120,7 +120,7 @@ public class RulesCommand implements Command { "", "commands.moderation.rules.emote.accept.description", role.getName()) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event4 -> { + event.getEventWaiter().newOnMessageEventWaiter(event4 -> { if (event4.getMessage().getEmotes().size() == 1) { Emote aemote = event4.getMessage().getEmotes().get(0); event4.getChannel().sendMessage( @@ -129,7 +129,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.decline.title", "", "commands.moderation.rules.emote.decline.title", String.valueOf(aemote)) .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event5 -> { + event.getEventWaiter().newOnMessageEventWaiter(event5 -> { Emote demote = event5.getMessage().getEmotes().get(0); if (!aemote.equals(demote)) { Message rules = channel.sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) @@ -174,7 +174,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.decline.title", "commands.moderation.rules.emoji.decline.description") .build()).queue(); - new EventWaiter().newOnMessageEventWaiter(event5 -> { + event.getEventWaiter().newOnMessageEventWaiter(event5 -> { String demote = event5.getMessage().getContentRaw(); if (!aemote.equals(demote)) { Message rules = channel.sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 2d22092..bc4406f 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -136,7 +136,6 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -159,10 +158,18 @@ commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. commands.moderation.editrules.message.title = New message commands.moderation.editrules.message.description = Please send me the new rules message now. commands.moderation.editrules.error.title = No rules commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected From 9820dd0352a90b8731d7205e7901da3bcc2f0d67 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 22:17:28 +0100 Subject: [PATCH 106/128] Revert "EventWaiter" This reverts commit 409088c7217da0f224efa31807ae048d1f0a2f6a. --- .../java/com/bbn/hadder/commands/CommandEvent.java | 9 +-------- .../bbn/hadder/commands/general/EqualsCommand.java | 4 ++-- .../bbn/hadder/commands/misc/FeedbackCommand.java | 4 ++-- .../hadder/commands/misc/ScreenShareCommand.java | 4 ++-- .../hadder/commands/moderation/RulesCommand.java | 13 ++++++------- .../com/bbn/hadder/commands/music/LeaveCommand.java | 10 +++++----- .../java/com/bbn/hadder/core/CommandHandler.java | 3 +-- src/main/java/com/bbn/hadder/utils/EventWaiter.java | 11 ++++++----- 8 files changed, 25 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java index fb9d643..7ea21a7 100644 --- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java @@ -4,7 +4,6 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.Config; -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; @@ -19,16 +18,14 @@ public class CommandEvent extends MessageReceivedEvent { private CommandHandler commandHandler; private HelpCommand helpCommand; private MessageEditor messageEditor; - private EventWaiter eventWaiter; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter) { + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor) { super(api, responseNumber, message); this.rethink = rethink; this.config = config; this.commandHandler = commandHandler; this.helpCommand = helpCommand; this.messageEditor = messageEditor; - this.eventWaiter = eventWaiter; } public Rethink getRethink() { @@ -50,8 +47,4 @@ public class CommandEvent extends MessageReceivedEvent { public MessageEditor getMessageEditor() { return messageEditor; } - - public EventWaiter getEventWaiter() { - return eventWaiter; - } } diff --git a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java index e4e806e..f2772e3 100644 --- a/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java +++ b/src/main/java/com/bbn/hadder/commands/general/EqualsCommand.java @@ -34,8 +34,8 @@ public class EqualsCommand implements Command { .addField(event.getMessageEditor().getTerm( "commands.general.equals.string.second"), secondString, false) .addField(event.getMessageEditor().getTerm( "commands.general.equals.string.result"), String.valueOf(firstString.equals(secondString)), false) .build()).queue(); - }, event); - }, event); + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); } @Override diff --git a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java index c021568..a84d9f3 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/FeedbackCommand.java @@ -48,8 +48,8 @@ public class FeedbackCommand implements Command { } catch (IOException e) { e.printStackTrace(); } - }, event); - }, event); + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); } diff --git a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java index 96ced02..9077d04 100644 --- a/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java +++ b/src/main/java/com/bbn/hadder/commands/misc/ScreenShareCommand.java @@ -21,7 +21,7 @@ public class ScreenShareCommand implements Command { try { if (vc.getIdLong() == Long.parseLong(args[0])) { event.getChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, + MessageEditor.MessageType.INFO, "commands.misc.screenshare.success.title", "") .setDescription("http://discordapp.com/channels/" + event.getGuild().getId() + "/" + vc.getId() + "/").build()).queue(); return; @@ -56,7 +56,7 @@ public class ScreenShareCommand implements Command { event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.id.error.title", "commands.misc.screenshare.number.error.description").build()).queue(); event.getHelpCommand().sendHelp(this, event); } - }, event); + }, event.getJDA(), event.getAuthor()); } else if (vcs.size()==0) { event.getChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.misc.screenshare.channel.existing.error", "commands.misc.screenshare.channel.existing.description").build()).queue(); event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index 2033174..e3aa8ca 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -53,7 +53,7 @@ public class RulesCommand implements Command { .build()).queue(); } } - }, event); + }, event.getJDA(), event.getAuthor()); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } @@ -93,8 +93,8 @@ public class RulesCommand implements Command { "commands.moderation.rules.role.error.description") .build()).queue(); } - }, event); - }, event); + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.rules.error.message.title", @@ -165,7 +165,7 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.error.equal.description") .build()).queue(); } - }, event); + }, event.getJDA(), event.getAuthor()); } else { String aemote = event4.getMessage().getContentRaw(); event4.getChannel().sendMessage( @@ -210,10 +210,9 @@ public class RulesCommand implements Command { "commands.moderation.rules.emote.error.equal.description") .build()).queue(); } - }, event - ); + }, event.getJDA(), event.getAuthor()); } - }, event); + }, event.getJDA(), event.getAuthor()); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.NO_SELF_PERMISSION).build()).queue(); } diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java index c2a0398..eb860db 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java @@ -15,14 +15,14 @@ public class LeaveCommand implements Command { if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { event.getGuild().getAudioManager().closeAudioConnection(); event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.music.leave.success.title", + MessageEditor.MessageType.INFO, + "commands.music.leave.success.title", "commands.music.leave.success.description") .build()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.music.leave.error.tile", + MessageEditor.MessageType.WARNING, + "commands.music.leave.error.tile", "commands.music.leave.error.description") .build()).queue(); } @@ -30,7 +30,7 @@ public class LeaveCommand implements Command { @Override public String[] labels() { - return new String[]{"leave", "quit"}; + return new String[]{"leave"}; } @Override diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index 9d7469f..c8e8dd3 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -4,7 +4,6 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.general.HelpCommand; -import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -35,7 +34,7 @@ public class CommandHandler { if (args.length > 0 && args[0].equals("")) args = new String[0]; CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, - config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()), new EventWaiter()); + config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { diff --git a/src/main/java/com/bbn/hadder/utils/EventWaiter.java b/src/main/java/com/bbn/hadder/utils/EventWaiter.java index 9b8e245..bc9ad89 100644 --- a/src/main/java/com/bbn/hadder/utils/EventWaiter.java +++ b/src/main/java/com/bbn/hadder/utils/EventWaiter.java @@ -1,6 +1,7 @@ package com.bbn.hadder.utils; -import com.bbn.hadder.commands.CommandEvent; +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; @@ -9,20 +10,20 @@ import java.util.function.Consumer; public class EventWaiter { - public void newOnMessageEventWaiter(Consumer onEvent, CommandEvent event) { + public void newOnMessageEventWaiter(Consumer onEvent, JDA jda, User user) { Object listener = new ListenerAdapter() { @Override public void onGuildMessageReceived(@Nonnull GuildMessageReceivedEvent event) { - if (event.getAuthor() == null) { + if (user==null) { onEvent.accept(event); event.getJDA().getShardManager().removeEventListener(this); - } else if (event.getAuthor().getId().equals(event.getAuthor().getId())) { + } else if (event.getAuthor().getId().equals(user.getId())) { onEvent.accept(event); event.getJDA().getShardManager().removeEventListener(this); } } }; - event.getJDA().getShardManager().addEventListener(listener); + jda.getShardManager().addEventListener(listener); } } From 5ce89ae72e7aea2f72b4fcb27b789250020fa63d Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 22:33:41 +0100 Subject: [PATCH 107/128] Translation fix --- .../com/bbn/hadder/commands/moderation/RulesCommand.java | 2 +- src/main/resources/Translations/Translations_en.properties | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java index e3aa8ca..99cc13e 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/RulesCommand.java @@ -127,7 +127,7 @@ public class RulesCommand implements Command { event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.rules.emote.decline.title", "", - "commands.moderation.rules.emote.decline.title", String.valueOf(aemote)) + "commands.moderation.rules.emote.decline.description", String.valueOf(aemote)) .build()).queue(); event.getEventWaiter().newOnMessageEventWaiter(event5 -> { Emote demote = event5.getMessage().getEmotes().get(0); diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index bc4406f..660e58c 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -136,6 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -147,13 +148,13 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server From 8d26f6969ca3830b07a9d35b8a1b78405c0acf01 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 22:34:14 +0100 Subject: [PATCH 108/128] Event Waiter --- src/main/java/com/bbn/hadder/commands/CommandEvent.java | 9 ++++++++- .../bbn/hadder/commands/moderation/EditRulesCommand.java | 4 ++-- src/main/java/com/bbn/hadder/core/CommandHandler.java | 3 ++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/CommandEvent.java b/src/main/java/com/bbn/hadder/commands/CommandEvent.java index 7ea21a7..fb9d643 100644 --- a/src/main/java/com/bbn/hadder/commands/CommandEvent.java +++ b/src/main/java/com/bbn/hadder/commands/CommandEvent.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.general.HelpCommand; import com.bbn.hadder.core.CommandHandler; import com.bbn.hadder.core.Config; +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; @@ -18,14 +19,16 @@ public class CommandEvent extends MessageReceivedEvent { private CommandHandler commandHandler; private HelpCommand helpCommand; private MessageEditor messageEditor; + private EventWaiter eventWaiter; - public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor) { + public CommandEvent(@Nonnull JDA api, long responseNumber, @Nonnull Message message, Rethink rethink, Config config, CommandHandler commandHandler, HelpCommand helpCommand, MessageEditor messageEditor, EventWaiter eventWaiter) { super(api, responseNumber, message); this.rethink = rethink; this.config = config; this.commandHandler = commandHandler; this.helpCommand = helpCommand; this.messageEditor = messageEditor; + this.eventWaiter = eventWaiter; } public Rethink getRethink() { @@ -47,4 +50,8 @@ public class CommandEvent extends MessageReceivedEvent { public MessageEditor getMessageEditor() { return messageEditor; } + + public EventWaiter getEventWaiter() { + return eventWaiter; + } } diff --git a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java index 3768fa5..c8e9fd3 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/EditRulesCommand.java @@ -51,8 +51,8 @@ public class EditRulesCommand implements Command { .build()).queue(); } } - }, event); - }, event); + }, event.getJDA(), event.getAuthor()); + }, event.getJDA(), event.getAuthor()); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, "commands.moderation.editrules.error.title", "", diff --git a/src/main/java/com/bbn/hadder/core/CommandHandler.java b/src/main/java/com/bbn/hadder/core/CommandHandler.java index c8e8dd3..9d7469f 100644 --- a/src/main/java/com/bbn/hadder/core/CommandHandler.java +++ b/src/main/java/com/bbn/hadder/core/CommandHandler.java @@ -4,6 +4,7 @@ import com.bbn.hadder.Rethink; import com.bbn.hadder.commands.Command; import com.bbn.hadder.commands.CommandEvent; import com.bbn.hadder.commands.general.HelpCommand; +import com.bbn.hadder.utils.EventWaiter; import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.events.message.MessageReceivedEvent; @@ -34,7 +35,7 @@ public class CommandHandler { if (args.length > 0 && args[0].equals("")) args = new String[0]; CommandEvent commandEvent = new CommandEvent(event.getJDA(), event.getResponseNumber(), event.getMessage(), rethink, - config, this, helpCommand, new MessageEditor(rethink, event.getAuthor())); + config, this, helpCommand, new MessageEditor(rethink, event.getAuthor()), new EventWaiter()); if (cmd.getClass().getAnnotations().length > 0 && !Arrays.asList(cmd.getClass().getAnnotations()).contains(Perms.class)) { for (Perm perm : cmd.getClass().getAnnotation(Perms.class).value()) { if (!perm.check(commandEvent)) { From 1c1ba347cf8403cce6c9fe5e42ebb50fb094a655 Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:02 +0100 Subject: [PATCH 109/128] New translations Translations_en.properties (German) New German translation --- .../Translations/Translations_de.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_de.properties b/src/main/resources/Translations/Translations_de.properties index 8301ba1..c5de023 100644 --- a/src/main/resources/Translations/Translations_de.properties +++ b/src/main/resources/Translations/Translations_de.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Kanal konnte nicht gefunden werden commands.moderation.rules.channel.error.description = Ich kann den angegebenen Kanal nicht finden. Bitte starte das Setup erneut. -commands.moderation.rules.rules.title = Regeln +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = Der Kanal wurde erfolgreich auf %extra% gesetzt. Bitte senden Sie mir jetzt die Regeln. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Kanal konnte nicht gefunden werden +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From e47b7921772e7a8fdb8fea246a540b1127f595f1 Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:03 +0100 Subject: [PATCH 110/128] New translations Translations_en.properties (English) New English translation --- .../Translations/Translations_en.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 219fc21..660e58c 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From e7b88863d151fc8d55718763ed3b9909564058ff Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:04 +0100 Subject: [PATCH 111/128] New translations Translations_en.properties (Spanish) New Spanish translation --- .../Translations/Translations_es.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_es.properties b/src/main/resources/Translations/Translations_es.properties index 219fc21..660e58c 100644 --- a/src/main/resources/Translations/Translations_es.properties +++ b/src/main/resources/Translations/Translations_es.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From ff9bc202a7f341a573722a87877f6df462044e54 Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:06 +0100 Subject: [PATCH 112/128] New translations Translations_en.properties (French) New French translation --- .../Translations/Translations_fr.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_fr.properties b/src/main/resources/Translations/Translations_fr.properties index 219fc21..660e58c 100644 --- a/src/main/resources/Translations/Translations_fr.properties +++ b/src/main/resources/Translations/Translations_fr.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From 60197e3959a1b1cc1a95075b9c8f6f9dcafa168b Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:07 +0100 Subject: [PATCH 113/128] New translations Translations_en.properties (Russian) New Russian translation --- .../Translations/Translations_ru.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_ru.properties b/src/main/resources/Translations/Translations_ru.properties index 219fc21..660e58c 100644 --- a/src/main/resources/Translations/Translations_ru.properties +++ b/src/main/resources/Translations/Translations_ru.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From de4232e11e79983f4b31eb797a1cdcc6bc7da7be Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:08 +0100 Subject: [PATCH 114/128] New translations Translations_en.properties (Turkish) New Turkish translation --- .../Translations/Translations_tr.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_tr.properties b/src/main/resources/Translations/Translations_tr.properties index 219fc21..660e58c 100644 --- a/src/main/resources/Translations/Translations_tr.properties +++ b/src/main/resources/Translations/Translations_tr.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From 164a0efbfeeaefd2cd5d1a20bce028251bb90bb1 Mon Sep 17 00:00:00 2001 From: Skidder Date: Thu, 26 Dec 2019 22:41:10 +0100 Subject: [PATCH 115/128] New translations Translations_en.properties (Chinese Simplified) New Chinese Simplified translation --- .../Translations/Translations_zh.properties | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/resources/Translations/Translations_zh.properties b/src/main/resources/Translations/Translations_zh.properties index 219fc21..660e58c 100644 --- a/src/main/resources/Translations/Translations_zh.properties +++ b/src/main/resources/Translations/Translations_zh.properties @@ -136,7 +136,7 @@ commands.moderation.rules.setup.title = Set up rules commands.moderation.rules.setup.description = Welcome to the Hadder rules setup. Please mention the channel in which I should send the rules. Your message should look like\: \#rules or \#verify. commands.moderation.rules.channel.error.title = Channel not found commands.moderation.rules.channel.error.description = I can't find the specified channel. Please start the setup again. -commands.moderation.rules.rules.title = Rules +commands.moderation.rules.rules.title = Rules message commands.moderation.rules.rules.description = The channel was successfully set to %extra%. Please send me the rules now. commands.moderation.rules.role.title = Role to assign commands.moderation.rules.role.description = The rules were successfully set. Please send me the name of the role which the user receives after he accepted the rules. @@ -148,17 +148,30 @@ commands.moderation.rules.emote.accept.title = Custom Accept Emote commands.moderation.rules.emote.accept.description = The role has been successfully set to %extra%. Now send me the emote on which your user should react to to get verified. commands.moderation.rules.emote.decline.title = Custom Decline Emote commands.moderation.rules.emote.decline.description = The first emote has been successfully set to %extra%. Please send me now the decline emote. -commands.moderation.rules.success.title = Successfully set the rules -commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.emote.error.access.description = I can not access the custom emote(s). commands.moderation.rules.emote.error.equal.title = Emotes are equal commands.moderation.rules.emote.error.equal.description = The 1st and 2nd emote equals each other. commands.moderation.rules.emoji.decline.description = The first emote has been successfully set. Please send me now the decline emote. commands.moderation.rules.emoji.error.description = The given emote can't be used. +commands.moderation.rules.success.title = Successfully set the rules +commands.moderation.rules.success.description = I successfully send the rules in %extra%. commands.moderation.rules.error.message.title = Can't write messages commands.moderation.rules.error.message.description = I can not write messages in the specified channel commands.moderation.rules.help.description = Setup the rules on your Discord server commands.moderation.starboard.success.title = Successfully set the Channel\! +commands.moderation.editrules.channel.title = Rules channel +commands.moderation.editrules.channel.description = Please send me the channel with the rules as mention +commands.moderation.editrules.channel.found.error.title = Channel not found +commands.moderation.editrules.channel.found.error.description = I can't find the specified channel. Please start the edit process again. +commands.moderation.editrules.channel.message.error.title = No rules message +commands.moderation.editrules.channel.message.error.description = I can not find the rules message in the specified channel. +commands.moderation.editrules.message.title = New message +commands.moderation.editrules.message.description = Please send me the new rules message now. +commands.moderation.editrules.error.title = No rules +commands.moderation.editrules.error.description = There is nor rules message in this server. Please setup the rules first with %extra%rules +commands.moderation.editrules.success.title = Successfully changed +commands.moderation.editrules.success.description = I successfully changed the rules +commands.moderation.editrules.help.description = Edits the rules message. commands.music.join.success.title = Successfully connected commands.music.join.success.description = I successfully connected to %extra%. From 4d5b830a1358a27dd49266888758f668f7a3e765 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 22:42:17 +0100 Subject: [PATCH 116/128] Language fix --- src/main/java/com/bbn/hadder/Rethink.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/Rethink.java b/src/main/java/com/bbn/hadder/Rethink.java index cf63bf4..5e99d76 100644 --- a/src/main/java/com/bbn/hadder/Rethink.java +++ b/src/main/java/com/bbn/hadder/Rethink.java @@ -208,7 +208,7 @@ public class Rethink { } public void setLanguage(String user_id, String language) { - this.update("users", user_id, "language", language); + this.update("user", user_id, "language", language); } public String getLanguage(String user_id) { From c4c78a96a7f958ced22eb7a6884e6d2fe1dfa4c1 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 23:01:58 +0100 Subject: [PATCH 117/128] Avatar fix --- src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java | 2 +- src/main/resources/Translations/Translations_en.properties | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java index e3c852d..9bb48f9 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/AvatarCommand.java @@ -66,6 +66,6 @@ public class AvatarCommand implements Command { @Override public String usage() { - return "[@User]/[ID]"; + return "user/id"; } } diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 660e58c..27fe8d7 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -16,6 +16,7 @@ region = guildid = content = song = +user/id= [@User]/[ID] error = Error none = None From 06e30e9276faa1b384f6b33cac57a05b062343e3 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 23:23:52 +0100 Subject: [PATCH 118/128] Bug fix --- src/main/java/com/bbn/hadder/commands/fun/GifCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java index ecd14d1..760c139 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/GifCommand.java @@ -58,6 +58,6 @@ public class GifCommand implements Command { @Override public String usage() { - return ""; + return "searchterm"; } } From 692a47f11822e50b137329d90fb8b97c09fce8e2 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Thu, 26 Dec 2019 23:27:49 +0100 Subject: [PATCH 119/128] Perm bug fix --- .../java/com/bbn/hadder/commands/moderation/NickCommand.java | 2 +- src/main/java/com/bbn/hadder/core/Perm.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java index df21d5a..6a10aa2 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/NickCommand.java @@ -12,7 +12,7 @@ import com.bbn.hadder.utils.MessageEditor; import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.entities.Member; -@Perms(Perm.CHANGE_NICKNAME) +@Perms(Perm.MANAGE_NICKNAMES) public class NickCommand implements Command { @Override diff --git a/src/main/java/com/bbn/hadder/core/Perm.java b/src/main/java/com/bbn/hadder/core/Perm.java index 4cd1b7a..1ecb0f4 100644 --- a/src/main/java/com/bbn/hadder/core/Perm.java +++ b/src/main/java/com/bbn/hadder/core/Perm.java @@ -52,10 +52,10 @@ public enum Perm { return event.getMember().hasPermission(Permission.MANAGE_ROLES) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, - CHANGE_NICKNAME { + MANAGE_NICKNAMES { @Override public boolean check(CommandEvent event) { - return event.getMember().hasPermission(Permission.NICKNAME_CHANGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); + return event.getMember().hasPermission(Permission.NICKNAME_MANAGE) || event.getConfig().getOwners().contains(event.getAuthor().getIdLong()); } }, ADMINISTRATOR { From c89834af75872ca40d7126cadabd43f2c8aa976d Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 27 Dec 2019 02:55:56 +0100 Subject: [PATCH 120/128] Fixing #265 --- .../commands/moderation/ClearCommand.java | 24 ++++++++++++++----- .../Translations/Translations_en.properties | 4 +++- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java index 6e3d248..2e9bc1f 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/ClearCommand.java @@ -50,13 +50,25 @@ public class ClearCommand implements Command { List history = event.getTextChannel().getHistory().retrievePast(nbToDelete + 1).complete(); List msgToDelete = new ArrayList<>(history); event.getTextChannel().deleteMessages(msgToDelete).queue(); - Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "", "", "commands.moderation.clear.success.description", String.valueOf(nbToDelete)).build()).complete(); - try { - TimeUnit.SECONDS.sleep(2); - } catch (InterruptedException e) { - e.printStackTrace(); + if (nbToDelete == 1) { + Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.clear.success.title", + "commands.moderation.clear.success.description.singular").build()).complete(); + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + msg.delete().queue(); + } else { + Message msg = event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.clear.success.title", "", + "commands.moderation.clear.success.description.plural", String.valueOf(nbToDelete)).build()).complete(); + try { + TimeUnit.SECONDS.sleep(2); + } catch (InterruptedException e) { + e.printStackTrace(); + } + msg.delete().queue(); } - msg.delete().queue(); } } catch (NumberFormatException e) { event.getHelpCommand().sendHelp(this, event); diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 27fe8d7..6ff6c80 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -94,7 +94,9 @@ commands.moderation.ban.help.description = Bans one ore more user from the serve 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. From 10c972259816b792075fb80356fa59a5600a36d4 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Fri, 27 Dec 2019 14:34:22 +0100 Subject: [PATCH 121/128] New meme API #260 --- src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java index 93b7749..2c1918b 100644 --- a/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java +++ b/src/main/java/com/bbn/hadder/commands/fun/MemeCommand.java @@ -21,16 +21,17 @@ public class MemeCommand implements Command { public void executed(String[] args, CommandEvent event) { OkHttpClient client = new OkHttpClient(); - Request request = new Request.Builder().url("https://some-random-api.ml/meme").build(); + Request request = new Request.Builder().url("https://meme-api.herokuapp.com/gimme").build(); try { Response response = client.newCall(request).execute(); JSONObject json = new JSONObject(response.body().string()); - String url = json.get("image").toString(); + String url = json.getString("url"); event.getTextChannel().sendMessage( event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.fun.meme.success.title", "") .setImage(url) + .setAuthor("Subreddit: " + json.getString("subreddit")) .build()).queue(); } catch (IOException e) { e.printStackTrace(); From e6a0ac250ac3f8700344da3d6e3b8b035d4068c7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2019 13:36:44 +0000 Subject: [PATCH 122/128] Bump JDA from 4.1.0_86 to 4.1.0_87 Bumps JDA from 4.1.0_86 to 4.1.0_87. Signed-off-by: dependabot-preview[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 24b1adf..c4f89c0 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ net.dv8tion JDA - 4.1.0_86 + 4.1.0_87 org.json From 0e7c0b941f86070f8c403e8779ef7b65c1ff1b9a Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 28 Dec 2019 01:14:54 +0100 Subject: [PATCH 123/128] Stop Command fix --- src/main/java/com/bbn/hadder/commands/music/StopCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java index ab03799..70bbb2c 100644 --- a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java @@ -13,7 +13,7 @@ public class StopCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - new AudioManager().players.remove(event.getGuild().getId()); + AudioManager.players.remove(event.getGuild().getId()); new AudioManager().getPlayer(event.getGuild()).destroy(); new AudioManager().getTrackManager(event.getGuild()).purgeQueue(); event.getGuild().getAudioManager().closeAudioConnection(); From 851d61dea5da713f453eedb0f3742b5f0fe5a050 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 28 Dec 2019 01:15:04 +0100 Subject: [PATCH 124/128] Voice Leave Listener first part --- .../hadder/listener/VoiceLeaveListener.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java diff --git a/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java b/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java new file mode 100644 index 0000000..35f4644 --- /dev/null +++ b/src/main/java/com/bbn/hadder/listener/VoiceLeaveListener.java @@ -0,0 +1,24 @@ +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; + +/** + * @author Skidder / GregTCLTK + */ + +public class VoiceLeaveListener extends ListenerAdapter { + + @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); + } + } +} From e16ac8095f6f2da7f9526b29771e7cf3af6f5225 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 28 Dec 2019 01:15:16 +0100 Subject: [PATCH 125/128] Register Voice Leave Listener --- src/main/java/com/bbn/hadder/Hadder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/Hadder.java b/src/main/java/com/bbn/hadder/Hadder.java index 173d6f2..6be5938 100644 --- a/src/main/java/com/bbn/hadder/Hadder.java +++ b/src/main/java/com/bbn/hadder/Hadder.java @@ -105,7 +105,8 @@ public class Hadder { new ReadyListener(rethink, config), new InviteLinkListener(rethink), new RulesListener(rethink), - new StarboardListener(rethink)); + new StarboardListener(rethink), + new VoiceLeaveListener()); try { shardManager = builder.build(); From e79450e6051817c7f3c3fba2c157b73becd82e50 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 28 Dec 2019 01:22:19 +0100 Subject: [PATCH 126/128] Fix for all joo --- .../com/bbn/hadder/audio/AudioManager.java | 144 +++++++++++------- 1 file changed, 90 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index 7c0d6dd..eafc501 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -10,7 +10,9 @@ 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; import java.util.AbstractMap; @@ -28,62 +30,9 @@ public class AudioManager { AudioSourceManagers.registerRemoteSources(myManager); } - public final Map> players = new HashMap<>(); + public static Map> players = new HashMap<>(); public final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); - public void loadTrack(String identifier, CommandEvent event, Message msg) { - - Guild guild = event.getGuild(); - getPlayer(guild); - - myManager.loadItemOrdered(guild, identifier, new AudioLoadResultHandler() { - - @Override - public void trackLoaded(AudioTrack track) { - getTrackManager(guild).queue(track, 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"), track.getInfo().title, false) - .addField(event.getMessageEditor().getTerm("commands.music.play.success.author"), track.getInfo().author, true) - .addField(event.getMessageEditor().getTerm("commands.music.play.success.length"), - String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(track.getInfo().length), - TimeUnit.MILLISECONDS.toMinutes(track.getInfo().length) % TimeUnit.HOURS.toMinutes(1), - TimeUnit.MILLISECONDS.toSeconds(track.getInfo().length) % TimeUnit.MINUTES.toSeconds(1)), true) - .build()).queue(); - } - - @Override - public void playlistLoaded(AudioPlaylist playlist) { - if (playlist.getSelectedTrack() != null) { - trackLoaded(playlist.getSelectedTrack()); - } else if (playlist.isSearchResult()) { - trackLoaded(playlist.getTracks().get(0)); - } else { - for (int i = 0; i < Math.min(playlist.getTracks().size(), 200); i++) { - getTrackManager(guild).queue(playlist.getTracks().get(i), event.getMember()); - } - } - } - - @Override - public void noMatches() { - msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, - "commands.music.play.error.match.title", "❌", - "commands.music.play.error.match.description", "") - .build()).queue(); - } - - @Override - public void loadFailed(FriendlyException e) { - msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, - "commands.music.play.error.load.title", "❌", - "commands.music.play.error.load.description", "") - .build()).queue(); - } - }); - } - public boolean hasPlayer(Guild guild) { return players.containsKey(guild.getId()); } @@ -111,6 +60,93 @@ public class AudioManager { return nPlayer; } + public void loadTrack(String identifier, CommandEvent event, Message msg) { + Guild guild = event.getGuild(); + getPlayer(guild); + + myManager.loadItemOrdered(guild, identifier, new AudioLoadResultHandler() { + + @Override + public void trackLoaded(AudioTrack track) { + getTrackManager(guild).queue(track, 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"), track.getInfo().title, false) + .addField(event.getMessageEditor().getTerm("commands.music.play.success.author"), track.getInfo().author, true) + .addField(event.getMessageEditor().getTerm("commands.music.play.success.length"), + String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(track.getInfo().length), + TimeUnit.MILLISECONDS.toMinutes(track.getInfo().length) % TimeUnit.HOURS.toMinutes(1), + TimeUnit.MILLISECONDS.toSeconds(track.getInfo().length) % TimeUnit.MINUTES.toSeconds(1)), true) + .build()).queue(); + } + + @Override + public void playlistLoaded(AudioPlaylist playlist) { + if (playlist.getSelectedTrack() != null) { + trackLoaded(playlist.getSelectedTrack()); + } else if (playlist.isSearchResult()) { + trackLoaded(playlist.getTracks().get(0)); + } else { + event.getTextChannel().sendMessage("PL loaded :D").queue(); + } + } + + @Override + public void noMatches() { + msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.play.error.match.title", "❌", + "commands.music.play.error.match.description", "") + .build()).queue(); + } + + @Override + public void loadFailed(FriendlyException e) { + msg.editMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.play.error.load.title", "❌", + "commands.music.play.error.load.description", "") + .build()).queue(); + } + }); + } + + public boolean isDj(Member member) { + return member.getRoles().stream().anyMatch(r -> r.getName().equals("DJ")); + } + + public boolean isCurrentDj(Member member) { + 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) { + long seconds = milis / 1000; + long hours = Math.floorDiv(seconds, 3600); + seconds = seconds - (hours * 3600); + long mins = Math.floorDiv(seconds, 60); + seconds = seconds - (mins * 60); + return (hours == 0 ? "" : hours + ":") + String.format("%02d", mins) + ":" + String.format("%02d", seconds); + } + public String getOrNull(String s) { return s.isEmpty() ? "N/A" : s; } From 14387062bd6511525c7189dbe8743f3dd898b8ff Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 28 Dec 2019 02:48:32 +0100 Subject: [PATCH 127/128] Fix later --- .../com/bbn/hadder/audio/AudioManager.java | 8 +++++++- .../bbn/hadder/commands/music/StopCommand.java | 18 +++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index eafc501..0cee6cd 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -31,12 +31,18 @@ public class AudioManager { } public static Map> players = new HashMap<>(); - public final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); + private final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); public boolean hasPlayer(Guild guild) { return players.containsKey(guild.getId()); } + public static void removePlayer(Guild g) { + System.out.println(players.toString()); + players.remove(g.getId()); + System.out.println(players.toString()); + } + public AudioPlayer getPlayer(Guild guild) { AudioPlayer p; if (hasPlayer(guild)) { diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java index 70bbb2c..33c03f9 100644 --- a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java @@ -13,13 +13,17 @@ public class StopCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - AudioManager.players.remove(event.getGuild().getId()); - new AudioManager().getPlayer(event.getGuild()).destroy(); - new AudioManager().getTrackManager(event.getGuild()).purgeQueue(); - event.getGuild().getAudioManager().closeAudioConnection(); - event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, - "commands.music.stop.success.title", - "commands.music.stop.success.description").build()).queue(); + if (new AudioManager().hasPlayer(event.getGuild())) { + AudioManager.removePlayer(event.getGuild()); + new AudioManager().getPlayer(event.getGuild()).destroy(); + new AudioManager().getTrackManager(event.getGuild()).purgeQueue(); + event.getGuild().getAudioManager().closeAudioConnection(); + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, + "commands.music.stop.success.title", + "commands.music.stop.success.description").build()).queue(); + } else { + event.getTextChannel().sendMessage("I love you <3").queue(); + } } @Override From 6e73bcb554d7d3a69e68dfb82eeedccf023deb39 Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Sat, 28 Dec 2019 13:12:10 +0100 Subject: [PATCH 128/128] fdsg --- .../com/bbn/hadder/audio/AudioManager.java | 8 ++++-- .../commands/moderation/BanCommand.java | 4 +-- .../hadder/commands/music/InfoCommand.java | 28 ++++++------------- .../hadder/commands/music/LeaveCommand.java | 10 +++---- .../hadder/commands/music/StopCommand.java | 2 +- .../hadder/commands/owner/EvalCommand.java | 2 ++ .../Translations/Translations_en.properties | 4 ++- 7 files changed, 27 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/bbn/hadder/audio/AudioManager.java b/src/main/java/com/bbn/hadder/audio/AudioManager.java index 0cee6cd..f16baa2 100644 --- a/src/main/java/com/bbn/hadder/audio/AudioManager.java +++ b/src/main/java/com/bbn/hadder/audio/AudioManager.java @@ -30,19 +30,23 @@ public class AudioManager { AudioSourceManagers.registerRemoteSources(myManager); } - public static Map> players = new HashMap<>(); + public Map> players = new HashMap<>(); private final AudioPlayerManager myManager = new DefaultAudioPlayerManager(); public boolean hasPlayer(Guild guild) { return players.containsKey(guild.getId()); } - public static void removePlayer(Guild g) { + public void removePlayer(Guild g) { System.out.println(players.toString()); players.remove(g.getId()); System.out.println(players.toString()); } + public Map> getPlayers () { + return players; + } + public AudioPlayer getPlayer(Guild guild) { AudioPlayer p; if (hasPlayer(guild)) { diff --git a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java index 406d699..de948d9 100644 --- a/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java +++ b/src/main/java/com/bbn/hadder/commands/moderation/BanCommand.java @@ -26,7 +26,7 @@ public class BanCommand implements Command { event.getMessageEditor().getMessage( MessageEditor.MessageType.INFO, "commands.moderation.ban.success.title", - "✅", + "", "commands.moderation.ban.success.description", victim.getUser().getName() + ".").build()).queue(); } else { @@ -74,7 +74,7 @@ public class BanCommand implements Command { } event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.INFO, "commands.moderation.ban.success.title", - "✅", + "", "commands.moderation.ban.massban.success.description", String.valueOf(event.getMessage().getMentionedMembers().size())).build()).queue(); } diff --git a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java index 3baeb46..f38f0ef 100644 --- a/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/InfoCommand.java @@ -3,6 +3,7 @@ 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; import com.sedmelluq.discord.lavaplayer.track.AudioTrack; /** @@ -17,35 +18,22 @@ public class InfoCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { - if (new AudioManager().hasPlayer(event.getGuild())) { - event.getTextChannel().sendMessage("Ja Player is auch wieder da"); - } - if (new AudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) { - event.getTextChannel().sendMessage("Joo playing track net anwesend^^").queue(); - } - if (!new AudioManager().hasPlayer(event.getGuild()) || new AudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) { - event.getTextChannel().sendMessage("Shut up eyyyy du kek").queue(); - } else { + if (new AudioManager().hasPlayer(event.getGuild()) && new AudioManager().getPlayer(event.getGuild()).getPlayingTrack() == null) { AudioTrack track = new AudioManager().getPlayer(event.getGuild()).getPlayingTrack(); event.getTextChannel().sendMessage("Track Info" + String.format(QUEUE_DESCRIPTION, CD, new AudioManager().getOrNull(track.getInfo().title), - "\n\u23F1 **|>** `[ " + getTimestamp(track.getPosition()) + " / " + getTimestamp(track.getInfo().length) + " ]`", + "\n\u23F1 **|>** `[ " + new AudioManager().getTimestamp(track.getPosition()) + " / " + new AudioManager().getTimestamp(track.getInfo().length) + " ]`", "\n" + MIC, new AudioManager().getOrNull(track.getInfo().author), "\n\uD83C\uDFA7 **|>** " + "")).queue(); + } else { + event.getTextChannel().sendMessage(event.getMessageEditor().getMessage(MessageEditor.MessageType.ERROR, + "commands.music.info.error.title", + "commands.music.info.error.description").build()).queue(); } } - private String getTimestamp(long milis) { - long seconds = milis / 1000; - long hours = Math.floorDiv(seconds, 3600); - seconds = seconds - (hours * 3600); - long mins = Math.floorDiv(seconds, 60); - seconds = seconds - (mins * 60); - return (hours == 0 ? "" : hours + ":") + String.format("%02d", mins) + ":" + String.format("%02d", seconds); - } - @Override public String[] labels() { - return new String[]{"info"}; + return new String[]{"info", "songinfo"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java index eb860db..c2a0398 100644 --- a/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/LeaveCommand.java @@ -15,14 +15,14 @@ public class LeaveCommand implements Command { if (event.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { event.getGuild().getAudioManager().closeAudioConnection(); event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.INFO, - "commands.music.leave.success.title", + MessageEditor.MessageType.INFO, + "commands.music.leave.success.title", "commands.music.leave.success.description") .build()).queue(); } else { event.getTextChannel().sendMessage(event.getMessageEditor().getMessage( - MessageEditor.MessageType.WARNING, - "commands.music.leave.error.tile", + MessageEditor.MessageType.WARNING, + "commands.music.leave.error.tile", "commands.music.leave.error.description") .build()).queue(); } @@ -30,7 +30,7 @@ public class LeaveCommand implements Command { @Override public String[] labels() { - return new String[]{"leave"}; + return new String[]{"leave", "quit"}; } @Override diff --git a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java index 33c03f9..97e8691 100644 --- a/src/main/java/com/bbn/hadder/commands/music/StopCommand.java +++ b/src/main/java/com/bbn/hadder/commands/music/StopCommand.java @@ -14,7 +14,7 @@ public class StopCommand implements Command { @Override public void executed(String[] args, CommandEvent event) { if (new AudioManager().hasPlayer(event.getGuild())) { - AudioManager.removePlayer(event.getGuild()); + new AudioManager().players.remove(event.getGuild().getId()); new AudioManager().getPlayer(event.getGuild()).destroy(); new AudioManager().getTrackManager(event.getGuild()).purgeQueue(); event.getGuild().getAudioManager().closeAudioConnection(); diff --git a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java index ca5fac2..e0f4e31 100644 --- a/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java +++ b/src/main/java/com/bbn/hadder/commands/owner/EvalCommand.java @@ -5,6 +5,7 @@ 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; @@ -43,6 +44,7 @@ public class EvalCommand implements Command { engine.put("author", event.getAuthor()); engine.put("member", event.getMember()); engine.put("self", event.getGuild().getSelfMember()); + engine.put("audio", new AudioManager()); ScheduledExecutorService service = Executors.newScheduledThreadPool(1); diff --git a/src/main/resources/Translations/Translations_en.properties b/src/main/resources/Translations/Translations_en.properties index 6ff6c80..2da7c59 100644 --- a/src/main/resources/Translations/Translations_en.properties +++ b/src/main/resources/Translations/Translations_en.properties @@ -84,7 +84,7 @@ 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\! @@ -203,6 +203,8 @@ commands.music.play.success.length = Length 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.error.title = No playing track +commands.music.info.error.description = I am not playing anything at the moment 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