From 792a73353db333334b0dac97d8a7aac29eec8ea2 Mon Sep 17 00:00:00 2001 From: "Jonny_Bro (Nikita)" Date: Sun, 26 Mar 2023 18:31:19 +0500 Subject: [PATCH] v4.2.1 - https://github.com/JonnyBro/JaBa-logs --- commands/Administration/automod.js | 9 +++ commands/Administration/autorole.js | 5 +- commands/Administration/config.js | 12 ++- commands/Administration/goodbye.js | 15 +++- commands/Administration/selectroles.js | 6 ++ commands/Administration/set.js | 14 ++-- commands/Administration/setlang.js | 4 +- commands/Administration/stealemoji.js | 2 + commands/Administration/welcome.js | 15 +++- commands/Economy/achievements.js | 4 +- commands/Economy/bank.js | 7 +- commands/Economy/birthdate.js | 27 ++++++- commands/Economy/divorce.js | 1 + commands/Economy/importmee6.js | 3 +- commands/Economy/leaderboard.js | 4 +- commands/Economy/marry.js | 2 + commands/Economy/money.js | 6 +- commands/Economy/number.js | 1 + commands/Economy/pay.js | 3 + commands/Economy/profile.js | 4 +- commands/Economy/rep.js | 2 + commands/Economy/rob.js | 3 + commands/Economy/setbio.js | 2 + commands/Economy/slots.js | 2 + commands/Economy/tictactoe.js | 2 + commands/Economy/transactions.js | 4 +- commands/Economy/work.js | 1 + commands/Fun/8ball.js | 2 + commands/Fun/cat.js | 1 + commands/Fun/crab.js | 1 + commands/Fun/dog.js | 1 + commands/Fun/lmgtfy.js | 5 +- commands/Fun/lovecalc.js | 5 +- commands/Fun/memes.js | 3 +- commands/General/afk.js | 2 + commands/General/avatar.js | 4 +- commands/General/boosters.js | 1 + commands/General/emoji.js | 2 + commands/General/help.js | 6 +- commands/General/minecraft.js | 2 + commands/General/ping.js | 1 + commands/General/remindme.js | 5 +- commands/General/report.js | 3 + commands/General/serverinfo.js | 1 + commands/General/shorturl.js | 2 + commands/General/staff.js | 1 + commands/General/stats.js | 2 +- commands/General/suggest.js | 2 + commands/General/userinfo.js | 4 +- commands/General/whois.js | 2 + commands/IAT/checkjar.js | 1 + commands/Moderation/clear.js | 27 ++++--- commands/Moderation/clearwarns.js | 2 + commands/Moderation/giveaway.js | 12 +++ commands/Moderation/poll.js | 2 + commands/Moderation/unban.js | 2 + commands/Moderation/warn.js | 10 +-- commands/Moderation/warns.js | 2 + commands/Music/back.js | 1 + commands/Music/clips.js | 8 +- commands/Music/loop.js | 5 +- commands/Music/nowplaying.js | 1 + commands/Music/play.js | 4 +- commands/Music/queue.js | 1 + commands/Music/seek.js | 2 + commands/Music/shuffle.js | 1 + commands/Music/skip.js | 1 + commands/Music/skipto.js | 2 + commands/Music/stop.js | 1 + commands/Music/volume.js | 74 +++++++++++++++++++ commands/NSFW/nsfw.js | 5 +- commands/Owner/announcement.js | 6 +- commands/Owner/debug.js | 35 +++++---- commands/Owner/eval.js | 2 + commands/Owner/reload.js | 23 +++++- commands/Owner/say.js | 5 +- commands/Owner/servers.js | 1 + dashboard/public/docs/updates.md | 8 ++ events/CommandHandler.js | 4 +- events/Guild/guildBanAdd.js | 32 ++++++++ events/Guild/guildCreate.js | 17 ++--- events/Guild/guildDelete.js | 2 +- events/MessageHandler.js | 55 +++++++++++++- languages/ru-RU/administration/automod.json | 11 +-- languages/ru-RU/administration/autorole.json | 6 +- languages/ru-RU/administration/config.json | 10 +-- languages/ru-RU/administration/deletemod.json | 4 +- languages/ru-RU/administration/goodbye.json | 8 +- languages/ru-RU/administration/setlang.json | 2 +- .../ru-RU/administration/stealemoji.json | 2 +- languages/ru-RU/administration/welcome.json | 8 +- languages/ru-RU/economy/achievements.json | 14 ++-- languages/ru-RU/economy/bank.json | 6 +- languages/ru-RU/economy/birthdate.json | 4 +- languages/ru-RU/economy/divorce.json | 6 +- languages/ru-RU/economy/leaderboard.json | 2 +- languages/ru-RU/economy/marry.json | 18 ++--- languages/ru-RU/economy/money.json | 4 +- languages/ru-RU/economy/number.json | 12 +-- languages/ru-RU/economy/pay.json | 4 +- languages/ru-RU/economy/profile.json | 6 +- languages/ru-RU/economy/rep.json | 6 +- languages/ru-RU/economy/rob.json | 16 ++-- languages/ru-RU/economy/setbio.json | 4 +- languages/ru-RU/economy/slots.json | 6 +- languages/ru-RU/economy/tictactoe.json | 14 ++-- languages/ru-RU/economy/work.json | 8 +- languages/ru-RU/fun/lovecalc.json | 2 +- languages/ru-RU/general/afk.json | 2 +- languages/ru-RU/general/minecraft.json | 2 +- languages/ru-RU/general/report.json | 4 +- languages/ru-RU/general/serverinfo.json | 2 +- languages/ru-RU/general/stats.json | 2 +- languages/ru-RU/general/suggest.json | 6 +- languages/ru-RU/general/whois.json | 6 +- languages/ru-RU/misc.json | 22 +++--- languages/ru-RU/moderation/clear.json | 7 +- languages/ru-RU/moderation/clearwarns.json | 2 +- languages/ru-RU/moderation/giveaway.json | 20 ++--- languages/ru-RU/moderation/unban.json | 2 +- languages/ru-RU/moderation/warns.json | 2 +- languages/ru-RU/music/loop.json | 5 +- languages/ru-RU/music/play.json | 10 +-- languages/ru-RU/music/seek.json | 2 +- languages/ru-RU/music/volume.json | 6 ++ languages/ru-RU/nsfw/{nsfw.json => pic.json} | 2 +- languages/ru-RU/owner/announcement.json | 4 +- languages/ru-RU/owner/debug.json | 10 +-- languages/ru-RU/owner/reload.json | 4 +- languages/ru-RU/owner/say.json | 2 +- languages/uk-UA/administration/automod.json | 10 +-- languages/uk-UA/administration/autorole.json | 6 +- languages/uk-UA/administration/config.json | 10 +-- languages/uk-UA/administration/deletemod.json | 4 +- languages/uk-UA/administration/goodbye.json | 8 +- .../uk-UA/administration/setbirthdays.json | 4 +- languages/uk-UA/administration/setlang.json | 2 +- .../uk-UA/administration/setmodlogs.json | 4 +- languages/uk-UA/administration/setnews.json | 4 +- .../uk-UA/administration/setreports.json | 4 +- .../uk-UA/administration/setsuggests.json | 4 +- .../uk-UA/administration/stealemoji.json | 2 +- languages/uk-UA/administration/welcome.json | 8 +- languages/uk-UA/economy/achievements.json | 14 ++-- languages/uk-UA/economy/bank.json | 6 +- languages/uk-UA/economy/birthdate.json | 6 +- languages/uk-UA/economy/divorce.json | 6 +- languages/uk-UA/economy/leaderboard.json | 2 +- languages/uk-UA/economy/marry.json | 18 ++--- languages/uk-UA/economy/money.json | 4 +- languages/uk-UA/economy/number.json | 12 +-- languages/uk-UA/economy/pay.json | 6 +- languages/uk-UA/economy/profile.json | 6 +- languages/uk-UA/economy/rep.json | 6 +- languages/uk-UA/economy/rob.json | 16 ++-- languages/uk-UA/economy/setbio.json | 4 +- languages/uk-UA/economy/slots.json | 6 +- languages/uk-UA/economy/tictactoe.json | 16 ++-- languages/uk-UA/economy/work.json | 8 +- languages/uk-UA/fun/lovecalc.json | 2 +- languages/uk-UA/general/afk.json | 2 +- languages/uk-UA/general/minecraft.json | 2 +- languages/uk-UA/general/remindme.json | 2 +- languages/uk-UA/general/report.json | 4 +- languages/uk-UA/general/serverinfo.json | 2 +- languages/uk-UA/general/stats.json | 2 +- languages/uk-UA/general/suggest.json | 6 +- languages/uk-UA/general/whois.json | 6 +- languages/uk-UA/misc.json | 22 +++--- languages/uk-UA/moderation/clear.json | 7 +- languages/uk-UA/moderation/clearwarns.json | 2 +- languages/uk-UA/moderation/giveaway.json | 22 +++--- languages/uk-UA/moderation/unban.json | 2 +- languages/uk-UA/moderation/warns.json | 2 +- languages/uk-UA/music/loop.json | 5 +- languages/uk-UA/music/play.json | 10 +-- languages/uk-UA/music/seek.json | 2 +- languages/uk-UA/music/volume.json | 6 ++ languages/uk-UA/nsfw/{nsfw.json => pic.json} | 2 +- languages/uk-UA/owner/announcement.json | 4 +- languages/uk-UA/owner/debug.json | 10 +-- languages/uk-UA/owner/reload.json | 4 +- languages/uk-UA/owner/say.json | 2 +- package-lock.json | 4 +- package.json | 2 +- 185 files changed, 815 insertions(+), 406 deletions(-) create mode 100644 commands/Music/volume.js create mode 100644 events/Guild/guildBanAdd.js create mode 100644 languages/ru-RU/music/volume.json rename languages/ru-RU/nsfw/{nsfw.json => pic.json} (80%) create mode 100644 languages/uk-UA/music/volume.json rename languages/uk-UA/nsfw/{nsfw.json => pic.json} (79%) diff --git a/commands/Administration/automod.js b/commands/Administration/automod.js index 45d3caed..44f6c29f 100644 --- a/commands/Administration/automod.js +++ b/commands/Administration/automod.js @@ -11,13 +11,22 @@ class Automod extends BaseCommand { command: new SlashCommandBuilder() .setName("automod") .setDescription(client.translate("administration/automod:DESCRIPTION")) + .setDescriptionLocalizations({ + "uk": client.translate("administration/automod:DESCRIPTION", null, "uk-UA"), + }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addBooleanOption(option => option.setName("state") .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ + "uk": client.translate("common:STATE", null, "uk-UA"), + }) .setRequired(true)) .addChannelOption(option => option.setName("channel") .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ + "uk": client.translate("common:CHANNEL", null, "uk-UA"), + }) .addChannelTypes(ChannelType.GuildText)), aliases: [], dirname: __dirname, diff --git a/commands/Administration/autorole.js b/commands/Administration/autorole.js index ee7749b2..3ba18aed 100644 --- a/commands/Administration/autorole.js +++ b/commands/Administration/autorole.js @@ -11,13 +11,16 @@ class Autorole extends BaseCommand { command: new SlashCommandBuilder() .setName("autorole") .setDescription(client.translate("administration/autorole:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/autorole:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addBooleanOption(option => option.setName("state") .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ "uk": client.translate("common:STATE", null, "uk-UA") }) .setRequired(true)) .addRoleOption(option => option.setName("role") - .setDescription(client.translate("common:ROLE"))), + .setDescription(client.translate("common:ROLE")) + .setDescriptionLocalizations({ "uk": client.translate("common:ROLE", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/Administration/config.js b/commands/Administration/config.js index 45ca1225..3332133a 100644 --- a/commands/Administration/config.js +++ b/commands/Administration/config.js @@ -11,16 +11,20 @@ class Config extends BaseCommand { command: new SlashCommandBuilder() .setName("config") .setDescription(client.translate("administration/config:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/config:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addSubcommand(subcommand => subcommand.setName("list") - .setDescription(client.translate("administration/config:LIST")), + .setDescription(client.translate("administration/config:LIST")) + .setDescriptionLocalizations({ "uk": client.translate("administration/config:LIST", null, "uk-UA") }), ) .addSubcommand(subcommand => subcommand.setName("set") .setDescription(client.translate("administration/config:SET")) + .setDescriptionLocalizations({ "uk": client.translate("administration/config:SET", null, "uk-UA") }) .addStringOption(option => option.setName("setting") .setDescription(client.translate("administration/config:SETTING")) - .addChoices( + .setDescriptionLocalizations({ "uk": client.translate("administration/config:SETTING", null, "uk-UA") }) + .setChoices( { name: client.translate("administration/config:BIRTHDAYS"), value: "birthdays" }, { name: client.translate("administration/config:MODLOGS"), value: "modlogs" }, { name: client.translate("administration/config:NEWS"), value: "news" }, @@ -30,9 +34,11 @@ class Config extends BaseCommand { .setRequired(true)) .addBooleanOption(option => option.setName("state") .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ "uk": client.translate("common:STATE", null, "uk-UA") }) .setRequired(true)) .addChannelOption(option => option.setName("channel") - .setDescription(client.translate("common:CHANNEL"))), + .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ "uk": client.translate("common:STATE", null, "uk-UA") })), ), aliases: [], dirname: __dirname, diff --git a/commands/Administration/goodbye.js b/commands/Administration/goodbye.js index c6637af7..79cff1c5 100644 --- a/commands/Administration/goodbye.js +++ b/commands/Administration/goodbye.js @@ -11,22 +11,29 @@ class Goodbye extends BaseCommand { command: new SlashCommandBuilder() .setName("goodbye") .setDescription(client.translate("administration/goodbye:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addSubcommand(subcommand => subcommand.setName("test") - .setDescription(client.translate("administration/goodbye:TEST")), + .setDescription(client.translate("administration/goodbye:TEST")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:TEST", null, "uk-UA") }), ) .addSubcommand(subcommand => subcommand.setName("config") .setDescription(client.translate("administration/goodbye:CONFIG")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:CONFIG", null, "uk-UA") }) .addBooleanOption(option => option.setName("state") .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ "uk": client.translate("common:STATE", null, "uk-UA") }) .setRequired(true)) .addChannelOption(option => option.setName("channel") - .setDescription(client.translate("common:CHANNEL"))) + .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ "uk": client.translate("common:CHANNEL", null, "uk-UA") })) .addStringOption(option => option.setName("message") - .setDescription(client.translate("administration/goodbye:MESSAGE"))) + .setDescription(client.translate("administration/goodbye:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") })) .addBooleanOption(option => option.setName("image") - .setDescription(client.translate("administration/goodbye:IMAGE"))), + .setDescription(client.translate("administration/goodbye:IMAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:IMAGE", null, "uk-UA") })), ), aliases: [], dirname: __dirname, diff --git a/commands/Administration/selectroles.js b/commands/Administration/selectroles.js index 3e9f6d8f..7a3c5056 100644 --- a/commands/Administration/selectroles.js +++ b/commands/Administration/selectroles.js @@ -11,24 +11,30 @@ class Selectroles extends BaseCommand { command: new SlashCommandBuilder() .setName("selectroles") .setDescription(client.translate("administration/selectroles:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/selectroles:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addSubcommand(subcommand => subcommand.setName("message") .setDescription(client.translate("administration/selectroles:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("administration/selectroles:MESSAGE", null, "uk-UA") }) .addStringOption(option => option.setName("text") .setDescription(client.translate("common:MESSAGE")) .setRequired(true)), ) .addSubcommand(subcommand => subcommand.setName("addrole") .setDescription(client.translate("administration/selectroles:ADDROLE")) + .setDescriptionLocalizations({ "uk": client.translate("administration/selectroles:ADDROLE", null, "uk-UA") }) .addChannelOption(option => option.setName("channel") .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ "uk": client.translate("common:CHANNEL", null, "uk-UA") }) .setRequired(true)) .addStringOption(option => option.setName("message_id") .setDescription(client.translate("common:MESSAGE_ID")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE_ID", null, "uk-UA") }) .setRequired(true)) .addRoleOption(option => option.setName("role") .setDescription(client.translate("common:ROLE")) + .setDescriptionLocalizations({ "uk": client.translate("common:ROLE", null, "uk-UA") }) .setRequired(true)), ), aliases: [], diff --git a/commands/Administration/set.js b/commands/Administration/set.js index 88e40bbd..708c6c9c 100644 --- a/commands/Administration/set.js +++ b/commands/Administration/set.js @@ -11,12 +11,14 @@ class Set extends BaseCommand { command: new SlashCommandBuilder() .setName("set") .setDescription(client.translate("administration/set:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/set:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addStringOption(option => option.setName("type") .setDescription(client.translate("owner/debug:TYPE")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:TYPE", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: client.translate("common:LEVEL"), value: "level" }, { name: client.translate("common:XP"), value: "xp" }, { name: client.translate("common:CREDITS"), value: "credits" }, @@ -24,9 +26,11 @@ class Set extends BaseCommand { )) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("int") .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, @@ -64,7 +68,7 @@ class Set extends BaseCommand { memberData.level = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -73,7 +77,7 @@ class Set extends BaseCommand { memberData.exp = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -82,7 +86,7 @@ class Set extends BaseCommand { memberData.money = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -91,7 +95,7 @@ class Set extends BaseCommand { memberData.bankSold = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } diff --git a/commands/Administration/setlang.js b/commands/Administration/setlang.js index 59001fe2..5a270d1e 100644 --- a/commands/Administration/setlang.js +++ b/commands/Administration/setlang.js @@ -11,12 +11,14 @@ class Setlang extends BaseCommand { command: new SlashCommandBuilder() .setName("setlang") .setDescription(client.translate("administration/setlang:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/setlang:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addStringOption(option => option.setName("language") .setDescription(client.translate("common:LANGUAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:LANGUAGE", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: "Русский", value: "ru-RU" }, { name: "Українська", value: "uk-UA" }, )), diff --git a/commands/Administration/stealemoji.js b/commands/Administration/stealemoji.js index f3f2bf66..b94e47eb 100644 --- a/commands/Administration/stealemoji.js +++ b/commands/Administration/stealemoji.js @@ -11,10 +11,12 @@ class Stealemoji extends BaseCommand { command: new SlashCommandBuilder() .setName("stealemoji") .setDescription(client.translate("administration/stealemoji:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/stealemoji:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addStringOption(option => option.setName("emoji") .setDescription(client.translate("common:EMOJI")) + .setDescriptionLocalizations({ "uk": client.translate("common:EMOJI", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Administration/welcome.js b/commands/Administration/welcome.js index d79179f5..8310e3fd 100644 --- a/commands/Administration/welcome.js +++ b/commands/Administration/welcome.js @@ -11,22 +11,29 @@ class Welcome extends BaseCommand { command: new SlashCommandBuilder() .setName("welcome") .setDescription(client.translate("administration/welcome:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("administration/welcome:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .addSubcommand(subcommand => subcommand.setName("test") - .setDescription(client.translate("administration/goodbye:TEST")), + .setDescription(client.translate("administration/goodbye:TEST")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:TEST", null, "uk-UA") }), ) .addSubcommand(subcommand => subcommand.setName("config") .setDescription(client.translate("administration/goodbye:CONFIG")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:CONFIG", null, "uk-UA") }) .addBooleanOption(option => option.setName("state") .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ "uk": client.translate("common:STATE", null, "uk-UA") }) .setRequired(true)) .addChannelOption(option => option.setName("channel") - .setDescription(client.translate("common:CHANNEL"))) + .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ "uk": client.translate("common:CHANNEL", null, "uk-UA") })) .addStringOption(option => option.setName("message") - .setDescription(client.translate("administration/goodbye:MESSAGE"))) + .setDescription(client.translate("administration/goodbye:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:MESSAGE", null, "uk-UA") })) .addBooleanOption(option => option.setName("image") - .setDescription(client.translate("administration/goodbye:IMAGE"))), + .setDescription(client.translate("administration/goodbye:IMAGE")) + .setDescriptionLocalizations({ "uk": client.translate("administration/goodbye:IMAGE", null, "uk-UA") })), ), aliases: [], dirname: __dirname, diff --git a/commands/Economy/achievements.js b/commands/Economy/achievements.js index 6cf515eb..4be97dfc 100644 --- a/commands/Economy/achievements.js +++ b/commands/Economy/achievements.js @@ -11,9 +11,11 @@ class Achievements extends BaseCommand { command: new SlashCommandBuilder() .setName("achievements") .setDescription(client.translate("economy/achievements:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/achievements:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/Economy/bank.js b/commands/Economy/bank.js index d07daff1..ca3b8b76 100644 --- a/commands/Economy/bank.js +++ b/commands/Economy/bank.js @@ -11,16 +11,19 @@ class Bank extends BaseCommand { command: new SlashCommandBuilder() .setName("bank") .setDescription(client.translate("economy/bank:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/bank:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("option") .setDescription(client.translate("economy/bank:OPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/bank:OPTION", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: client.translate("economy/bank:DEPOSIT"), value: "deposit" }, { name: client.translate("economy/bank:WITHDRAW"), value: "withdraw" }, )) .addStringOption(option => option.setName("credits") - .setDescription(client.translate("moderation/clear:OPTION")) + .setDescription(client.translate("misc:OPTION_NAN_ALL")) + .setDescriptionLocalizations({ "uk": client.translate("misc:OPTION_NAN_ALL", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/birthdate.js b/commands/Economy/birthdate.js index d45274cb..b7aceb62 100644 --- a/commands/Economy/birthdate.js +++ b/commands/Economy/birthdate.js @@ -11,14 +11,17 @@ class Birthdate extends BaseCommand { command: new SlashCommandBuilder() .setName("birthdate") .setDescription(client.translate("economy/birthdate:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/birthdate:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addIntegerOption(option => option.setName("day") .setDescription(client.translate("economy/birthdate:DAY")) + .setDescriptionLocalizations({ "uk": client.translate("economy/birthdate:DAY", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("month") .setDescription(client.translate("economy/birthdate:MONTH")) + .setDescriptionLocalizations({ "uk": client.translate("economy/birthdate:MONTH", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: "Январь", value: 1 }, { name: "Февраль", value: 2 }, { name: "Март", value: 3 }, @@ -34,7 +37,9 @@ class Birthdate extends BaseCommand { )) .addIntegerOption(option => option.setName("year") .setDescription(client.translate("economy/birthdate:YEAR")) - .setRequired(true)), + .setDescriptionLocalizations({ "uk": client.translate("economy/birthdate:YEAR", null, "uk-UA") }) + .setRequired(true) + .setAutocomplete(true)), aliases: [], dirname: __dirname, ownerOnly: false, @@ -70,6 +75,24 @@ class Birthdate extends BaseCommand { date: client.printDate(d), }); } + + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").AutocompleteInteraction} interaction + * @returns + */ + async autocompleteRun(client, interaction) { + const int = interaction.options.getInteger("year"), + results = Array.from({ length: 2023 }, (_, k) => k + 1).filter(i => i.toString().includes(int)); + + return interaction.respond( + results.slice(0, 25).map(i => ({ + name: i, + value: i, + }), + )); + } } module.exports = Birthdate; \ No newline at end of file diff --git a/commands/Economy/divorce.js b/commands/Economy/divorce.js index c6b4944f..97b29df4 100644 --- a/commands/Economy/divorce.js +++ b/commands/Economy/divorce.js @@ -11,6 +11,7 @@ class Divorce extends BaseCommand { command: new SlashCommandBuilder() .setName("divorce") .setDescription(client.translate("economy/divorce:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/divorce:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Economy/importmee6.js b/commands/Economy/importmee6.js index 0b7c9cc8..73339d4f 100644 --- a/commands/Economy/importmee6.js +++ b/commands/Economy/importmee6.js @@ -12,6 +12,7 @@ class ImportMee6 extends BaseCommand { command: new SlashCommandBuilder() .setName("importmee6") .setDescription(client.translate("economy/importmee6:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/importmee6:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, @@ -41,7 +42,7 @@ class ImportMee6 extends BaseCommand { interaction.editReply({ content: interaction.translate("owner/debug:SUCCESS_LEVEL", { - username: interaction.member.toString(), + user: interaction.member.toString(), amount: level, }), }); diff --git a/commands/Economy/leaderboard.js b/commands/Economy/leaderboard.js index ba3b6805..05d148c8 100644 --- a/commands/Economy/leaderboard.js +++ b/commands/Economy/leaderboard.js @@ -11,11 +11,13 @@ class Leaderboard extends BaseCommand { command: new SlashCommandBuilder() .setName("leaderboard") .setDescription(client.translate("economy/leaderboard:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/leaderboard:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("type") .setDescription(client.translate("owner/debug:TYPE")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:TYPE", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: client.translate("economy/leaderboard:LEVEL"), value: "level" }, { name: client.translate("economy/leaderboard:MONEY"), value: "money" }, { name: client.translate("economy/leaderboard:REP"), value: "rep" }, diff --git a/commands/Economy/marry.js b/commands/Economy/marry.js index 286b764e..d503a006 100644 --- a/commands/Economy/marry.js +++ b/commands/Economy/marry.js @@ -12,9 +12,11 @@ class Marry extends BaseCommand { command: new SlashCommandBuilder() .setName("marry") .setDescription(client.translate("economy/marry:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/marry:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/money.js b/commands/Economy/money.js index b4532103..5223d68f 100644 --- a/commands/Economy/money.js +++ b/commands/Economy/money.js @@ -11,9 +11,11 @@ class Money extends BaseCommand { command: new SlashCommandBuilder() .setName("money") .setDescription(client.translate("economy/money:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/money:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, @@ -56,7 +58,7 @@ class Money extends BaseCommand { const embed = new EmbedBuilder() .setAuthor({ name: interaction.translate("economy/money:TITLE", { - username: member.user.tag, + user: member.user.tag, }), iconURL: member.user.displayAvatarURL(), }) diff --git a/commands/Economy/number.js b/commands/Economy/number.js index 4aa45097..e3331a3e 100644 --- a/commands/Economy/number.js +++ b/commands/Economy/number.js @@ -12,6 +12,7 @@ class Number extends BaseCommand { command: new SlashCommandBuilder() .setName("number") .setDescription(client.translate("economy/number:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/number:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Economy/pay.js b/commands/Economy/pay.js index 871482fc..33b2401f 100644 --- a/commands/Economy/pay.js +++ b/commands/Economy/pay.js @@ -11,12 +11,15 @@ class Pay extends BaseCommand { command: new SlashCommandBuilder() .setName("pay") .setDescription(client.translate("economy/pay:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/pay:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("amount") .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/profile.js b/commands/Economy/profile.js index d0726611..265320df 100644 --- a/commands/Economy/profile.js +++ b/commands/Economy/profile.js @@ -11,9 +11,11 @@ class Profile extends BaseCommand { command: new SlashCommandBuilder() .setName("profile") .setDescription(client.translate("economy/profile:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/profile:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/Economy/rep.js b/commands/Economy/rep.js index 84e90ffe..10dc1b9e 100644 --- a/commands/Economy/rep.js +++ b/commands/Economy/rep.js @@ -11,9 +11,11 @@ class Rep extends BaseCommand { command: new SlashCommandBuilder() .setName("rep") .setDescription(client.translate("economy/rep:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/rep:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/rob.js b/commands/Economy/rob.js index d48b6c40..44a479bb 100644 --- a/commands/Economy/rob.js +++ b/commands/Economy/rob.js @@ -11,12 +11,15 @@ class Rob extends BaseCommand { command: new SlashCommandBuilder() .setName("rob") .setDescription(client.translate("economy/rob:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/rob:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("amount") .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/setbio.js b/commands/Economy/setbio.js index f2f4cd2a..f6c3697f 100644 --- a/commands/Economy/setbio.js +++ b/commands/Economy/setbio.js @@ -11,9 +11,11 @@ class Setbio extends BaseCommand { command: new SlashCommandBuilder() .setName("setbio") .setDescription(client.translate("economy/setbio:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/setbio:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("text") .setDescription(client.translate("economy/profile:BIO")) + .setDescriptionLocalizations({ "uk": client.translate("economy/profile:BIO", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/slots.js b/commands/Economy/slots.js index 972c7441..0d6e24cd 100644 --- a/commands/Economy/slots.js +++ b/commands/Economy/slots.js @@ -11,9 +11,11 @@ class Slots extends BaseCommand { command: new SlashCommandBuilder() .setName("slots") .setDescription(client.translate("economy/slots:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/slots:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addIntegerOption(option => option.setName("amount") .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/tictactoe.js b/commands/Economy/tictactoe.js index c122601a..c95c5d45 100644 --- a/commands/Economy/tictactoe.js +++ b/commands/Economy/tictactoe.js @@ -12,9 +12,11 @@ class TicTacToe extends BaseCommand { command: new SlashCommandBuilder() .setName("tictactoe") .setDescription(client.translate("economy/tictactoe:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/tictactoe:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Economy/transactions.js b/commands/Economy/transactions.js index ad849391..20ecc5c8 100644 --- a/commands/Economy/transactions.js +++ b/commands/Economy/transactions.js @@ -11,9 +11,11 @@ class Transactions extends BaseCommand { command: new SlashCommandBuilder() .setName("transactions") .setDescription(client.translate("economy/transactions:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/transactions:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addBooleanOption(option => option.setName("clear") - .setDescription(client.translate("economy/transactions:CLEAR"))), + .setDescription(client.translate("economy/transactions:CLEAR")) + .setDescriptionLocalizations({ "uk": client.translate("economy/transactions:CLEAR", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/Economy/work.js b/commands/Economy/work.js index b2deb146..4ab3a73f 100644 --- a/commands/Economy/work.js +++ b/commands/Economy/work.js @@ -11,6 +11,7 @@ class Work extends BaseCommand { command: new SlashCommandBuilder() .setName("work") .setDescription(client.translate("economy/work:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("economy/work:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Fun/8ball.js b/commands/Fun/8ball.js index 9be2a269..a599891b 100644 --- a/commands/Fun/8ball.js +++ b/commands/Fun/8ball.js @@ -11,9 +11,11 @@ class Eightball extends BaseCommand { command: new SlashCommandBuilder() .setName("8ball") .setDescription(client.translate("fun/8ball:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/8ball:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("question") .setDescription(client.translate("fun/8ball:QUESTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/8ball:QUESTION", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Fun/cat.js b/commands/Fun/cat.js index 0746d57a..85ce7040 100644 --- a/commands/Fun/cat.js +++ b/commands/Fun/cat.js @@ -12,6 +12,7 @@ class Cat extends BaseCommand { command: new SlashCommandBuilder() .setName("cat") .setDescription(client.translate("fun/cat:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/cat:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true), aliases: [], dirname: __dirname, diff --git a/commands/Fun/crab.js b/commands/Fun/crab.js index efeeadef..74e3ebc4 100644 --- a/commands/Fun/crab.js +++ b/commands/Fun/crab.js @@ -12,6 +12,7 @@ class Crab extends BaseCommand { command: new SlashCommandBuilder() .setName("crab") .setDescription(client.translate("fun/crab:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/crab:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true), aliases: [], dirname: __dirname, diff --git a/commands/Fun/dog.js b/commands/Fun/dog.js index 146de921..8531ed4a 100644 --- a/commands/Fun/dog.js +++ b/commands/Fun/dog.js @@ -12,6 +12,7 @@ class Dog extends BaseCommand { command: new SlashCommandBuilder() .setName("dog") .setDescription(client.translate("fun/dog:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/dog:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true), aliases: [], dirname: __dirname, diff --git a/commands/Fun/lmgtfy.js b/commands/Fun/lmgtfy.js index 876b5912..5e75fd1f 100644 --- a/commands/Fun/lmgtfy.js +++ b/commands/Fun/lmgtfy.js @@ -12,12 +12,15 @@ class LMGTFY extends BaseCommand { command: new SlashCommandBuilder() .setName("lmgtfy") .setDescription(client.translate("fun/lmgtfy:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/lmgtfy:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("query") .setDescription(client.translate("fun/lmgtfy:QUERY")) + .setDescriptionLocalizations({ "uk": client.translate("fun/lmgtfy:QUERY", null, "uk-UA") }) .setRequired(true)) .addBooleanOption(option => option.setName("short") .setDescription(client.translate("fun/lmgtfy:SHORT")) + .setDescriptionLocalizations({ "uk": client.translate("fun/lmgtfy:SHORT", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, @@ -51,7 +54,7 @@ class LMGTFY extends BaseCommand { }); } else { interaction.reply({ - content: `<${url}>`, + content: `\`\`\`<${url}>\`\`\``, ephemeral: true, }); } diff --git a/commands/Fun/lovecalc.js b/commands/Fun/lovecalc.js index 075c5c45..167bf238 100644 --- a/commands/Fun/lovecalc.js +++ b/commands/Fun/lovecalc.js @@ -12,14 +12,17 @@ class Lovecalc extends BaseCommand { command: new SlashCommandBuilder() .setName("lovecalc") .setDescription(client.translate("fun/lovecalc:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/lovecalc:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("first_member") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addUserOption(option => option.setName("second_member") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/Fun/memes.js b/commands/Fun/memes.js index 0ae3e6b2..a505f29d 100644 --- a/commands/Fun/memes.js +++ b/commands/Fun/memes.js @@ -12,6 +12,7 @@ class Memes extends BaseCommand { command: new SlashCommandBuilder() .setName("memes") .setDescription(client.translate("fun/memes:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("fun/memes:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, @@ -34,7 +35,7 @@ class Memes extends BaseCommand { async execute(client, interaction) { await interaction.deferReply(); - const tags = ["memes", "dankmemes", "me_irl", "wholesomememes"].map(tag => + const tags = ["funny", "memes", "dankmemes", "me_irl", "wholesomememes"].map(tag => JSON.parse(JSON.stringify({ label: tag, value: tag, diff --git a/commands/General/afk.js b/commands/General/afk.js index 09b13d50..5e33ca05 100644 --- a/commands/General/afk.js +++ b/commands/General/afk.js @@ -11,9 +11,11 @@ class Afk extends BaseCommand { command: new SlashCommandBuilder() .setName("afk") .setDescription(client.translate("general/afk:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/afk:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("message") .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/avatar.js b/commands/General/avatar.js index cfa50bc1..5f787d82 100644 --- a/commands/General/avatar.js +++ b/commands/General/avatar.js @@ -11,9 +11,11 @@ class Avatar extends BaseCommand { command: new SlashCommandBuilder() .setName("avatar") .setDescription(client.translate("general/avatar:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/avatar:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addUserOption(option => option.setName("user") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/General/boosters.js b/commands/General/boosters.js index 02f058d5..6838f008 100644 --- a/commands/General/boosters.js +++ b/commands/General/boosters.js @@ -11,6 +11,7 @@ class Boosters extends BaseCommand { command: new SlashCommandBuilder() .setName("boosters") .setDescription(client.translate("general/boosters:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/boosters:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/General/emoji.js b/commands/General/emoji.js index 62eb01c9..cc7e173e 100644 --- a/commands/General/emoji.js +++ b/commands/General/emoji.js @@ -11,9 +11,11 @@ class Emoji extends BaseCommand { command: new SlashCommandBuilder() .setName("emoji") .setDescription(client.translate("general/emoji:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/emoji:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("emoji") .setDescription(client.translate("common:EMOJI")) + .setDescriptionLocalizations({ "uk": client.translate("commom:EMOJI", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/help.js b/commands/General/help.js index 7f47d41b..660f800c 100644 --- a/commands/General/help.js +++ b/commands/General/help.js @@ -11,10 +11,12 @@ class Help extends BaseCommand { command: new SlashCommandBuilder() .setName("help") .setDescription(client.translate("general/help:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/help:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("command") - .setDescription(client.translate("common:COMMAND"))), + .setDescription(client.translate("common:COMMAND")) + .setDescriptionLocalizations({ "uk": client.translate("common:COMMAND", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, @@ -39,6 +41,7 @@ class Help extends BaseCommand { const commands = [...new Map(client.commands.map(v => [v.constructor.name, v])).values()]; const categories = []; const command = interaction.options.getString("command"); + if ((commands.find(c => c.command.name === command).category === "Owner") && interaction.user.id !== client.config.owner.id) return interaction.error("misc:OWNER_ONLY", null, { edit: true, ephemeral: true }); if (command) return interaction.editReply({ embeds: [ generateCommandHelp(interaction, command) ] }); @@ -125,6 +128,7 @@ function getPermName(bitfield = 0) { function generateCommandHelp(interaction, command) { const cmd = interaction.client.commands.get(command); if (!cmd) return interaction.error("general/help:NOT_FOUND", { command }, { edit: true }); + const usage = interaction.translate(`${cmd.category.toLowerCase()}/${cmd.command.name}:USAGE`) === "" ? interaction.translate("misc:NO_ARGS") : interaction.translate(`${cmd.category.toLowerCase()}/${cmd.command.name}:USAGE`); diff --git a/commands/General/minecraft.js b/commands/General/minecraft.js index 6401201e..6bfc60f6 100644 --- a/commands/General/minecraft.js +++ b/commands/General/minecraft.js @@ -12,9 +12,11 @@ class Minecraft extends BaseCommand { command: new SlashCommandBuilder() .setName("minecraft") .setDescription(client.translate("general/minecraft:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/minecraft:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("ip") .setDescription(client.translate("common:IP")) + .setDescriptionLocalizations({ "uk": client.translate("common:IP", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/ping.js b/commands/General/ping.js index 89dab4fe..1fc80276 100644 --- a/commands/General/ping.js +++ b/commands/General/ping.js @@ -11,6 +11,7 @@ class Ping extends BaseCommand { command: new SlashCommandBuilder() .setName("ping") .setDescription(client.translate("general/ping:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/ping:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true), aliases: [], dirname: __dirname, diff --git a/commands/General/remindme.js b/commands/General/remindme.js index a1ba0e91..2f9a1781 100644 --- a/commands/General/remindme.js +++ b/commands/General/remindme.js @@ -13,12 +13,15 @@ class Remindme extends BaseCommand { command: new SlashCommandBuilder() .setName("remindme") .setDescription(client.translate("general/remindme:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/remindme:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("time") - .setDescription(client.translate("owner/remindme:TIME")) + .setDescription(client.translate("general/remindme:TIME")) + .setDescriptionLocalizations({ "uk": client.translate("general/remindme:TIME", null, "uk-UA") }) .setRequired(true)) .addStringOption(option => option.setName("message") .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/report.js b/commands/General/report.js index e96b4174..872517cb 100644 --- a/commands/General/report.js +++ b/commands/General/report.js @@ -11,12 +11,15 @@ class Report extends BaseCommand { command: new SlashCommandBuilder() .setName("report") .setDescription(client.translate("general/report:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/report:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addStringOption(option => option.setName("message") .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/serverinfo.js b/commands/General/serverinfo.js index eecce23d..33e4c6c1 100644 --- a/commands/General/serverinfo.js +++ b/commands/General/serverinfo.js @@ -11,6 +11,7 @@ class Serverinfo extends BaseCommand { command: new SlashCommandBuilder() .setName("serverinfo") .setDescription(client.translate("general/serverinfo:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/serverinfo:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/General/shorturl.js b/commands/General/shorturl.js index a036b6da..ee92899b 100644 --- a/commands/General/shorturl.js +++ b/commands/General/shorturl.js @@ -12,9 +12,11 @@ class Shorturl extends BaseCommand { command: new SlashCommandBuilder() .setName("shorturl") .setDescription(client.translate("general/shorturl:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/shorturl:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("url") .setDescription(client.translate("general/shorturl:URL")) + .setDescriptionLocalizations({ "uk": client.translate("general/shorturl:URL", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/staff.js b/commands/General/staff.js index 46d02e34..366e8ae7 100644 --- a/commands/General/staff.js +++ b/commands/General/staff.js @@ -11,6 +11,7 @@ class Staff extends BaseCommand { command: new SlashCommandBuilder() .setName("staff") .setDescription(client.translate("general/staff:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/staff:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/General/stats.js b/commands/General/stats.js index d7585749..ef82e113 100644 --- a/commands/General/stats.js +++ b/commands/General/stats.js @@ -84,7 +84,7 @@ class Stats extends BaseCommand { value: interaction.translate("misc:STATS_FOOTER", { dashboardLink: client.config.dashboard.baseURL, supportLink: "https://discord.gg/Ptkj2n9nzZ", - inviteLink: client.generateInvite({ scopes: [ "bot", "applications.commands" ], permissions: [ PermissionsBitField.Flags.Administrator ] }), + inviteLink: client.generateInvite({ scopes: ["bot", "applications.commands"], permissions: [ PermissionsBitField.Flags.Administrator ] }), donateLink: "https://www.donationalerts.com/r/jonny_bro", owner: client.config.owner.id, }), diff --git a/commands/General/suggest.js b/commands/General/suggest.js index dd6dc015..634738a8 100644 --- a/commands/General/suggest.js +++ b/commands/General/suggest.js @@ -11,9 +11,11 @@ class Suggest extends BaseCommand { command: new SlashCommandBuilder() .setName("suggest") .setDescription(client.translate("general/suggest:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/suggest:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("message") .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/General/userinfo.js b/commands/General/userinfo.js index cdd34d2e..b42b6eaa 100644 --- a/commands/General/userinfo.js +++ b/commands/General/userinfo.js @@ -11,9 +11,11 @@ class Userinfo extends BaseCommand { command: new SlashCommandBuilder() .setName("userinfo") .setDescription(client.translate("general/userinfo:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/userinfo:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addUserOption(option => option.setName("user") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, diff --git a/commands/General/whois.js b/commands/General/whois.js index 2cad1597..8ef8b808 100644 --- a/commands/General/whois.js +++ b/commands/General/whois.js @@ -12,9 +12,11 @@ class Whois extends BaseCommand { command: new SlashCommandBuilder() .setName("whois") .setDescription(client.translate("general/whois:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("general/whois:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("ip") .setDescription(client.translate("common:IP")) + .setDescriptionLocalizations({ "uk": client.translate("common:IP", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/IAT/checkjar.js b/commands/IAT/checkjar.js index 1f5e0459..426b7e1b 100644 --- a/commands/IAT/checkjar.js +++ b/commands/IAT/checkjar.js @@ -13,6 +13,7 @@ class Checkjar extends BaseCommand { command: new SlashCommandBuilder() .setName("checkjar") .setDescription(client.translate("iat/checkjar:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("iat/checkjar:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Moderation/clear.js b/commands/Moderation/clear.js index e12a1813..97d1d0c4 100644 --- a/commands/Moderation/clear.js +++ b/commands/Moderation/clear.js @@ -11,13 +11,19 @@ class Clear extends BaseCommand { command: new SlashCommandBuilder() .setName("clear") .setDescription(client.translate("moderation/clear:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/clear:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages) .addStringOption(option => option.setName("option") .setDescription(client.translate("moderation/clear:OPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/clear:OPTION", null, "uk-UA") }) .setRequired(true)) .addUserOption(option => option.setName("user") - .setDescription(client.translate("common:USER"))), + .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") })) + .addStringOption(option => option.setName("id") + .setDescription(client.translate("common:USER_ID")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER_ID", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: false, @@ -39,8 +45,9 @@ class Clear extends BaseCommand { async execute(client, interaction) { await interaction.deferReply({ ephemeral: true }); - const option = interaction.options.getString("option"); - const member = interaction.options.getMember("user"); + const option = interaction.options.getString("option"), + member = interaction.options.getMember("user"), + user_id = interaction.options.getString("id"); if (option === "all") { const row = new ActionRowBuilder() @@ -105,23 +112,25 @@ class Clear extends BaseCommand { }); } else { if (isNaN(option) || parseInt(option) < 1) return interaction.error("misc:OPTION_NAN_ALL", null, { ephemeral: true }); + let messages = await interaction.channel.messages.fetch({ limit: option, }); - if (member) messages = messages.filter(m => m.author.id === member.id); - if (messages.length > option) messages.length = parseInt(option, 10); + + if ((!member && !user_id) || (member && user_id)) return interaction.replyT("moderation/clear:REQUIRE_ID_USER", null, { edit: true }); + if (member || user_id) messages = messages.filter(m => m.author.id === (member?.id || user_id)); interaction.channel.bulkDelete(messages.filter(m => !m.pinned), true); - if (member) { + if (member || user_id) { interaction.replyT("moderation/clear:CLEARED_MEMBER", { amount: `**${option}** ${client.getNoun(option, interaction.translate("misc:NOUNS:MESSAGES:1"), interaction.translate("misc:NOUNS:MESSAGES:2"), interaction.translate("misc:NOUNS:MESSAGES:5"))}`, - username: member.user.tag, - }, { ephemeral: true, edit: true }); + user: (member?.user.tag || user_id), + }, { edit: true }); } else { interaction.replyT("moderation/clear:CLEARED", { amount: `**${option}** ${client.getNoun(option, interaction.translate("misc:NOUNS:MESSAGES:1"), interaction.translate("misc:NOUNS:MESSAGES:2"), interaction.translate("misc:NOUNS:MESSAGES:5"))}`, - }, { ephemeral: true, edit: true }); + }, { edit: true }); } } } diff --git a/commands/Moderation/clearwarns.js b/commands/Moderation/clearwarns.js index 1c66f7c8..c994cbb8 100644 --- a/commands/Moderation/clearwarns.js +++ b/commands/Moderation/clearwarns.js @@ -11,10 +11,12 @@ class Clearwarns extends BaseCommand { command: new SlashCommandBuilder() .setName("clearwarns") .setDescription(client.translate("moderation/clearwarns:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/clearwarns:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Moderation/giveaway.js b/commands/Moderation/giveaway.js index 80e4f3d7..d8041e88 100644 --- a/commands/Moderation/giveaway.js +++ b/commands/Moderation/giveaway.js @@ -12,39 +12,51 @@ class Giveaway extends BaseCommand { command: new SlashCommandBuilder() .setName("giveaway") .setDescription(client.translate("moderation/giveaway:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages) .addSubcommand(subcommand => subcommand.setName("create") .setDescription(client.translate("moderation/giveaway:CREATE")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:CREATE", null, "uk-UA") }) .addStringOption(option => option.setName("duration") .setDescription(client.translate("common:DURATION")) + .setDescriptionLocalizations({ "uk": client.translate("common:DURATION", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("winners_count") .setDescription(client.translate("moderation/giveaway:WINNERS_COUNT")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:WINNERS_COUNT", null, "uk-UA") }) .setRequired(true)) .addStringOption(option => option.setName("prize") .setDescription(client.translate("moderation/giveaway:PRIZE")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:PRIZE", null, "uk-UA") }) .setRequired(true)) .addBooleanOption(option => option.setName("isdrop") .setDescription(client.translate("moderation/giveaway:ISDROP")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:ISDROP", null, "uk-UA") }) .setRequired(true)), ) .addSubcommand(subcommand => subcommand.setName("reroll") .setDescription(client.translate("moderation/giveaway:REROLL")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:REROLL", null, "uk-UA") }) .addStringOption(option => option.setName("giveaway_id") .setDescription(client.translate("moderation/giveaway:GIVEAWAY_ID")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:GIVEAWAY_ID", null, "uk-UA") }) .setRequired(true)), ) .addSubcommand(subcommand => subcommand.setName("end") .setDescription(client.translate("moderation/giveaway:END")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:END", null, "uk-UA") }) .addStringOption(option => option.setName("giveaway_id") .setDescription(client.translate("moderation/giveaway:GIVEAWAY_ID")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:GIVEAWAY_ID", null, "uk-UA") }) .setRequired(true)), ) .addSubcommand(subcommand => subcommand.setName("delete") .setDescription(client.translate("moderation/giveaway:DELETE")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:DELETE", null, "uk-UA") }) .addStringOption(option => option.setName("giveaway_id") .setDescription(client.translate("moderation/giveaway:GIVEAWAY_ID")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/giveaway:GIVEAWAY_ID", null, "uk-UA") }) .setRequired(true)), ), aliases: [], diff --git a/commands/Moderation/poll.js b/commands/Moderation/poll.js index eb3afc1c..27a3d870 100644 --- a/commands/Moderation/poll.js +++ b/commands/Moderation/poll.js @@ -11,10 +11,12 @@ class Poll extends BaseCommand { command: new SlashCommandBuilder() .setName("poll") .setDescription(client.translate("moderation/poll:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/poll:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages) .addStringOption(option => option.setName("question") .setDescription(client.translate("moderation/poll:QUESTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/poll:QUESTION", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Moderation/unban.js b/commands/Moderation/unban.js index e28953c3..113ac142 100644 --- a/commands/Moderation/unban.js +++ b/commands/Moderation/unban.js @@ -11,10 +11,12 @@ class Unban extends BaseCommand { command: new SlashCommandBuilder() .setName("unban") .setDescription(client.translate("moderation/unban:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/unban:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages) .addStringOption(option => option.setName("user_id") .setDescription(client.translate("common:USER_ID")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER_ID", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Moderation/warn.js b/commands/Moderation/warn.js index 2bcbf219..0fbf89ce 100644 --- a/commands/Moderation/warn.js +++ b/commands/Moderation/warn.js @@ -106,7 +106,7 @@ class Warn extends BaseCommand { if (sanctions >= banCount) { member.send({ content: interaction.translate("moderation/ban:BANNED_DM", { - username: member.user, + user: member.user, moderator: interaction.user.tag, server: interaction.guild.name, reason, @@ -124,7 +124,7 @@ class Warn extends BaseCommand { interaction.guild.members.ban(member).catch(() => {}); interaction.followUp({ content: interaction.translate("moderation/setwarns:AUTO_BAN", { - username: member.user.tag, + user: member.user.tag, count: `${banCount} ${client.getNoun(banCount, interaction.translate("misc:NOUNS:WARNS:1"), interaction.translate("misc:NOUNS:WARNS:2"), interaction.translate("misc:NOUNS:WARNS:5"))}`, }), }); @@ -135,7 +135,7 @@ class Warn extends BaseCommand { if (sanctions >= kickCount) { member.send({ content: interaction.translate("moderation/kick:KICKED_DM", { - username: member.user, + user: member.user, moderator: interaction.user.tag, server: interaction.guild.name, reason, @@ -153,7 +153,7 @@ class Warn extends BaseCommand { member.kick().catch(() => {}); interaction.followUp({ content: interaction.translate("moderation/setwarns:AUTO_KICK", { - username: member.user.tag, + user: member.user.tag, count: `${kickCount} ${client.getNoun(kickCount, interaction.translate("misc:NOUNS:WARNS:1"), interaction.translate("misc:NOUNS:WARNS:2"), interaction.translate("misc:NOUNS:WARNS:5"))}`, }), }); @@ -162,7 +162,7 @@ class Warn extends BaseCommand { member.send({ content: interaction.translate("moderation/warn:WARNED_DM", { - username: member.user.tag, + user: member.user.tag, server: interaction.guild.name, moderator: interaction.user.tag, reason, diff --git a/commands/Moderation/warns.js b/commands/Moderation/warns.js index 63b12df0..20bbce1e 100644 --- a/commands/Moderation/warns.js +++ b/commands/Moderation/warns.js @@ -11,10 +11,12 @@ class Warns extends BaseCommand { command: new SlashCommandBuilder() .setName("warns") .setDescription(client.translate("moderation/warns:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("moderation/warns:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Music/back.js b/commands/Music/back.js index a7c588f9..93dac15d 100644 --- a/commands/Music/back.js +++ b/commands/Music/back.js @@ -11,6 +11,7 @@ class Back extends BaseCommand { command: new SlashCommandBuilder() .setName("back") .setDescription(client.translate("music/back:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/back:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Music/clips.js b/commands/Music/clips.js index 9fa7ff88..bc91a559 100644 --- a/commands/Music/clips.js +++ b/commands/Music/clips.js @@ -13,9 +13,11 @@ class Clips extends BaseCommand { command: new SlashCommandBuilder() .setName("clips") .setDescription(client.translate("music/clips:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/clips:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("query") .setDescription(client.translate("music/clips:QUERY")) + .setDescriptionLocalizations({ "uk": client.translate("music/clips:QUERY", null, "uk-UA") }) .setRequired(true) .setAutocomplete(true)), aliases: [], @@ -76,10 +78,12 @@ class Clips extends BaseCommand { * @returns */ async autocompleteRun(client, interaction) { - const files = fs.readdirSync("./clips"); + const query = interaction.options.getString("query"), + files = fs.readdirSync("./clips"), + results = files.filter(f => f.includes(query)); return interaction.respond( - files.slice(0, 10).map(file => ({ + results.slice(0, 25).map(file => ({ name: file.substring(0, file.length - 4), value: `./clips/${file}`, }), diff --git a/commands/Music/loop.js b/commands/Music/loop.js index 4a394c6e..b44ce370 100644 --- a/commands/Music/loop.js +++ b/commands/Music/loop.js @@ -12,11 +12,12 @@ class Loop extends BaseCommand { command: new SlashCommandBuilder() .setName("loop") .setDescription(client.translate("music/loop:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/loop:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("option") - .setDescription(client.translate("economy/bank:OPTION")) + .setDescription(client.translate("music/loop:OPTION")) .setRequired(true) - .addChoices( + .setChoices( { name: client.translate("music/loop:AUTOPLAY"), value: "3" }, { name: client.translate("music/loop:QUEUE"), value: "2" }, { name: client.translate("music/loop:TRACK"), value: "1" }, diff --git a/commands/Music/nowplaying.js b/commands/Music/nowplaying.js index 372ebc05..fe6d7016 100644 --- a/commands/Music/nowplaying.js +++ b/commands/Music/nowplaying.js @@ -12,6 +12,7 @@ class Nowplaying extends BaseCommand { command: new SlashCommandBuilder() .setName("nowplaying") .setDescription(client.translate("music/nowplaying:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/nowplaying:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Music/play.js b/commands/Music/play.js index b2ce898a..c2cdac6d 100644 --- a/commands/Music/play.js +++ b/commands/Music/play.js @@ -11,9 +11,11 @@ class Play extends BaseCommand { command: new SlashCommandBuilder() .setName("play") .setDescription(client.translate("music/play:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/play:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("query") .setDescription(client.translate("music/play:QUERY")) + .setDescriptionLocalizations({ "uk": client.translate("music/play:QUERY", null, "uk-UA") }) .setRequired(true) .setAutocomplete(true)), aliases: [], @@ -80,7 +82,7 @@ class Play extends BaseCommand { * @returns */ async autocompleteRun(client, interaction) { - const query = interaction.options.getString("query", true), + const query = interaction.options.getString("query"), results = await client.player.search(query); return interaction.respond( diff --git a/commands/Music/queue.js b/commands/Music/queue.js index 99612370..2d434183 100644 --- a/commands/Music/queue.js +++ b/commands/Music/queue.js @@ -12,6 +12,7 @@ class Queue extends BaseCommand { command: new SlashCommandBuilder() .setName("queue") .setDescription(client.translate("music/queue:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/queue:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Music/seek.js b/commands/Music/seek.js index 2b3dbf38..20a9c3fa 100644 --- a/commands/Music/seek.js +++ b/commands/Music/seek.js @@ -11,8 +11,10 @@ class Seek extends BaseCommand { command: new SlashCommandBuilder() .setName("seek") .setDescription(client.translate("music/seek:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/seek:DESCRIPTION", null, "uk-UA") }) .addIntegerOption(option => option.setName("time") .setDescription(client.translate("music/seek:TIME")) + .setDescriptionLocalizations({ "uk": client.translate("music/seek:TIME", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Music/shuffle.js b/commands/Music/shuffle.js index c41ed5a9..4143ba37 100644 --- a/commands/Music/shuffle.js +++ b/commands/Music/shuffle.js @@ -11,6 +11,7 @@ class Shuffle extends BaseCommand { command: new SlashCommandBuilder() .setName("shuffle") .setDescription(client.translate("music/shuffle:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/shuffle:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Music/skip.js b/commands/Music/skip.js index f1b68cf8..474ad6c0 100644 --- a/commands/Music/skip.js +++ b/commands/Music/skip.js @@ -11,6 +11,7 @@ class Skip extends BaseCommand { command: new SlashCommandBuilder() .setName("skip") .setDescription(client.translate("music/skip:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/skip:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Music/skipto.js b/commands/Music/skipto.js index d0f4c6c2..fa5769d4 100644 --- a/commands/Music/skipto.js +++ b/commands/Music/skipto.js @@ -11,9 +11,11 @@ class Skipto extends BaseCommand { command: new SlashCommandBuilder() .setName("skipto") .setDescription(client.translate("music/skipto:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/skipto:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addIntegerOption(option => option.setName("position") .setDescription(client.translate("music/skipto:POSITION")) + .setDescriptionLocalizations({ "uk": client.translate("music/skipto:POSITION", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Music/stop.js b/commands/Music/stop.js index dfc7b797..3f610b4e 100644 --- a/commands/Music/stop.js +++ b/commands/Music/stop.js @@ -11,6 +11,7 @@ class Stop extends BaseCommand { command: new SlashCommandBuilder() .setName("stop") .setDescription(client.translate("music/stop:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/stop:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false), aliases: [], dirname: __dirname, diff --git a/commands/Music/volume.js b/commands/Music/volume.js new file mode 100644 index 00000000..8d452ffe --- /dev/null +++ b/commands/Music/volume.js @@ -0,0 +1,74 @@ +const { SlashCommandBuilder } = require("discord.js"); +const BaseCommand = require("../../base/BaseCommand"); + +class Volume extends BaseCommand { + /** + * + * @param {import("../base/JaBa")} client + */ + constructor(client) { + super({ + command: new SlashCommandBuilder() + .setName("volume") + .setDescription(client.translate("music/volume:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("music/volume:DESCRIPTION", null, "uk-UA") }) + .setDMPermission(false) + .addIntegerOption(option => option.setName("int") + .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) + .setRequired(true) + .setAutocomplete(true)), + aliases: [], + dirname: __dirname, + ownerOnly: false, + }); + } + /** + * + * @param {import("../../base/JaBa")} client + */ + async onLoad() { + //... + } + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").ChatInputCommandInteraction} interaction + * @param {Object} data + */ + async execute(client, interaction) { + const voice = interaction.member.voice.channel; + if (!voice) return interaction.error("music/play:NO_VOICE_CHANNEL", null, { ephemeral: true }); + + const queue = client.player.nodes.get(interaction.guildId); + if (!queue) return interaction.error("music/play:NOT_PLAYING", null, { ephemeral: true }); + + const volume = interaction.options.getInteger("int"); + if (volume <= 0 || volume > 100) return interaction.error("common:INVALID_NUMBER_RANGE", { min: 1, max: 100 }); + + queue.node.setVolume(volume); + interaction.success("music/volume:SUCCESS", { + volume, + }); + } + + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").AutocompleteInteraction} interaction + * @returns + */ + async autocompleteRun(client, interaction) { + const int = interaction.options.getInteger("int"), + results = Array.from({ length: 100 }, (_, k) => k + 1).filter(i => i.toString().includes(int)); + + return interaction.respond( + results.slice(0, 25).map(i => ({ + name: i, + value: i, + }), + )); + } +} + +module.exports = Volume; \ No newline at end of file diff --git a/commands/NSFW/nsfw.js b/commands/NSFW/nsfw.js index 1f6922a9..37e7e524 100644 --- a/commands/NSFW/nsfw.js +++ b/commands/NSFW/nsfw.js @@ -10,8 +10,9 @@ class NSFW extends BaseCommand { constructor(client) { super({ command: new SlashCommandBuilder() - .setName("nsfw") - .setDescription(client.translate("nsfw/nsfw:DESCRIPTION")) + .setName("pic") + .setDescription(client.translate("nsfw/pic:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("nsfw/pic:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true), aliases: [], dirname: __dirname, diff --git a/commands/Owner/announcement.js b/commands/Owner/announcement.js index ede4d1b7..11c5cdac 100644 --- a/commands/Owner/announcement.js +++ b/commands/Owner/announcement.js @@ -11,15 +11,19 @@ class Announcement extends BaseCommand { command: new SlashCommandBuilder() .setName("announcement") .setDescription(client.translate("owner/announcement:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("owner/announcement:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("message") .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") }) .setRequired(true)) .addBooleanOption(option => option.setName("tag") .setDescription(client.translate("owner/announcement:TAG")) + .setDescriptionLocalizations({ "uk": client.translate("owner/announcement:TAG", null, "uk-UA") }) .setRequired(true)) .addBooleanOption(option => option.setName("important") - .setDescription(client.translate("owner/announcement:IMPORTANT"))), + .setDescription(client.translate("owner/announcement:IMPORTANT")) + .setDescriptionLocalizations({ "uk": client.translate("owner/announcement:IMPORTANT", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: true, diff --git a/commands/Owner/debug.js b/commands/Owner/debug.js index 93348c12..bf2d6212 100644 --- a/commands/Owner/debug.js +++ b/commands/Owner/debug.js @@ -11,13 +11,16 @@ class Debug extends BaseCommand { command: new SlashCommandBuilder() .setName("debug") .setDescription(client.translate("owner/debug:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addSubcommand(subcommand => subcommand.setName("set") .setDescription(client.translate("owner/debug:SET")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:SET", null, "uk-UA") }) .addStringOption(option => option.setName("type") .setDescription(client.translate("owner/debug:TYPE")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:TYPE", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: client.translate("common:LEVEL"), value: "level" }, { name: client.translate("common:XP"), value: "xp" }, { name: client.translate("common:CREDITS"), value: "credits" }, @@ -26,17 +29,21 @@ class Debug extends BaseCommand { )) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("int") .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) .setRequired(true)), ) .addSubcommand(subcommand => subcommand.setName("add") .setDescription(client.translate("owner/debug:ADD")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:ADD", null, "uk-UA") }) .addStringOption(option => option.setName("type") .setDescription(client.translate("owner/debug:TYPE")) + .setDescriptionLocalizations({ "uk": client.translate("owner/debug:TYPE", null, "uk-UA") }) .setRequired(true) - .addChoices( + .setChoices( { name: client.translate("common:LEVEL"), value: "level" }, { name: client.translate("common:XP"), value: "xp" }, { name: client.translate("common:CREDITS"), value: "credits" }, @@ -45,9 +52,11 @@ class Debug extends BaseCommand { )) .addUserOption(option => option.setName("user") .setDescription(client.translate("common:USER")) + .setDescriptionLocalizations({ "uk": client.translate("common:USER", null, "uk-UA") }) .setRequired(true)) .addIntegerOption(option => option.setName("int") - .setDescription(client.translate("owner/debug:INT")) + .setDescription(client.translate("common:INT")) + .setDescriptionLocalizations({ "uk": client.translate("common:INT", null, "uk-UA") }) .setRequired(true)), ), aliases: [], @@ -92,7 +101,7 @@ class Debug extends BaseCommand { memberData.level = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -101,7 +110,7 @@ class Debug extends BaseCommand { memberData.exp = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -110,7 +119,7 @@ class Debug extends BaseCommand { memberData.money = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -119,7 +128,7 @@ class Debug extends BaseCommand { memberData.bankSold = int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -128,7 +137,7 @@ class Debug extends BaseCommand { userData.rep = int; await userData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -153,7 +162,7 @@ class Debug extends BaseCommand { memberData.level += int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -162,7 +171,7 @@ class Debug extends BaseCommand { memberData.exp += int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -171,7 +180,7 @@ class Debug extends BaseCommand { memberData.money += int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -180,7 +189,7 @@ class Debug extends BaseCommand { memberData.bankSold += int; await memberData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } @@ -189,7 +198,7 @@ class Debug extends BaseCommand { userData.rep += int; await userData.save(); return interaction.success(`owner/debug:SUCCESS_${type.toUpperCase()}`, { - username: member.toString(), + user: member.toString(), amount: int, }, { ephemeral: true }); } diff --git a/commands/Owner/eval.js b/commands/Owner/eval.js index 48151d56..1ba3885a 100644 --- a/commands/Owner/eval.js +++ b/commands/Owner/eval.js @@ -11,9 +11,11 @@ class Eval extends BaseCommand { command: new SlashCommandBuilder() .setName("eval") .setDescription(client.translate("owner/eval:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("owner/eval:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("code") .setDescription(client.translate("owner/eval:CODE")) + .setDescriptionLocalizations({ "uk": client.translate("owner/eval:CODE", null, "uk-UA") }) .setRequired(true)), aliases: [], dirname: __dirname, diff --git a/commands/Owner/reload.js b/commands/Owner/reload.js index 33e149af..06b57837 100644 --- a/commands/Owner/reload.js +++ b/commands/Owner/reload.js @@ -13,10 +13,13 @@ class Reload extends BaseCommand { command: new SlashCommandBuilder() .setName("reload") .setDescription(client.translate("owner/reload:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("owner/reload:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true) .addStringOption(option => option.setName("command") .setDescription(client.translate("common:COMMAND")) - .setRequired(true)), + .setDescriptionLocalizations({ "uk": client.translate("common:COMMAND", null, "uk-UA") }) + .setRequired(true) + .setAutocomplete(true)), aliases: [], dirname: __dirname, ownerOnly: true, @@ -50,6 +53,24 @@ class Reload extends BaseCommand { command: cmd.command.name, }, { ephemeral: true }); } + + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").AutocompleteInteraction} interaction + * @returns + */ + async autocompleteRun(client, interaction) { + const command = interaction.options.getString("command"), + results = client.commands.filter(c => c.command.name.includes(command)); + + return interaction.respond( + results.map(c => c).slice(0, 25).map(c => ({ + name: c.command.name, + value: c.command.name, + }), + )); + } } module.exports = Reload; \ No newline at end of file diff --git a/commands/Owner/say.js b/commands/Owner/say.js index 43d950ec..589bc22e 100644 --- a/commands/Owner/say.js +++ b/commands/Owner/say.js @@ -11,12 +11,15 @@ class Say extends BaseCommand { command: new SlashCommandBuilder() .setName("say") .setDescription(client.translate("owner/say:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("owner/say:DESCRIPTION", null, "uk-UA") }) .setDMPermission(false) .addStringOption(option => option.setName("message") .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ "uk": client.translate("common:MESSAGE", null, "uk-UA") }) .setRequired(true)) .addChannelOption(option => option.setName("channel") - .setDescription(client.translate("common:CHANNEL"))), + .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ "uk": client.translate("common:CHANNEL", null, "uk-UA") })), aliases: [], dirname: __dirname, ownerOnly: true, diff --git a/commands/Owner/servers.js b/commands/Owner/servers.js index 22c64a82..af07dbc9 100644 --- a/commands/Owner/servers.js +++ b/commands/Owner/servers.js @@ -11,6 +11,7 @@ class Servers extends BaseCommand { command: new SlashCommandBuilder() .setName("servers") .setDescription(client.translate("owner/servers:DESCRIPTION")) + .setDescriptionLocalizations({ "uk": client.translate("owner/servers:DESCRIPTION", null, "uk-UA") }) .setDMPermission(true), aliases: [], dirname: __dirname, diff --git a/dashboard/public/docs/updates.md b/dashboard/public/docs/updates.md index 844539f5..4187e18a 100644 --- a/dashboard/public/docs/updates.md +++ b/dashboard/public/docs/updates.md @@ -1,3 +1,11 @@ +### JaBa v4.2.1 +* Добавлено + * Команда *volume* - установить громкость бота. + * Отправка сообщения при бане пользователя. + * Фильтрация сообщений в *clear* по ID или пользователю. + * Удаление спама если включён Автомод. + * Подсказки по командам на языке вашего клиента. + ### JaBa v4.2.0 Я решил отказаться от своего модуля музыки в пользу основного, т.к. он был переписан авторами и теперь работает намного лучше. diff --git a/events/CommandHandler.js b/events/CommandHandler.js index 38214107..6779e4d7 100644 --- a/events/CommandHandler.js +++ b/events/CommandHandler.js @@ -41,8 +41,8 @@ class CommandHandler extends BaseEvent { } if (interaction.type !== InteractionType.ApplicationCommand && !interaction.isCommand()) return; - if (command.guildOnly && !interaction.inGuild()) return interaction.replyT("misc:GUILD_ONLY", { ephemeral: true }); - if (command.ownerOnly && interaction.user.id !== client.config.owner.id) return interaction.replyT("misc:OWNER_ONLY", { ephemeral: true }); + if (command.guildOnly && !interaction.inGuild()) return interaction.error("misc:GUILD_ONLY", null, { ephemeral: true }); + if (command.ownerOnly && interaction.user.id !== client.config.owner.id) return interaction.error("misc:OWNER_ONLY", null, { ephemeral: true }); if (!userData.achievements.firstCommand.achieved) { userData.achievements.firstCommand.progress.now = 1; diff --git a/events/Guild/guildBanAdd.js b/events/Guild/guildBanAdd.js new file mode 100644 index 00000000..bde95e28 --- /dev/null +++ b/events/Guild/guildBanAdd.js @@ -0,0 +1,32 @@ +const { EmbedBuilder } = require("discord.js"), + BaseEvent = require("../../base/BaseEvent"); + +class guildBanAdd extends BaseEvent { + constructor() { + super({ + name: "guildBanAdd", + once: false, + }); + } + + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").GuildBan} ban + */ + async execute(client, ban) { + const embed = new EmbedBuilder() + .setAuthor({ + name: client.user.name, + iconURL: ban.guild.iconURL(), + }) + .setColor("#FF0000") + .setDescription(`Вы были забанены на **${ban.guild.name}** по причине **${ban.reason || "Не указана"}**`); + + ban.user.send({ + embeds: [embed], + }); + } +} + +module.exports = guildBanAdd; \ No newline at end of file diff --git a/events/Guild/guildCreate.js b/events/Guild/guildCreate.js index b5238ab6..057a87d8 100644 --- a/events/Guild/guildCreate.js +++ b/events/Guild/guildCreate.js @@ -15,8 +15,6 @@ class GuildCreate extends BaseEvent { * @param {import("discord.js").Guild} guild */ async execute(client, guild) { - const messageOptions = {}; - const userData = await client.findOrCreateUser({ id: guild.ownerId, }); @@ -24,15 +22,11 @@ class GuildCreate extends BaseEvent { if (!userData.achievements.invite.achieved) { userData.achievements.invite.progress.now += 1; userData.achievements.invite.achieved = true; - messageOptions.files = [{ - name: "unlocked.png", - attachment: "./assets/img/achievements/achievement_unlocked7.png", - }]; userData.markModified("achievements.invite"); await userData.save(); } - const thanksEmbed = new EmbedBuilder() + const thanks = new EmbedBuilder() .setAuthor({ name: "Спасибо что добавили меня на свой сервер!", }) @@ -42,10 +36,15 @@ class GuildCreate extends BaseEvent { text: client.config.embed.footer, }) .setTimestamp(); - messageOptions.embeds = [thanksEmbed]; const owner = await guild.fetchOwner(); - owner.send(messageOptions); + owner.send({ + files: [{ + name: "unlocked.png", + attachment: "./assets/img/achievements/achievement_unlocked7.png", + }], + embeds: [thanks], + }); const users = guild.members.cache.filter(m => !m.user.bot).size; const bots = guild.members.cache.filter(m => m.user.bot).size; diff --git a/events/Guild/guildDelete.js b/events/Guild/guildDelete.js index 2aa52bea..0ac76e1d 100644 --- a/events/Guild/guildDelete.js +++ b/events/Guild/guildDelete.js @@ -20,7 +20,7 @@ class GuildDelete extends BaseEvent { name: guild.name, iconURL: guild.iconURL(), }) - .setColor("#B22222") + .setColor("#FF0000") .setDescription(`Вышел с сервера **${guild.name}**.`); client.channels.cache.get(client.config.support.logs).send({ embeds: [embed], diff --git a/events/MessageHandler.js b/events/MessageHandler.js index 50a3510d..f8690c62 100644 --- a/events/MessageHandler.js +++ b/events/MessageHandler.js @@ -1,6 +1,9 @@ const { PermissionsBitField } = require("discord.js"); const BaseEvent = require("../base/BaseEvent"), - xpCooldown = {}; + xpCooldown = {}, + usersMap = new Map(), + messageLimit = 10, + timeDifferenceMs = 5000; class MessageCreate extends BaseEvent { constructor() { @@ -50,7 +53,7 @@ class MessageCreate extends BaseEvent { if (/(discord\.(gg|io|me|li)\/.+|discordapp\.com\/invite\/.+)/i.test(message.content)) if (!message.channel.permissionsFor(message.member).has(PermissionsBitField.Flags.ManageMessages)) { message.delete(); - return message.error("administration/automod:DELETED"); + message.error("administration/automod:DELETED"); } const afkReason = data.userData.afk; @@ -58,7 +61,7 @@ class MessageCreate extends BaseEvent { data.userData.afk = null; await data.userData.save(); message.replyT("general/afk:DELETED", { - username: message.author.username, + user: message.author.username, }, { mention: true }); } @@ -66,9 +69,53 @@ class MessageCreate extends BaseEvent { const userData = await client.findOrCreateUser({ id: u.id, }); - if (userData.afk) message.error("general/afk:IS_AFK", { user: u.tag, reason: userData.afk }); + if (userData.afk) message.replyT("general/afk:IS_AFK", { user: u.tag, reason: userData.afk }, { ephemeral: true }); }); } + + if (data.guildData.plugins.automod.enabled) + if (usersMap.has(message.author.id)) { + let msgCount = userData.msgCount; + const userData = usersMap.get(message.author.id), + { lastMessage, timer } = userData, + difference = message.createdTimestamp - lastMessage.createdTimestamp; + + if (difference > timeDifferenceMs) { + clearTimeout(timer); + + userData.msgCount = 1; + userData.lastMessage = message; + userData.timer = setTimeout(() => { + usersMap.delete(message.author.id); + }, 1000); + usersMap.set(message.author.id, userData); + } else { + ++msgCount; + if (parseInt(msgCount) === messageLimit) { + message.replyT("administration/automod:"); + let messages = await message.channel.messages.fetch({ + limit: messageLimit, + }); + messages = messages.filter(m => m.author.id === message.user.id); + + message.channel.bulkDelete(messages.filter(m => !m.pinned), true); + } else { + userData.msgCount = msgCount; + usersMap.set(message.author.id, userData); + } + } + } else { + const fn = setTimeout(() => { + usersMap.delete(message.author.id); + }, 1000); + + usersMap.set(message.author.id, { + msgCount: 1, + lastMessage: message, + timer: fn, + }); + } + return; } } diff --git a/languages/ru-RU/administration/automod.json b/languages/ru-RU/administration/automod.json index 102bd094..75ad20dd 100644 --- a/languages/ru-RU/administration/automod.json +++ b/languages/ru-RU/administration/automod.json @@ -1,9 +1,10 @@ { - "DESCRIPTION": "Включить или отключить автоудаление ссылок-приглашений", + "DESCRIPTION": "Включить или отключить автоудаление спама и ссылок-приглашений", "USAGE": "[state] (#channel)", "EXAMPLES": "automod state:True\nautomod state:False channel:#general\nautomod state:False", - "ENABLED": "Ссылки-приглашения будут удаляться автоматически\nИспользуйте `automod false #channel` для игнорирования канала!", - "DISABLED_CHANNEL": "Автомодерация не будет выполняться в {{channel}}!", - "DISABLED": "Автомодерация отключена!", - "DELETED": "Ваше сообщение было удалено, т.к. содержало в себе ссылку-приглашение!" + "ENABLED": "Ссылки-приглашения будут удаляться автоматически\nИспользуйте `automod false #channel` для игнорирования канала", + "DISABLED_CHANNEL": "Автомодерация не будет выполняться в {{channel}}", + "DISABLED": "Автомодерация отключена", + "DELETED": "Ваше сообщение было удалено, т.к. содержало в себе ссылку-приглашение", + "NO_SPAM": "Прекратите спамить!" } \ No newline at end of file diff --git a/languages/ru-RU/administration/autorole.json b/languages/ru-RU/administration/autorole.json index 5cc25023..96777add 100644 --- a/languages/ru-RU/administration/autorole.json +++ b/languages/ru-RU/administration/autorole.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Включить или отключить автоназначение роли при входе на сервер", "USAGE": "[state] (@role)", "EXAMPLES": "autorole state:True role:@новенький\nautorole state:False", - "MISSING_ROLE": "Укажите роль!", - "SUCCESS_ENABLED": "Автоназначение роли включено!\nНовые пользователи будут автоматически получать {{role}} при входе на сервер.", - "SUCCESS_DISABLED": "Автоназначение роли отключено!" + "MISSING_ROLE": "Укажите роль", + "SUCCESS_ENABLED": "Автоназначение роли включено!\nНовые пользователи будут автоматически получать {{role}} при входе на сервер", + "SUCCESS_DISABLED": "Автоназначение роли отключено" } \ No newline at end of file diff --git a/languages/ru-RU/administration/config.json b/languages/ru-RU/administration/config.json index 4876ae33..7a6862c4 100644 --- a/languages/ru-RU/administration/config.json +++ b/languages/ru-RU/administration/config.json @@ -19,14 +19,14 @@ "AUTOMOD_TITLE": "Автомодерация", "AUTOROLE_TITLE": "Автоназначение роли при входе", "AUTO_SANCTIONS": "Автоматические наказания", - "BAN_CONTENT": "Бан: После **{{count}}** предупреждений.", - "BAN_NOT_DEFINED": "Бан: Не назначено.", - "DASHBOARD_CONTENT": "Нажмите сюда, чтобы перейти в панель управления!", + "BAN_CONTENT": "Бан: После **{{count}}** предупреждений", + "BAN_NOT_DEFINED": "Бан: Не назначено", + "DASHBOARD_CONTENT": "Нажмите сюда, чтобы перейти в панель управления", "DASHBOARD_TITLE": "Изменить настройки", "GOODBYE_CONTENT": "Канал: {{channel}}\nКарточка: {{withImage}}", "GOODBYE_TITLE": "Прощание", - "KICK_CONTENT": "Кик: После **{{count}}** предупреждений.", - "KICK_NOT_DEFINED": "Кик: Не назначено.", + "KICK_CONTENT": "Кик: После **{{count}}** предупреждений", + "KICK_NOT_DEFINED": "Кик: Не назначено", "LIST": "Показать настройки сервера", "SET": "Изменить настройки сервера", "SETTING": "Параметр", diff --git a/languages/ru-RU/administration/deletemod.json b/languages/ru-RU/administration/deletemod.json index 5bc13b47..f16a0cee 100644 --- a/languages/ru-RU/administration/deletemod.json +++ b/languages/ru-RU/administration/deletemod.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Включить или отключить автоудаление команд модерации", "USAGE": "[state]", "EXAMPLES": "deletemod state:True\ndeletemod state:False", - "ENABLED": "Автоудаление команд модерации включено!", - "DISABLED": "Автоудаление команд модерации отключено!" + "ENABLED": "Автоудаление команд модерации включено", + "DISABLED": "Автоудаление команд модерации отключено" } \ No newline at end of file diff --git a/languages/ru-RU/administration/goodbye.json b/languages/ru-RU/administration/goodbye.json index 095eaed3..94003df6 100644 --- a/languages/ru-RU/administration/goodbye.json +++ b/languages/ru-RU/administration/goodbye.json @@ -3,13 +3,13 @@ "USAGE": "config [state] [#channel] [message] [image] \nИли [test]", "EXAMPLES": "goodbye state:True channel:#welcome Прощай! image:True\ngoodbye test", "TEST": "Проверить", - "TEST_SUCCESS": "Тест выполнен...", + "TEST_SUCCESS": "Тест выполнен", "CONFIG": "Настроить", "IMAGE": "Добавить карточку к сообщению?", "MESSAGE": "Ваше сообщение (доступны подмены с помощью {user}, {server} и {membercount})", - "ENABLED": "Прощальные сообщения включены в {{channel}}!\nИспользуйте `goodbye test` для просмотра сообщения!", - "DISABLED": "Прощальные сообщения отключены!", + "ENABLED": "Прощальные сообщения включены в {{channel}}!\nИспользуйте `goodbye test` для просмотра сообщения", + "DISABLED": "Прощальные сообщения отключены", "DEFAULT_MESSAGE": "Пока, {user}! Нас теперь {membercount} без тебя :'(", - "IMG_GOODBYE": "Вышел с {{server}}!", + "IMG_GOODBYE": "Вышел с {{server}}", "TITLE": "До встречи!" } \ No newline at end of file diff --git a/languages/ru-RU/administration/setlang.json b/languages/ru-RU/administration/setlang.json index 46d1d007..1a0d30f2 100644 --- a/languages/ru-RU/administration/setlang.json +++ b/languages/ru-RU/administration/setlang.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Изменить язык бота на сервере", "USAGE": "[language]", "EXAMPLES": "setlang language:Русский", - "SUCCESS": ":flag_ru: Язык сервера изменён на **{{lang}}**!" + "SUCCESS": ":flag_ru: Язык сервера изменён на **{{lang}}**" } \ No newline at end of file diff --git a/languages/ru-RU/administration/stealemoji.json b/languages/ru-RU/administration/stealemoji.json index cc0532fc..01255c58 100644 --- a/languages/ru-RU/administration/stealemoji.json +++ b/languages/ru-RU/administration/stealemoji.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Скопировать эмодзи на текущий сервер", "USAGE": "[emoji]", "EXAMPLES": "stealemoji emoji::coolstorybob:", - "SUCCESS": "{{emoji}} добавлен!", + "SUCCESS": "{{emoji}} добавлен", "ERROR": "Произошла ошибка при добавлении {{emoji}}.\n```{{e}}```" } \ No newline at end of file diff --git a/languages/ru-RU/administration/welcome.json b/languages/ru-RU/administration/welcome.json index b1d08b6e..97c1bb5d 100644 --- a/languages/ru-RU/administration/welcome.json +++ b/languages/ru-RU/administration/welcome.json @@ -2,9 +2,9 @@ "DESCRIPTION": "Включить или отключить сообщения при входе пользователя на сервер", "USAGE": "config [state] [#channel] [message] [image] \nИли [test]", "EXAMPLES": "welcome state:True channel:#welcome Добро пожаловать! image:True\nwelcome test", - "ENABLED": "Приветствующие сообщения включены в {{channel}}!\nИспользуйте `welcome test` для просмотра сообщения!", - "DISABLED": "Приветствующие сообщения отключены!", - "DEFAULT_MESSAGE": "Добро пожаловать {user}! Нас теперь {membercount}!", - "IMG_WELCOME": "Добро пожаловать на {{server}}!", + "ENABLED": "Приветствующие сообщения включены в {{channel}}!\nИспользуйте `welcome test` для просмотра сообщения", + "DISABLED": "Приветствующие сообщения отключены", + "DEFAULT_MESSAGE": "Добро пожаловать {user}! Нас теперь {membercount}", + "IMG_WELCOME": "Добро пожаловать на {{server}}", "TITLE": "Добро пожаловать!" } \ No newline at end of file diff --git a/languages/ru-RU/economy/achievements.json b/languages/ru-RU/economy/achievements.json index c0a99ac6..5f2e25e4 100644 --- a/languages/ru-RU/economy/achievements.json +++ b/languages/ru-RU/economy/achievements.json @@ -2,13 +2,13 @@ "DESCRIPTION": "Показать список достижений пользователя", "USAGE": "(@user)", "EXAMPLES": "achievements\nachievements user:@Jonny_Bro#4226", - "SEND_CMD": "Используйте свою первую команду!", - "CLAIM_SALARY": "Получите зарплату 10 раз!", - "MARRY": "Найдите вторую половинку и женитесь!", - "SLOTS": "Выиграйте 3 раза подряд в слоты!", - "TIP": "Поддержите разработчика!", - "REP": "Достигните 20 очков репутации!", - "INVITE": "Пригласите JaBa на ваш сервер!", + "SEND_CMD": "Используйте свою первую команду", + "CLAIM_SALARY": "Получите зарплату 10 раз", + "MARRY": "Найдите вторую половинку", + "SLOTS": "Выиграйте 3 раза подряд в слоты", + "TIP": "Поддержите разработчика", + "REP": "Достигните 20 очков репутации", + "INVITE": "Пригласите JaBa на ваш сервер", "TITLE": "🔥 Достижения", "PROGRESS": "Прогресс: {{now}}/{{total}} ({{percent}}%)" } \ No newline at end of file diff --git a/languages/ru-RU/economy/bank.json b/languages/ru-RU/economy/bank.json index 720e772d..221e4310 100644 --- a/languages/ru-RU/economy/bank.json +++ b/languages/ru-RU/economy/bank.json @@ -5,8 +5,8 @@ "OPTION": "Действие", "DEPOSIT": "Внести", "WITHDRAW": "Снять", - "NOT_ENOUGH_CREDIT": "У вас нет {{money}}!", - "NOT_ENOUGH_BANK": "Недостаточно кредитов на банковском счету, необходимо {{money}}!", - "SUCCESS_DEP": "{{money}} внесено на ваш банковский счёт!", + "NOT_ENOUGH_CREDIT": "У вас нет {{money}}", + "NOT_ENOUGH_BANK": "Недостаточно кредитов на банковском счету, необходимо {{money}}", + "SUCCESS_DEP": "{{money}} внесено на ваш банковский счёт", "SUCCESS_WD": "Вы сняли {{money}} с вашего банковского счёта" } \ No newline at end of file diff --git a/languages/ru-RU/economy/birthdate.json b/languages/ru-RU/economy/birthdate.json index 948dc996..658703de 100644 --- a/languages/ru-RU/economy/birthdate.json +++ b/languages/ru-RU/economy/birthdate.json @@ -6,8 +6,8 @@ "MONTH": "Месяц", "YEAR": "Год", "DATE_TOO_LOW": "Вам больше 80 лет? :eyes:", - "DATE_TOO_HIGH": "Хммм... Вы ещё не родились!", + "DATE_TOO_HIGH": "Хммм... Вы ещё не родились", "HAPPY_BIRTHDAY": "День рождения", "HAPPY_BIRTHDAY_MESSAGE": "Поздравляем {{name}} (<@{{user}}>) с днём рождения, сегодня ему(ей) исполнилось {{age}}!", - "SUCCESS": "Ваша дата рождения установлена на **{{date}}**!" + "SUCCESS": "Ваша дата рождения установлена на **{{date}}**" } \ No newline at end of file diff --git a/languages/ru-RU/economy/divorce.json b/languages/ru-RU/economy/divorce.json index 6826a866..a23a73aa 100644 --- a/languages/ru-RU/economy/divorce.json +++ b/languages/ru-RU/economy/divorce.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Развестись с пользователем", "USAGE": "", "EXAMPLES": "divorce", - "NOT_MARRIED": "Вы не состоите в браке!", - "DIVORCED": "Вы развелись с {{user}}!", - "DIVORCED_U": "{{user}} развёлся с вами!" + "NOT_MARRIED": "Вы не состоите в браке", + "DIVORCED": "Вы развелись с {{user}}", + "DIVORCED_U": "{{user}} развёлся с вами" } \ No newline at end of file diff --git a/languages/ru-RU/economy/leaderboard.json b/languages/ru-RU/economy/leaderboard.json index fb8ea28a..a607e2bf 100644 --- a/languages/ru-RU/economy/leaderboard.json +++ b/languages/ru-RU/economy/leaderboard.json @@ -5,6 +5,6 @@ "LEVEL": "Уровень", "MONEY": "Кредиты", "REP": "Репутация", - "MOBILE": ":confused: Я заметил, что вы онлайн с телефона... Таблица лидеров может отображаться некорректно на маленьких экранах. Попробуйте позже с другого устройства!", + "MOBILE": ":confused: Я заметил, что вы онлайн с телефона... Таблица лидеров может отображаться некорректно на маленьких экранах. Попробуйте позже с другого устройства", "TABLE": "Таблица лидеров {{name}}" } \ No newline at end of file diff --git a/languages/ru-RU/economy/marry.json b/languages/ru-RU/economy/marry.json index 93193cf5..9fe270d3 100644 --- a/languages/ru-RU/economy/marry.json +++ b/languages/ru-RU/economy/marry.json @@ -2,15 +2,15 @@ "DESCRIPTION": "Женитесь на том, кого любите", "USAGE": "[@user]", "EXAMPLES": "marry user:@Jonny_Bro#4226", - "ALREADY_MARRIED": "Вы уже состоите в браке! Вы можете развестить с помощью команды `divorce`.", - "ALREADY_MARRIED_USER": "Вы опоздали! {{user}} уже состоит в браке!", - "YOURSELF": "Вы не можете жениться на себе!", - "REQUEST_AUTHOR_TO_AMEMBER": "Вы уже отправили предложение {{user}}!", - "REQUEST_AMEMBER_TO_AUTHOR": "{{user}} отправил(а) вам предложение! Вы можете отказать или согласиться (либо дождаться истечения срока предложения).", - "REQUEST_AMEMBER_TO_MEMBER": "{{secondUser}} уже отправил(а) предложение {{firstUser}}!", - "REQUEST_MEMBER_TO_AMEMBER": "{{firstUser}} уже отправил(а) предложение {{secondUser}}! Подождите пока {{secondUser}} согласиться или откажет на предложение {{firstUser}} (либо дождитесь истечения срока предложения)!", + "ALREADY_MARRIED": "Вы уже состоите в браке! Вы можете развестить с помощью команды `divorce`", + "ALREADY_MARRIED_USER": "Вы опоздали! {{user}} уже состоит в браке", + "YOURSELF": "Вы не можете жениться на себе", + "REQUEST_AUTHOR_TO_AMEMBER": "Вы уже отправили предложение {{user}}", + "REQUEST_AMEMBER_TO_AUTHOR": "{{user}} отправил(а) вам предложение! Вы можете отказать или согласиться (либо дождаться истечения срока предложения)", + "REQUEST_AMEMBER_TO_MEMBER": "{{secondUser}} уже отправил(а) предложение {{firstUser}}", + "REQUEST_MEMBER_TO_AMEMBER": "{{firstUser}} уже отправил(а) предложение {{secondUser}}! Подождите пока {{secondUser}} согласиться или откажет на предложение {{firstUser}} (либо дождитесь истечения срока предложения)", "REQUEST": "{{to}}, вы согласны вступить в брак с {{from}}?", - "DENIED": "{{creator}}, у меня есть плохие новости... {{partner}} отказался(лась) от вашего предложение.", - "SUCCESS": "🎉 Поздравляем! **{{creator}}** и **{{partner}}** теперь состоят в браке!", + "DENIED": "{{creator}}, у меня есть плохие новости... {{partner}} отказался(лась) от вашего предложение", + "SUCCESS": "🎉 Поздравляем! **{{creator}}** и **{{partner}}** теперь состоят в браке", "BOT_USER": "Боты вечно одиноки ;(" } \ No newline at end of file diff --git a/languages/ru-RU/economy/money.json b/languages/ru-RU/economy/money.json index d1f0fea3..be1b0841 100644 --- a/languages/ru-RU/economy/money.json +++ b/languages/ru-RU/economy/money.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Показать количество кредитов у пользователя", "USAGE": "(@user)", "EXAMPLES": "money\nmoney user:@Jonny_Bro#4226", - "BOT_USER": "Никто не знает сколько у ботов денег...", - "TITLE": "Кредиты {{username}}" + "BOT_USER": "У него слишком много денег, я не могу вывести это число", + "TITLE": "Кредиты {{user}}" } \ No newline at end of file diff --git a/languages/ru-RU/economy/number.json b/languages/ru-RU/economy/number.json index 50fd9cf8..7273a716 100644 --- a/languages/ru-RU/economy/number.json +++ b/languages/ru-RU/economy/number.json @@ -2,11 +2,11 @@ "DESCRIPTION": "Угадай загаданное мною число", "USAGE": "", "EXAMPLES": "number", - "GAME_START": "Я загадал число, начинайте!\nНапишите STOP, если хотите остановить игру!", - "TOO_BIG": "{{user}}, моё число **больше** чем `{{number}}`!", - "TOO_SMALL": "{{user}}, моё число **меньше** чем `{{number}}`!", - "WON": "{{winner}} выиграл {{credits}}!", - "DEFEAT": "Никто не угадал число! Им было **{{number}}**!", + "GAME_START": "Я загадал число, начинайте!\nНапишите STOP, если хотите остановить игру", + "TOO_BIG": "{{user}}, моё число **больше** чем `{{number}}`", + "TOO_SMALL": "{{user}}, моё число **меньше** чем `{{number}}`", + "WON": "{{winner}} выиграл {{credits}}", + "DEFEAT": "Никто не угадал число! Им было **{{number}}**", "GAME_STATS": "🎉 | {{winner}} угадал число! Им было **{{number}}**!\n\n**Статистика:**\n*-* __**Длительность**__: {{time}}\n*-* __**Участники ({{participantCount}})**__: {{participants}}", - "GAME_RUNNING": "Игра уже идёт!" + "GAME_RUNNING": "Игра уже идёт" } \ No newline at end of file diff --git a/languages/ru-RU/economy/pay.json b/languages/ru-RU/economy/pay.json index 00e7b2c5..93af80ac 100644 --- a/languages/ru-RU/economy/pay.json +++ b/languages/ru-RU/economy/pay.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Отправить кредиты пользователю", "USAGE": "[@user] [amount]", "EXAMPLES": "pay user:@Jonny_Bro#4226 amount:1000", - "BOT_USER": "Ботам не нужны деньги B)!", - "YOURSELF": "Вы не можете перевести кредиты самому себе!", + "BOT_USER": "Ботам не нужны деньги B)", + "YOURSELF": "Вы не можете перевести кредиты самому себе", "INVALID_AMOUNT": "Укажите сумму", "ENOUGH_MONEY": "У вас нет {{amount}}", "SUCCESS": "Вы отправили {{user}} {{amount}}!" diff --git a/languages/ru-RU/economy/profile.json b/languages/ru-RU/economy/profile.json index d8ba3279..432dc098 100644 --- a/languages/ru-RU/economy/profile.json +++ b/languages/ru-RU/economy/profile.json @@ -2,10 +2,10 @@ "DESCRIPTION": "Показать профиль пользователя", "USAGE": "(@user)", "EXAMPLES": "profile\nprofile user:@Jonny_Bro#4226", - "BOT_USER": "У ботов нет профиля!", + "BOT_USER": "У ботов нет профиля", "TITLE": "Профиль {{user}}", "LINK": "Профиль", - "LINK_TEXT": "Нажмите сюда, чтобы открыть профиль текущего сервера в панели управления!", + "LINK_TEXT": "Нажмите сюда, чтобы открыть профиль текущего сервера в панели управления", "BIO": "🔖 Биография", "CASH": "💵 Кредиты", "BANK": "💳 Банк", @@ -17,5 +17,5 @@ "LOVER": "❤ Вторая половинка", "REGISTERED": "📅 Профиль создан", "ACHIEVEMENTS": "🔥 Достижения", - "ACHIEVEMENTS_CONTENT": "Получите больше информации с помощью `achievements`!" + "ACHIEVEMENTS_CONTENT": "Получите больше информации с помощью `achievements`" } \ No newline at end of file diff --git a/languages/ru-RU/economy/rep.json b/languages/ru-RU/economy/rep.json index 76395ff4..a06cc6e4 100644 --- a/languages/ru-RU/economy/rep.json +++ b/languages/ru-RU/economy/rep.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Дать репутацию пользователю", "USAGE": "[@user]", "EXAMPLES": "rep user:@Jonny_Bro#4226", - "COOLDOWN": "Вы должны подождать **{{time}}** до следующего использования!", + "COOLDOWN": "Вы должны подождать **{{time}}** до следующего использования", "BOT_USER": "Боты и так крутые B)", - "YOURSELF": "Вы не можете дать очко репутации самому себе!", - "SUCCESS": "Вы дали очко репутации {{user}}!" + "YOURSELF": "Вы не можете дать очко репутации самому себе", + "SUCCESS": "Вы дали очко репутации {{user}}" } \ No newline at end of file diff --git a/languages/ru-RU/economy/rob.json b/languages/ru-RU/economy/rob.json index 1957d1e5..49302f4f 100644 --- a/languages/ru-RU/economy/rob.json +++ b/languages/ru-RU/economy/rob.json @@ -2,13 +2,13 @@ "DESCRIPTION": "Попытаться ограбить пользователя", "USAGE": "[@user] [amount]", "EXAMPLES": "rob user:@Jonny_Bro#4226 amount:100", - "BOT_USER": "Вы не можете ограбить бота!", - "YOURSELF": "Вы не можете ограбить себя!", - "NOT_ENOUGH_AUTHOR": "У вас должно быть хотя бы {{moneyMin}}, чтобы грабить данного пользователя (сейчас у вас {{moneyCurrent}})!", - "NOT_ENOUGH_MEMBER": "Вы не можете ограбить {{user}}, потому что у него нет столько кредитов!", - "COOLDOWN": "🕵️ {{user}} под защитой.... Попробуйте позже!", - "ROB_WON_1": "🎉 | Поздравляем! Полиция не смогла остановить вас, поэтому вы успешно украли {{money}} у {{user}}!", + "BOT_USER": "Вы не можете ограбить бота", + "YOURSELF": "Вы не можете ограбить себя", + "NOT_ENOUGH_AUTHOR": "У вас должно быть хотя бы {{moneyMin}}, чтобы грабить данного пользователя (сейчас у вас {{moneyCurrent}})", + "NOT_ENOUGH_MEMBER": "Вы не можете ограбить {{user}}, потому что у него нет столько кредитов", + "COOLDOWN": "🕵️ {{user}} под защитой.... Попробуйте позже", + "ROB_WON_1": "🎉 | Поздравляем! Полиция не смогла остановить вас, поэтому вы успешно украли {{money}} у {{user}}", "ROB_WON_2": "🎉 | Вы ограбили {{user}} на {{money}}", - "ROB_LOSE_1": "🚔 | Полиция поймала вас. Теперь вы должны заплатить штраф {{fine}}. {{offset}} будет выплачено {{user}}.", - "ROB_LOSE_2": "🚓 | Плохие новости... {{user}} вовремя позвонил в полицию. Вы должны заплатить штраф {{fine}} и {{offset}} будет выплачено {{user}}." + "ROB_LOSE_1": "🚔 | Полиция поймала вас. Теперь вы должны заплатить штраф {{fine}}. {{offset}} будет выплачено {{user}}", + "ROB_LOSE_2": "🚓 | Плохие новости... {{user}} вовремя позвонил в полицию. Вы должны заплатить штраф {{fine}} и {{offset}} будет выплачено {{user}}" } \ No newline at end of file diff --git a/languages/ru-RU/economy/setbio.json b/languages/ru-RU/economy/setbio.json index 9b9c3974..e58bbf80 100644 --- a/languages/ru-RU/economy/setbio.json +++ b/languages/ru-RU/economy/setbio.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Установить биографию", "USAGE": "[text]", "EXAMPLES": "setbio text:Меня зовут Жоня :shock:", - "MAX_CHARACTERS": "Ваша биография не должна превышать 150 символов!", - "SUCCESS": "Ваша биография изменена!" + "MAX_CHARACTERS": "Ваша биография не должна превышать 150 символов", + "SUCCESS": "Ваша биография изменена" } \ No newline at end of file diff --git a/languages/ru-RU/economy/slots.json b/languages/ru-RU/economy/slots.json index 595969d9..f9ffb3ec 100644 --- a/languages/ru-RU/economy/slots.json +++ b/languages/ru-RU/economy/slots.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Казино \"Casino JaBa\"", "USAGE": "[amount]", "EXAMPLES": "slots amount:100", - "DEFEAT": "{{user}} поставил {{money}} и всё проиграл.", - "VICTORY": "{{user}} поставил {{money}} и выиграл {{won}}!", - "NOT_ENOUGH": "У вас нет {{money}}." + "DEFEAT": "{{user}} поставил {{money}} и всё проиграл", + "VICTORY": "{{user}} поставил {{money}} и выиграл {{won}}", + "NOT_ENOUGH": "У вас нет {{money}}" } \ No newline at end of file diff --git a/languages/ru-RU/economy/tictactoe.json b/languages/ru-RU/economy/tictactoe.json index 710e664e..260f934c 100644 --- a/languages/ru-RU/economy/tictactoe.json +++ b/languages/ru-RU/economy/tictactoe.json @@ -8,13 +8,13 @@ "REQUEST_SEND": "Запрос отправлен <@{{opponent}}>", "REQUEST_WAIT": "Ожидаю ответа {{user}}", "WAITING": "Ожидаю ход <@{{user}}> | Ваш эмодзи: {{emoji}}", - "WON": "<@{{winner}}> ({{emoji}}) выиграл!", - "CANT_PLAY": "Сейчас не ваш ход!", + "WON": "<@{{winner}}> ({{emoji}}) выиграл", + "CANT_PLAY": "Сейчас не ваш ход", "TIE": "Ничья", - "TIE_DESC": "Никто не выиграл!", - "NO_ANSWER": "<@{{user}}> не ответил вовремя!", + "TIE_DESC": "Никто не выиграл", + "NO_ANSWER": "<@{{user}}> не ответил вовремя", "NO_ANSWER_TITLE": "Запрос не принят вовремя", - "NOT_ANSWERED": "<@{{user}}> не принял запрос!", - "CANCELED": "Игра отменена!", - "CANCELED_DESC": "<@{{user}}> отказался от игры!" + "NOT_ANSWERED": "<@{{user}}> не принял запрос", + "CANCELED": "Игра отменена", + "CANCELED_DESC": "<@{{user}}> отказался от игры" } \ No newline at end of file diff --git a/languages/ru-RU/economy/work.json b/languages/ru-RU/economy/work.json index 6fae97ab..f4a44995 100644 --- a/languages/ru-RU/economy/work.json +++ b/languages/ru-RU/economy/work.json @@ -2,10 +2,10 @@ "DESCRIPTION": "Получить зарплату", "USAGE": "", "EXAMPLES": "work", - "COOLDOWN": "Вы должны подождать **{{time}}** до следующей зарплаты!", - "AWARD": "Закончите серию чтобы получить 200 дополнительных кредитов!", + "COOLDOWN": "Вы должны подождать **{{time}}** до следующей зарплаты", + "AWARD": "Закончите серию чтобы получить 200 дополнительных кредитов", "SALARY": "Зарплата", - "SALARY_CONTENT": "Вы получили {{won}}!", + "SALARY_CONTENT": "Вы получили {{won}}", "STREAK": "Серия", - "STREAK_CONTENT": "🎉 Вы получили 200 дополнительных кредитов!" + "STREAK_CONTENT": "🎉 Вы получили 200 дополнительных кредитов" } \ No newline at end of file diff --git a/languages/ru-RU/fun/lovecalc.json b/languages/ru-RU/fun/lovecalc.json index b0440f36..5fc47a1a 100644 --- a/languages/ru-RU/fun/lovecalc.json +++ b/languages/ru-RU/fun/lovecalc.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Калькулятор любви", "USAGE": "[@first_member] (@second_member)", "EXAMPLES": "lovecalc first_member:@Jonny_Bro#4226\nlovecalc first_member:@Jonny_Bro#4226 second_member:@JaBa#9042", - "CONTENT": "{{firstMember}} любит {{secondMember}} на **{{percent}}%**!" + "CONTENT": "{{firstMember}} любит {{secondMember}} на **{{percent}}%**" } \ No newline at end of file diff --git a/languages/ru-RU/general/afk.json b/languages/ru-RU/general/afk.json index fe9866b2..8f4b608c 100644 --- a/languages/ru-RU/general/afk.json +++ b/languages/ru-RU/general/afk.json @@ -3,6 +3,6 @@ "USAGE": "[message]", "EXAMPLES": "afk message:Сру =)", "SUCCESS": "Теперь вы AFK по причине: **{{reason}}**", - "DELETED": "**{{username}}**, ваш AFK статус удалён!", + "DELETED": "**{{user}}**, ваш AFK статус удалён", "IS_AFK": "**{{user}}** сейчас AFK, причина:\n```{{reason}}```" } \ No newline at end of file diff --git a/languages/ru-RU/general/minecraft.json b/languages/ru-RU/general/minecraft.json index 6b8adc9f..37e55a86 100644 --- a/languages/ru-RU/general/minecraft.json +++ b/languages/ru-RU/general/minecraft.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Показать информацию о Minecraft сервере", "USAGE": "[IP]", "EXAMPLES": "minecraft IP:mc.hypixel.net", - "FAILED": "Сервер недоступен или доступ запрещён!", + "FAILED": "Сервер недоступен или доступ запрещён", "ONLINE": "Онлайн", "OFFLINE": "Оффлайн", "PLAYERS": "{{count}} игрок(а/ов)", diff --git a/languages/ru-RU/general/report.json b/languages/ru-RU/general/report.json index eb747bc1..e562a2ab 100644 --- a/languages/ru-RU/general/report.json +++ b/languages/ru-RU/general/report.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Отправить жалобу в специальный канал", "USAGE": "[@user] (message)", "EXAMPLES": "report user:@Jonny_Bro#4226 message:Нарушение правил", - "MISSING_CHANNEL": "Канал для жалоб не настроен!", + "MISSING_CHANNEL": "Канал для жалоб не настроен", "INVALID_USER": "Вы не можете пожаловаться на себя", - "SUCCESS": "Ваша жалоба отправлена в {{channel}}!", + "SUCCESS": "Ваша жалоба отправлена в {{channel}}", "TITLE": "Жалоба - {{user}}" } \ No newline at end of file diff --git a/languages/ru-RU/general/serverinfo.json b/languages/ru-RU/general/serverinfo.json index 39aac719..13d95478 100644 --- a/languages/ru-RU/general/serverinfo.json +++ b/languages/ru-RU/general/serverinfo.json @@ -5,5 +5,5 @@ "AFK_CHANNEL": "AFK канал", "BOOSTS": "Кол-во бустов", "LINK": "Статистика сервера", - "LINK_TEXT": "Нажмите сюда, чтобы открыть статистику сервера в панели управления!" + "LINK_TEXT": "Нажмите сюда, чтобы открыть статистику сервера в панели управления" } \ No newline at end of file diff --git a/languages/ru-RU/general/stats.json b/languages/ru-RU/general/stats.json index 9f5ca090..995e88f6 100644 --- a/languages/ru-RU/general/stats.json +++ b/languages/ru-RU/general/stats.json @@ -13,5 +13,5 @@ "CREDITS_TITLE": ":heart: • __Доп. информация__", "CREDITS_CONTENT": "__**Поддержавшие**__:\n**`Добрый Спецназ#8801`** - Тестер, генератор идей\n__**Переводчики**__:\n**`[ДАННЫЕ УДАЛЕНЫ]#4507`** - :flag_ua:", "LINKS_TITLE": "• __Ссылки__", - "MADE": "Бот создан Jonny_Bro#4226!" + "MADE": "Бот создан Jonny_Bro#4226" } \ No newline at end of file diff --git a/languages/ru-RU/general/suggest.json b/languages/ru-RU/general/suggest.json index e4c549c0..41f0257f 100644 --- a/languages/ru-RU/general/suggest.json +++ b/languages/ru-RU/general/suggest.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Отправить предложение в специальный канал", "USAGE": "[message]", "EXAMPLES": "suggest message:Новый канал #nsfw :smiling_imp:", - "MISSING_CHANNEL": "Канал для предложений не настроен!", - "MISSING_CONTENT": "Введите предложение!", + "MISSING_CHANNEL": "Канал для предложений не настроен", + "MISSING_CONTENT": "Введите предложение", "TITLE": "Предложение - {{user}}", - "SUCCESS": "Ваше предложение отправлено в {{channel}}!" + "SUCCESS": "Ваше предложение отправлено в {{channel}}" } \ No newline at end of file diff --git a/languages/ru-RU/general/whois.json b/languages/ru-RU/general/whois.json index f2b41f43..2a44dc60 100644 --- a/languages/ru-RU/general/whois.json +++ b/languages/ru-RU/general/whois.json @@ -13,7 +13,7 @@ "CURRENCY": "Валюта", "ISP": "Провайдер", "INFO": "Дополнительная информация", - "PROXY": "Этот IP принадлежит Tor, VPN или прокси!", - "MOBILE": "Этот IP используется для мобильных данных!", - "HOSTING": "Это IP принадлежит хостингу или датацентру!" + "PROXY": "Этот IP принадлежит Tor, VPN или прокси", + "MOBILE": "Этот IP используется для мобильных данных", + "HOSTING": "Это IP принадлежит хостингу или датацентру" } \ No newline at end of file diff --git a/languages/ru-RU/misc.json b/languages/ru-RU/misc.json index 3d0a40aa..9a1c63dd 100644 --- a/languages/ru-RU/misc.json +++ b/languages/ru-RU/misc.json @@ -1,18 +1,18 @@ { - "BOT_USER": "Вы не можете сделать это с ботом!", - "FORCE_STOP": "Игра принудительно окончена {{user}}, никто не победил!", + "BOT_USER": "Вы не можете сделать это с ботом", + "FORCE_STOP": "Игра принудительно окончена {{user}}, никто не победил", "LEVEL_UP": "Вы достигли следующего уровня! Ваш новый уровень: **{{level}}**", - "GUILD_ONLY": "Данную команду можно использовать только на сервере!", - "HELLO_SERVER": "Привет! Все мои команды доступны через **/** Используйте , чтобы получить список команд!", - "INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**!", - "MORE_THAN_ZERO": "Укажите целое число больше 0!", + "GUILD_ONLY": "Данную команду можно использовать только на сервере", + "HELLO_SERVER": "Привет! Все мои команды доступны через **/** Используйте , чтобы получить список команд", + "INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**", + "MORE_THAN_ZERO": "Укажите целое число больше 0", "NO_ARGS": "Агрументы не требуются", - "NSFW_COMMAND": "Данную команду можно использовать только в NSFW канале!", - "OPTION_NAN_ALL": "Укажите целое число больше 0 или `all`!", - "OWNER_ONLY": "Данную команду может использовать только владелец бота!", - "SELECT_CANCELED": "Выбор отменён...", + "NSFW_COMMAND": "Данную команду можно использовать только в NSFW канале", + "OPTION_NAN_ALL": "Укажите целое число больше 0 или `all`", + "OWNER_ONLY": "Данную команду может использовать только владелец бота", + "SELECT_CANCELED": "Выбор отменён", "STATS_FOOTER": "● [Панель управления]({{dashboardLink}})\n● [Сервер поддержки]({{supportLink}})\n● [Пригласить JaBa на свой сервер]({{inviteLink}})\n● [Поддержать]({{donateLink}}) (укажите ваш Discord тэг для выдачи ачивки, для других способов поддержки пишите в ЛС <@{{owner}}>)", - "TIMED_OUT": "Время вышло!", + "TIMED_OUT": "Время вышло", "JUMP_TO_PAGE": "Укажите страницу к которой хотите перейти (максимум **{{length}}**):", "PERMISSIONS": { diff --git a/languages/ru-RU/moderation/clear.json b/languages/ru-RU/moderation/clear.json index e88129e2..e52c7a81 100644 --- a/languages/ru-RU/moderation/clear.json +++ b/languages/ru-RU/moderation/clear.json @@ -3,8 +3,9 @@ "USAGE": "[option] (@user)", "EXAMPLES": "clear option:10\nclear option:10 user:@Jonny_Bro#4226\nclear option:all", "OPTION": "Целое число / all", + "REQUIRE_ID_USER": "Укажите пользователя или ID", "ALL_CONFIRM": "**Все сообщения в канале будут удалены! Вы уверены?**", - "CHANNEL_CLEARED": "Канал очищен!", - "CLEARED": "Было удалено {{amount}}!", - "CLEARED_MEMBER": "Было удалено {{amount}} от {{user}}!" + "CHANNEL_CLEARED": "Канал очищен", + "CLEARED": "Было удалено {{amount}}", + "CLEARED_MEMBER": "Было удалено {{amount}} от {{user}}" } \ No newline at end of file diff --git a/languages/ru-RU/moderation/clearwarns.json b/languages/ru-RU/moderation/clearwarns.json index 007343de..a3b1e79a 100644 --- a/languages/ru-RU/moderation/clearwarns.json +++ b/languages/ru-RU/moderation/clearwarns.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Снять все предупреждения с пользователя", "USAGE": "[@user]", "EXAMPLES": "clearwarns user:@Jonny_Bro#4226", - "SUCCESS": "Предупреждения пользователя {{user}} удалены!" + "SUCCESS": "Предупреждения пользователя {{user}} удалены" } \ No newline at end of file diff --git a/languages/ru-RU/moderation/giveaway.json b/languages/ru-RU/moderation/giveaway.json index 674568f3..519bc1de 100644 --- a/languages/ru-RU/moderation/giveaway.json +++ b/languages/ru-RU/moderation/giveaway.json @@ -10,24 +10,24 @@ "WINNERS_COUNT": "Количество победителей", "PRIZE": "Приз", "ISDROP": "Это дроп?", - "NOT_FOUND": "Раздач с ID `{{messageId}}` не найдено!", - "NOT_FOUND_ENDED": "**Оконченных** раздач с ID `{{messageId}} не найдено!`!", - "MAX_DURATION": "Максимальная длительность раздачи - 10 дней.", - "MAX_COUNT": "Одновременно можно создать только 5 раздач.", + "NOT_FOUND": "Раздач с ID `{{messageId}}` не найдено", + "NOT_FOUND_ENDED": "**Оконченных** раздач с ID `{{messageId}} не найдено!`", + "MAX_DURATION": "Максимальная длительность раздачи - 10 дней", + "MAX_COUNT": "Одновременно можно создать только 5 раздач", "TITLE": "🎉🎉 **РАЗДАЧА** 🎉🎉", "ENDED": "🎉🎉 **РАЗДАЧА ОКОНЧЕНА** 🎉🎉", - "TIME_REMAINING": "Оставшееся время: **{duration}**!", - "INVITE_PARTICIPATE": "Отреагируйте 🎉, чтобы участвовать!", - "WIN_MESSAGE": "Поздравляем, {winners}! Вы выиграли **{this.prize}**!", + "TIME_REMAINING": "Оставшееся время: **{duration}**", + "INVITE_PARTICIPATE": "Отреагируйте 🎉, чтобы участвовать", + "WIN_MESSAGE": "Поздравляем, {winners}! Вы выиграли **{this.prize}**", "DRAWING": "Заканчивается: {timestamp}", - "DROP": "Будь первым кто отреагирует 🎉!", + "DROP": "Будь первым кто отреагирует 🎉", "FOOTER": "Раздача", "NO_WINNER": "Раздача отменена, никто не участвовал.", "WINNERS": "Победитель(и):", "END_AT": "Закончилась:", "HOSTED_BY": "Организатор: {this.hostedBy}", - "REROLL_CONGRAT": "🎉 Новый(е) победитель(и): {winners}! Поздравляем!", - "REROLL_ERROR": "Нет действительных участников, никто не выиграл!", + "REROLL_CONGRAT": "🎉 Новый(е) победитель(и): {winners}! Поздравляем", + "REROLL_ERROR": "Нет действительных участников, никто не выиграл", "GIVEAWAY_CREATED": "Раздача начата", "GIVEAWAY_REROLLED": "Раздача перезапущена", "GIVEAWAY_ENDED": "Раздача принудительно окончена", diff --git a/languages/ru-RU/moderation/unban.json b/languages/ru-RU/moderation/unban.json index 0a0352c2..365ef061 100644 --- a/languages/ru-RU/moderation/unban.json +++ b/languages/ru-RU/moderation/unban.json @@ -3,5 +3,5 @@ "USAGE": "[user_id]", "EXAMPLES": "unban user_id:281361531411890186", "NOT_BANNED": "Пользователь с ID **{{id}}** не найден", - "UNBANNED": "**{{id}}** разбанен!" + "UNBANNED": "**{{id}}** разбанен" } \ No newline at end of file diff --git a/languages/ru-RU/moderation/warns.json b/languages/ru-RU/moderation/warns.json index cfe9a46b..5de802bb 100644 --- a/languages/ru-RU/moderation/warns.json +++ b/languages/ru-RU/moderation/warns.json @@ -3,5 +3,5 @@ "USAGE": "[@user]", "EXAMPLES": "warns user:@Jonny_Bro#4226", "SANCTIONS_OF": "Нарушения {{member}}", - "NO_SANCTIONS": "У **{{member}}** нет нарушений." + "NO_SANCTIONS": "У **{{member}}** нет нарушений" } \ No newline at end of file diff --git a/languages/ru-RU/music/loop.json b/languages/ru-RU/music/loop.json index d741a09d..dbb25de8 100644 --- a/languages/ru-RU/music/loop.json +++ b/languages/ru-RU/music/loop.json @@ -1,7 +1,8 @@ { "DESCRIPTION": "Выбор режима повтора", - "USAGE": "", - "EXAMPLES": "loop", + "USAGE": "[option]", + "EXAMPLES": "loop option:1", + "OPTION": "Режим воспроизведения", "AUTOPLAY": "Автовоспроизведение", "QUEUE": "Очередь", "TRACK": "Текущий трек", diff --git a/languages/ru-RU/music/play.json b/languages/ru-RU/music/play.json index 5ab42846..12e5f291 100644 --- a/languages/ru-RU/music/play.json +++ b/languages/ru-RU/music/play.json @@ -2,16 +2,16 @@ "DESCRIPTION": "Начать воспроизведение трека", "USAGE": "[query]", "EXAMPLES": "play query:Never Gonna Give You Up", - "QUERY": "Название / Прямая ссылка / Ссылка на YouTube или SoundCloud", - "NO_VOICE_CHANNEL": "Вы должны находиться в голосовом канале!", - "VOICE_CHANNEL_CONNECT": "Я не могу присоедениться к вашему голосовому каналу!", + "QUERY": "Название / Прямая ссылка / Ссылка на YouTube, Spotify или SoundCloud", + "NO_VOICE_CHANNEL": "Вы должны находиться в голосовом канале", + "VOICE_CHANNEL_CONNECT": "Я не могу присоедениться к вашему голосовому каналу", "RESULTS_TITLE": "Результаты поиска по \"{{query}}\"", "NO_RESULT": "По запросу `{{query}}` ничего не найдено", "NOW_PLAYING": "Сейчас играет **{{songName}}**", "NOT_PLAYING": "На сервере сейчас ничего не воспроизводится", "QUEUE_ENDED": "Очередь окончена", "ADDED_QUEUE": "**{{songName}}** добавлен в очередь", - "STOP_DISCONNECTED": "Воспроизведение окончено, т.к. я вышел из голосового канала.", - "STOP_EMPTY": "Воспроизведение окончено, т.к. все вышли из голосового канала.", + "STOP_DISCONNECTED": "Воспроизведение окончено, т.к. я вышел из голосового канала", + "STOP_EMPTY": "Воспроизведение окончено, т.к. все вышли из голосового канала", "ERR_OCCURRED": "Произошла ошибка...\n```{{error}}```" } \ No newline at end of file diff --git a/languages/ru-RU/music/seek.json b/languages/ru-RU/music/seek.json index 6c19b598..87b5137f 100644 --- a/languages/ru-RU/music/seek.json +++ b/languages/ru-RU/music/seek.json @@ -1,5 +1,5 @@ { - "DESCRIPTION": "Перемотать вперед на данное время в текущем треке", + "DESCRIPTION": "Перемотать текущий трек на данную позицию", "USAGE": "[time]", "EXAMPLES": "seek time:60", "TIME": "Время в секундах", diff --git a/languages/ru-RU/music/volume.json b/languages/ru-RU/music/volume.json new file mode 100644 index 00000000..a1a67170 --- /dev/null +++ b/languages/ru-RU/music/volume.json @@ -0,0 +1,6 @@ +{ + "DESCRIPTION": "Установить громкость бота", + "USAGE": "[int]", + "EXAMPLES": "volume 50", + "SUCCESS": "Громкость установлена на **{{volume}}**" +} \ No newline at end of file diff --git a/languages/ru-RU/nsfw/nsfw.json b/languages/ru-RU/nsfw/pic.json similarity index 80% rename from languages/ru-RU/nsfw/nsfw.json rename to languages/ru-RU/nsfw/pic.json index a196cce3..63da7b81 100644 --- a/languages/ru-RU/nsfw/nsfw.json +++ b/languages/ru-RU/nsfw/pic.json @@ -1,5 +1,5 @@ { "DESCRIPTION": "Получить NSFW изображение", "USAGE": "", - "EXAMPLES": "nsfw" + "EXAMPLES": "pic" } \ No newline at end of file diff --git a/languages/ru-RU/owner/announcement.json b/languages/ru-RU/owner/announcement.json index cd72b12e..316711b6 100644 --- a/languages/ru-RU/owner/announcement.json +++ b/languages/ru-RU/owner/announcement.json @@ -4,7 +4,7 @@ "EXAMPLES": "announcement message:Обновление v1.0! tag:True", "TAG": "Подставить @everyone в сообщение?", "IMPORTANT": "Важное? (Отправит в первый доступный канал на сервере, даже если не настроен News)", - "TOO_LONG": "Текст должен быть короче 1000 символов!", + "TOO_LONG": "Текст должен быть короче 1000 символов", "TITLE": "📢 Объявление:", - "SENDED": "Обновление отправлено на все сервера!" + "SENDED": "Обновление отправлено на все сервера" } \ No newline at end of file diff --git a/languages/ru-RU/owner/debug.json b/languages/ru-RU/owner/debug.json index 5ecf664d..21f4479c 100644 --- a/languages/ru-RU/owner/debug.json +++ b/languages/ru-RU/owner/debug.json @@ -5,9 +5,9 @@ "TYPE": "Тип данных", "SET": "Установить значение", "ADD": "Добавить к значению", - "SUCCESS_LEVEL": "Уровень пользователя **{{username}}** изменён на **{{amount}}**!", - "SUCCESS_XP": "XP пользователя **{{username}}** изменён на **{{amount}}**!", - "SUCCESS_CREDITS": "Кредиты пользователя **{{username}}** изменены на **{{amount}}**!", - "SUCCESS_BANK": "Банк пользователя **{{username}}** изменён на **{{amount}}**!", - "SUCCESS_REP": "Очки репутации пользователя **{{username}}** изменены на **{{amount}}**!" + "SUCCESS_LEVEL": "Уровень пользователя **{{user}}** изменён на **{{amount}}**", + "SUCCESS_XP": "XP пользователя **{{user}}** изменён на **{{amount}}**", + "SUCCESS_CREDITS": "Кредиты пользователя **{{user}}** изменены на **{{amount}}**", + "SUCCESS_BANK": "Банк пользователя **{{user}}** изменён на **{{amount}}**", + "SUCCESS_REP": "Очки репутации пользователя **{{user}}** изменены на **{{amount}}**" } \ No newline at end of file diff --git a/languages/ru-RU/owner/reload.json b/languages/ru-RU/owner/reload.json index 9cf98c4d..9661363a 100644 --- a/languages/ru-RU/owner/reload.json +++ b/languages/ru-RU/owner/reload.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Перезагрузить команду", "USAGE": "[command]", "EXAMPLES": "reload command:help", - "NOT_FOUND": "Команда `{{command}}` не найдена!", - "SUCCESS": "Команда `{{command}}` успешно перезагружена!" + "NOT_FOUND": "Команда `{{command}}` не найдена", + "SUCCESS": "Команда `{{command}}` успешно перезагружена" } \ No newline at end of file diff --git a/languages/ru-RU/owner/say.json b/languages/ru-RU/owner/say.json index 3d5bb7a9..edc8580a 100644 --- a/languages/ru-RU/owner/say.json +++ b/languages/ru-RU/owner/say.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Написать сообщение от имени бота", "USAGE": "[message] (#channel)", "EXAMPLES": "say message:Hello World!\nsay message:Hello World! channel:#новости", - "DONE": "Сообщение `{{message}}` отправлено в {{channel}}!" + "DONE": "Сообщение `{{message}}` отправлено в {{channel}}" } \ No newline at end of file diff --git a/languages/uk-UA/administration/automod.json b/languages/uk-UA/administration/automod.json index d6179cf7..fe764755 100644 --- a/languages/uk-UA/administration/automod.json +++ b/languages/uk-UA/administration/automod.json @@ -1,9 +1,9 @@ { - "DESCRIPTION": "Увімкнути або вимкнути автовидалення посилань-запрошень", + "DESCRIPTION": "Увімкнути або вимкнути автовидалення спаму та посилань-запрошень", "USAGE": "[state] (#channel)", "EXAMPLES": "automod state:True\nautomod state:False channel:#general\nautomod state:False", - "ENABLED": "Посилання-запрошення будуть видалятися автоматично\nВикористовуйте `automod false #channel` для ігнорування каналу!", - "DISABLED_CHANNEL": "Автомодерація не буде виконуватися в {{channel}}!", - "DISABLED": "Автомодерація відключена!", - "DELETED": "Ваше повідомлення було видалено, тому що містило в собі посилання-запрошення!" + "ENABLED": "Посилання-запрошення будуть видалятися автоматично\nВикористовуйте `automod false #channel` для ігнорування каналу", + "DISABLED_CHANNEL": "Автомодерація не буде виконуватися в {{channel}}", + "DISABLED": "Автомодерація відключена", + "DELETED": "Ваше повідомлення було видалено, тому що містило в собі посилання-запрошення" } \ No newline at end of file diff --git a/languages/uk-UA/administration/autorole.json b/languages/uk-UA/administration/autorole.json index 5fb34fd5..b90ae000 100644 --- a/languages/uk-UA/administration/autorole.json +++ b/languages/uk-UA/administration/autorole.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Увімкнути або вимкнути автопризначення ролі при вході на сервер", "USAGE": "[state] (@role)", "EXAMPLES": "autorole state:True role:@новий\nautorole state:False", - "MISSING_ROLE": "Вкажіть роль!", - "SUCCESS_ENABLED": "Автопризначення ролі увімкнено!\nНові користувачі автоматично отримуватимуть {{role}} під час входу на сервер.", - "SUCCESS_DISABLED": "Автопризначення ролі вимкнено!" + "MISSING_ROLE": "Вкажіть роль", + "SUCCESS_ENABLED": "Автопризначення ролі увімкнено!\nНові користувачі автоматично отримуватимуть {{role}} під час входу на сервер", + "SUCCESS_DISABLED": "Автопризначення ролі вимкнено" } \ No newline at end of file diff --git a/languages/uk-UA/administration/config.json b/languages/uk-UA/administration/config.json index af47c21b..81e72912 100644 --- a/languages/uk-UA/administration/config.json +++ b/languages/uk-UA/administration/config.json @@ -16,10 +16,10 @@ "AUTOMOD_TITLE": "Автомодерація", "AUTOMOD_CONTENT": "Автомодерація включена.\nІгноровані канали: {{channels}}", "AUTO_SANCTIONS": "Автоматичні покарання", - "KICK_CONTENT": "Кік: Після **{{count}}** попереджень.", - "KICK_NOT_DEFINED": "Кік: Не призначено.", - "BAN_CONTENT": "Бан: Після **{{count}}** попереджень.", - "BAN_NOT_DEFINED": "Бан: Не призначено.", + "KICK_CONTENT": "Кік: Після **{{count}}** попереджень", + "KICK_NOT_DEFINED": "Кік: Не призначено", + "BAN_CONTENT": "Бан: Після **{{count}}** попереджень", + "BAN_NOT_DEFINED": "Бан: Не призначено", "DASHBOARD_TITLE": "Змінити налаштування", - "DASHBOARD_CONTENT": "Натисніть сюди, щоб перейти до панелі керування!" + "DASHBOARD_CONTENT": "Натисніть сюди, щоб перейти до панелі керування" } \ No newline at end of file diff --git a/languages/uk-UA/administration/deletemod.json b/languages/uk-UA/administration/deletemod.json index 12c70077..24f04752 100644 --- a/languages/uk-UA/administration/deletemod.json +++ b/languages/uk-UA/administration/deletemod.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Увімкнути або вимкнути видалення команд модерації", "USAGE": "[state]", "EXAMPLES": "deletemod state:True\ndeletemod state:False", - "ENABLED": "Автовидалення команд модерації включено!", - "DISABLED": "Автовидалення команд модерації вимкнено!" + "ENABLED": "Автовидалення команд модерації включено", + "DISABLED": "Автовидалення команд модерації вимкнено" } \ No newline at end of file diff --git a/languages/uk-UA/administration/goodbye.json b/languages/uk-UA/administration/goodbye.json index a9c85dc7..e900a2b9 100644 --- a/languages/uk-UA/administration/goodbye.json +++ b/languages/uk-UA/administration/goodbye.json @@ -3,13 +3,13 @@ "USAGE": "config [state] [#channel] [message] [image] \nАбо [test]", "EXAMPLES": "goodbye state:True channel:#welcome Прощай! image:True\ngoodbye test", "TEST": "Перевірити", - "TEST_SUCCESS": "Тест виконано...", + "TEST_SUCCESS": "Тест виконано", "CONFIG": "Налаштувати", "IMAGE": "Додати картку до повідомлення?", "MESSAGE": "Ваше повідомлення (доступні заміни за допомогою {user}, {server} та {membercount})", - "ENABLED": "Прощальні повідомлення включені до {{channel}}!\nВикористовуйте `goodbye test` для перегляду повідомлення!", - "DISABLED": "Прощальні повідомлення вимкнені!", + "ENABLED": "Прощальні повідомлення включені до {{channel}}!\nВикористовуйте `goodbye test` для перегляду повідомлення", + "DISABLED": "Прощальні повідомлення вимкнені", "DEFAULT_MESSAGE": "Бувай, {user}! Нас тепер {membercount} без тебе :'(", - "IMG_GOODBYE": "Вийшов з {{server}}!", + "IMG_GOODBYE": "Вийшов з {{server}}", "TITLE": "До зустрічі!" } \ No newline at end of file diff --git a/languages/uk-UA/administration/setbirthdays.json b/languages/uk-UA/administration/setbirthdays.json index 6f5f4980..a40281ef 100644 --- a/languages/uk-UA/administration/setbirthdays.json +++ b/languages/uk-UA/administration/setbirthdays.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Встановити канал для вітання з днем народження", "USAGE": "[state] (#channel)", "EXAMPLES": "setbirthdays state:True channel:#birthdays\nsetbirthdays state:False", - "ENABLED": "Привітання включені в канал **{{channel}}**!", - "DISABLED": "Вітання відключені!" + "ENABLED": "Привітання включені в канал **{{channel}}**", + "DISABLED": "Вітання відключені" } \ No newline at end of file diff --git a/languages/uk-UA/administration/setlang.json b/languages/uk-UA/administration/setlang.json index dcbcc80e..8c58288e 100644 --- a/languages/uk-UA/administration/setlang.json +++ b/languages/uk-UA/administration/setlang.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Змінити мову бота на сервері", "USAGE": "[language]", "EXAMPLES": "setlang language:Українська", - "SUCCESS": ":flag_ua: Мова сервера змінена на **{{lang}}**!" + "SUCCESS": ":flag_ua: Мова сервера змінена на **{{lang}}**" } \ No newline at end of file diff --git a/languages/uk-UA/administration/setmodlogs.json b/languages/uk-UA/administration/setmodlogs.json index 0cbedadc..bd2e4c38 100644 --- a/languages/uk-UA/administration/setmodlogs.json +++ b/languages/uk-UA/administration/setmodlogs.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Встановити канал для логів модерації", "USAGE": "[state] (#channel)", "EXAMPLES": "setmodlogs state:True channel:#логи\nsetmodlogs state:False", - "ENABLED": "Логи модерації включені в канал **{{channel}}**!", - "DISABLED": "Логи модерації вимкнені!" + "ENABLED": "Логи модерації включені в канал **{{channel}}**", + "DISABLED": "Логи модерації вимкнені" } \ No newline at end of file diff --git a/languages/uk-UA/administration/setnews.json b/languages/uk-UA/administration/setnews.json index dd3d7b3b..423c07a9 100644 --- a/languages/uk-UA/administration/setnews.json +++ b/languages/uk-UA/administration/setnews.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Встановити канал для новин бота", "USAGE": "[state] (#channel)", "EXAMPLES": "setnews state:True channel:#bot-news\nsetnews state:False", - "ENABLED": "Новини бота включені в канал **{{channel}}**!", - "DISABLED": "Новини бота вимкнені!" + "ENABLED": "Новини бота включені в канал **{{channel}}**", + "DISABLED": "Новини бота вимкнені" } \ No newline at end of file diff --git a/languages/uk-UA/administration/setreports.json b/languages/uk-UA/administration/setreports.json index 3dec1ead..2d39afc0 100644 --- a/languages/uk-UA/administration/setreports.json +++ b/languages/uk-UA/administration/setreports.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Встановити канал для скарг", "USAGE": "[state] (#channel)", "EXAMPLES": "setreports state:True channel:#скарги\nsetreports state:False", - "ENABLED": "Скарги надсилатимуться в **{{channel}}**!", - "DISABLED": "Скарги відключені!" + "ENABLED": "Скарги надсилатимуться в **{{channel}}**", + "DISABLED": "Скарги відключені" } \ No newline at end of file diff --git a/languages/uk-UA/administration/setsuggests.json b/languages/uk-UA/administration/setsuggests.json index e485cec9..85ac38d8 100644 --- a/languages/uk-UA/administration/setsuggests.json +++ b/languages/uk-UA/administration/setsuggests.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Встановити канал для пропозицій", "USAGE": "[state] (#channel)", "EXAMPLES": "setsuggests state:True channel:#пропозиції\nsetsuggests state:False", - "ENABLED": "Пропозиції надсилатимуться в **{{channel}}**!", - "DISABLED": "Пропозиції вимкнено!" + "ENABLED": "Пропозиції надсилатимуться в **{{channel}}**", + "DISABLED": "Пропозиції вимкнено" } \ No newline at end of file diff --git a/languages/uk-UA/administration/stealemoji.json b/languages/uk-UA/administration/stealemoji.json index e7118819..d6ade761 100644 --- a/languages/uk-UA/administration/stealemoji.json +++ b/languages/uk-UA/administration/stealemoji.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Скопіювати емодзі на поточний сервер", "USAGE": "[emoji]", "EXAMPLES": "stealemoji emoji::coolstorybob:", - "SUCCESS": "{{emoji}} додано!", + "SUCCESS": "{{emoji}} додано", "ERROR": "Відбулася помилка при додаванні {{emoji}}.\n```{{e}}```" } \ No newline at end of file diff --git a/languages/uk-UA/administration/welcome.json b/languages/uk-UA/administration/welcome.json index acfcb1a7..1eb29e78 100644 --- a/languages/uk-UA/administration/welcome.json +++ b/languages/uk-UA/administration/welcome.json @@ -2,9 +2,9 @@ "DESCRIPTION": "Увімкнути або вимкнути повідомлення під час входу користувача на сервер", "USAGE": "config [state] [#channel] [message] [image] \nАбо [test]", "EXAMPLES": "welcome state:True channel:#welcome Ласкаво просимо! image:True\nwelcome test", - "ENABLED": "Привітальні повідомлення включені до {{channel}}!\nВикористовуйте `welcome test` для перегляду повідомлення!", - "DISABLED": "Привітання відключено!", - "DEFAULT_MESSAGE": "Ласкаво просимо {user}! Нас тепер {membercount}!", - "IMG_WELCOME": "Ласкаво просимо до {{server}}!", + "ENABLED": "Привітальні повідомлення включені до {{channel}}!\nВикористовуйте `welcome test` для перегляду повідомлення", + "DISABLED": "Привітання відключено", + "DEFAULT_MESSAGE": "Ласкаво просимо {user}! Нас тепер {membercount}", + "IMG_WELCOME": "Ласкаво просимо до {{server}}", "TITLE": "Ласкаво просимо!" } \ No newline at end of file diff --git a/languages/uk-UA/economy/achievements.json b/languages/uk-UA/economy/achievements.json index 9cb14d96..5455de93 100644 --- a/languages/uk-UA/economy/achievements.json +++ b/languages/uk-UA/economy/achievements.json @@ -2,13 +2,13 @@ "DESCRIPTION": "Показати список досягнень користувача", "USAGE": "(@user)", "EXAMPLES": "achievements\nachievements user:@Jonny_Bro#4226", - "SEND_CMD": "Використовуйте свою першу команду!", - "CLAIM_SALARY": "Отримайте зарплату 10 разів!", - "MARRY": "Знайдіть другу половинку і одружуйтеся!", - "SLOTS": "Виграйте 3 рази поспіль у слоти!", - "TIP": "Підтримайте розробника!", - "REP": "Досягніть 20 очок репутації!", - "INVITE": "Запросіть JaBa на ваш сервер!", + "SEND_CMD": "Використовуйте свою першу команду", + "CLAIM_SALARY": "Отримайте зарплату 10 разів", + "MARRY": "Знайдіть другу половинку", + "SLOTS": "Виграйте 3 рази поспіль у слоти", + "TIP": "Підтримайте розробника", + "REP": "Досягніть 20 очок репутації", + "INVITE": "Запросіть JaBa на ваш сервер", "TITLE": "🔥 Досягнення", "PROGRESS": "Прогрес: {{now}}/{{total}} ({{percent}}%)" } \ No newline at end of file diff --git a/languages/uk-UA/economy/bank.json b/languages/uk-UA/economy/bank.json index 41a9f20d..8598f4b9 100644 --- a/languages/uk-UA/economy/bank.json +++ b/languages/uk-UA/economy/bank.json @@ -5,8 +5,8 @@ "OPTION": "Дія", "DEPOSIT": "Внести", "WITHDRAW": "Зняти", - "NOT_ENOUGH_CREDIT": "У вас немає {{money}}!", - "NOT_ENOUGH_BANK": "Недостатньо кредитів на банківському рахунку, необхідно {{money}}!", - "SUCCESS_DEP": "{{money}} внесено на ваш банківський рахунок!", + "NOT_ENOUGH_CREDIT": "У вас немає {{money}}", + "NOT_ENOUGH_BANK": "Недостатньо кредитів на банківському рахунку, необхідно {{money}}", + "SUCCESS_DEP": "{{money}} внесено на ваш банківський рахунок", "SUCCESS_WD": "Ви зняли {{money}} з вашого банківського рахунку" } \ No newline at end of file diff --git a/languages/uk-UA/economy/birthdate.json b/languages/uk-UA/economy/birthdate.json index 64e7564f..f0ec8d38 100644 --- a/languages/uk-UA/economy/birthdate.json +++ b/languages/uk-UA/economy/birthdate.json @@ -6,8 +6,8 @@ "MONTH": "Місяць", "YEAR": "Рік", "DATE_TOO_LOW": "Вам більше 80 років? :eyes:", - "DATE_TOO_HIGH": "Хммм... Ви ще не народилися!", + "DATE_TOO_HIGH": "Хммм... Ви ще не народилися", "HAPPY_BIRTHDAY": "День народження", - "HAPPY_BIRTHDAY_MESSAGE": "Вітаємо {{name}} (<@{{user}}>) з днем народження, сьогодні йому виповнилося {{age}}!", - "SUCCESS": "Вашу дату народження встановлено на **{{date}}**!" + "HAPPY_BIRTHDAY_MESSAGE": "Вітаємо {{name}} (<@{{user}}>) з днем народження, сьогодні йому виповнилося {{age}}", + "SUCCESS": "Вашу дату народження встановлено на **{{date}}**" } \ No newline at end of file diff --git a/languages/uk-UA/economy/divorce.json b/languages/uk-UA/economy/divorce.json index 859d230f..b39b2a3c 100644 --- a/languages/uk-UA/economy/divorce.json +++ b/languages/uk-UA/economy/divorce.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Розлучитися з користувачем", "USAGE": "", "EXAMPLES": "divorce", - "NOT_MARRIED": "Ви не одружені!", - "DIVORCED": "Ви розлучилися з {{user}}!", - "DIVORCED_U": "{{user}} розлучився з вами!" + "NOT_MARRIED": "Ви не одружені", + "DIVORCED": "Ви розлучилися з {{user}}", + "DIVORCED_U": "{{user}} розлучився з вами" } \ No newline at end of file diff --git a/languages/uk-UA/economy/leaderboard.json b/languages/uk-UA/economy/leaderboard.json index 713a6e62..266c0ae2 100644 --- a/languages/uk-UA/economy/leaderboard.json +++ b/languages/uk-UA/economy/leaderboard.json @@ -5,6 +5,6 @@ "LEVEL": "Рівень", "MONEY": "Кредити", "REP": "Репутація", - "MOBILE": ":confused: Я помітив, що ви онлайн з телефону... Таблиця лідерів може відображатися некоректно на маленьких екранах. Спробуйте пізніше з іншого пристрою!", + "MOBILE": ":confused: Я помітив, що ви онлайн з телефону... Таблиця лідерів може відображатися некоректно на маленьких екранах. Спробуйте пізніше з іншого пристрою", "TABLE": "Таблиця лідерів {{name}}" } \ No newline at end of file diff --git a/languages/uk-UA/economy/marry.json b/languages/uk-UA/economy/marry.json index 33e2abe9..3f94410b 100644 --- a/languages/uk-UA/economy/marry.json +++ b/languages/uk-UA/economy/marry.json @@ -2,15 +2,15 @@ "DESCRIPTION": "Одружуйтеся з тим, кого любите", "USAGE": "[@user]", "EXAMPLES": "marry user:@Jonny_Bro#4226", - "ALREADY_MARRIED": "Ви вже одружені! Ви можете розвести за допомогою команди `divorce`.", - "ALREADY_MARRIED_USER": "Ви запізнилися! {{user}} вже одружений!", - "YOURSELF": "Ви не можете одружитися з собою!", - "REQUEST_AUTHOR_TO_AMEMBER": "Ви вже надіслали пропозицію {{user}}!", - "REQUEST_AMEMBER_TO_AUTHOR": "{{user}} надіслала вам пропозицію! Ви можете відмовити або погодитися (або дочекатися закінчення терміну пропозиції).", - "REQUEST_AMEMBER_TO_MEMBER": "{{secondUser}} вже надіслала пропозицію {{firstUser}}!", - "REQUEST_MEMBER_TO_AMEMBER": "{{firstUser}} вже надіслав(а) пропозицію {{secondUser}}! Зачекайте, поки {{secondUser}} погодиться або відмовить на пропозицію {{firstUser}} (або дочекайтеся закінчення терміну пропозиції)!", + "ALREADY_MARRIED": "Ви вже одружені! Ви можете розвести за допомогою команди `divorce`", + "ALREADY_MARRIED_USER": "Ви запізнилися! {{user}} вже одружений", + "YOURSELF": "Ви не можете одружитися з собою", + "REQUEST_AUTHOR_TO_AMEMBER": "Ви вже надіслали пропозицію {{user}}", + "REQUEST_AMEMBER_TO_AUTHOR": "{{user}} надіслала вам пропозицію! Ви можете відмовити або погодитися (або дочекатися закінчення терміну пропозиції)", + "REQUEST_AMEMBER_TO_MEMBER": "{{secondUser}} вже надіслала пропозицію {{firstUser}}", + "REQUEST_MEMBER_TO_AMEMBER": "{{firstUser}} вже надіслав(а) пропозицію {{secondUser}}! Зачекайте, поки {{secondUser}} погодиться або відмовить на пропозицію {{firstUser}} (або дочекайтеся закінчення терміну пропозиції)", "REQUEST": "{{to}}, ви згодні одружитися з {{from}}?", - "DENIED": "{{creator}}, у мене є погані новини... {{partner}} відмовився від вашої пропозиції.", - "SUCCESS": "🎉 Вітаємо! **{{creator}}** і **{{partner}}** тепер перебувають у шлюбі!", + "DENIED": "{{creator}}, у мене є погані новини... {{partner}} відмовився від вашої пропозиції", + "SUCCESS": "🎉 Вітаємо! **{{creator}}** і **{{partner}}** тепер перебувають у шлюбі", "BOT_USER": "Боти завжди самотні ;(" } \ No newline at end of file diff --git a/languages/uk-UA/economy/money.json b/languages/uk-UA/economy/money.json index 414c2824..e7600263 100644 --- a/languages/uk-UA/economy/money.json +++ b/languages/uk-UA/economy/money.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Показати кількість кредитів у користувача", "USAGE": "(@user)", "EXAMPLES": "money\nmoney user:@Jonny_Bro#4226", - "BOT_USER": "Ніхто не знає скільки у ботів грошей...", - "TITLE": "{{username}} Кредити" + "BOT_USER": "У нього занадто багато грошей, я не можу написати це число", + "TITLE": "{{user}} Кредити" } \ No newline at end of file diff --git a/languages/uk-UA/economy/number.json b/languages/uk-UA/economy/number.json index 7d8c2538..19e26b27 100644 --- a/languages/uk-UA/economy/number.json +++ b/languages/uk-UA/economy/number.json @@ -2,11 +2,11 @@ "DESCRIPTION": "Вгадай загадане мною число", "USAGE": "", "EXAMPLES": "number", - "GAME_START": "Я загадав число, починайте!\nНапишіть STOP, якщо хочете зупинити гру!", - "TOO_BIG": "{{user}}, моє число **більше** ніж `{{number}}`!", - "TOO_SMALL": "{{user}}, моє число **менше** ніж `{{number}}`!", - "WON": "{{winner}} виграв {{credits}}!", - "DEFEAT": "Ніхто не вгадав число! Їм було **{{number}}**!", + "GAME_START": "Я загадав число, починайте!\nНапишіть STOP, якщо хочете зупинити гру", + "TOO_BIG": "{{user}}, моє число **більше** ніж `{{number}}`", + "TOO_SMALL": "{{user}}, моє число **менше** ніж `{{number}}`", + "WON": "{{winner}} виграв {{credits}}", + "DEFEAT": "Ніхто не вгадав число! Їм було **{{number}}**", "GAME_STATS": "🎉 | {{winner}} вгадав число! Їм було **{{number}}**!\n\n**Статистика:**\n*-* __**Тривалість**__: {{time}}\n*-* __**Учасники ({{participantCount}})**__: {{participants}}", - "GAME_RUNNING": "Гра вже йде!" + "GAME_RUNNING": "Гра вже йде" } \ No newline at end of file diff --git a/languages/uk-UA/economy/pay.json b/languages/uk-UA/economy/pay.json index 9bd448fd..a8fb9903 100644 --- a/languages/uk-UA/economy/pay.json +++ b/languages/uk-UA/economy/pay.json @@ -2,9 +2,9 @@ "DESCRIPTION": "Надіслати кредити користувачу", "USAGE": "[@user] [amount]", "EXAMPLES": "pay user:@Jonny_Bro#4226 amount:1000", - "BOT_USER": "Ботам не потрібні гроші B)!", - "YOURSELF": "Ви не можете переказати кредити самому собі!", + "BOT_USER": "Ботам не потрібні гроші B)", + "YOURSELF": "Ви не можете переказати кредити самому собі", "INVALID_AMOUNT": "Вкажіть суму", "ENOUGH_MONEY": "У вас немає {{amount}}", - "SUCCESS": "Ви відправили {{user}} {{amount}}!" + "SUCCESS": "Ви відправили {{user}} {{amount}}" } \ No newline at end of file diff --git a/languages/uk-UA/economy/profile.json b/languages/uk-UA/economy/profile.json index 94c11727..dc9af93a 100644 --- a/languages/uk-UA/economy/profile.json +++ b/languages/uk-UA/economy/profile.json @@ -2,10 +2,10 @@ "DESCRIPTION": "Показати профіль користувача", "USAGE": "(@user)", "EXAMPLES": "profile\nprofile user:@Jonny_Bro#4226", - "BOT_USER": "Боти не мають профілю!", + "BOT_USER": "Боти не мають профілю", "TITLE": "Профіль {{user}}", "LINK": "Профіль", - "LINK_TEXT": "Натисніть сюди, щоб відкрити профіль поточного сервера на панелі керування!", + "LINK_TEXT": "Натисніть сюди, щоб відкрити профіль поточного сервера на панелі керування", "BIO": "🔖 Біографія", "CASH": "💵 Кредити", "BANK": "💳 Банк", @@ -17,5 +17,5 @@ "LOVER": "❤ Друга половинка", "REGISTERED": "📅 Профіль створений", "ACHIEVEMENTS": "🔥 Досягнення", - "ACHIEVEMENTS_CONTENT": "Отримайте більше інформації за допомогою `achievements`!" + "ACHIEVEMENTS_CONTENT": "Отримайте більше інформації за допомогою `achievements`" } \ No newline at end of file diff --git a/languages/uk-UA/economy/rep.json b/languages/uk-UA/economy/rep.json index 573ad5d3..40b6c5fd 100644 --- a/languages/uk-UA/economy/rep.json +++ b/languages/uk-UA/economy/rep.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Дати репутацію користувачеві", "USAGE": "[@user]", "EXAMPLES": "rep user:@Jonny_Bro#4226", - "COOLDOWN": "Ви повинні почекати **{{time}}** до наступного використання!", + "COOLDOWN": "Ви повинні почекати **{{time}}** до наступного використання", "BOT_USER": "Боти і так круті B)", - "YOURSELF": "Ви не можете дати поінт репутації самому собі!", - "SUCCESS": "Ви дали поінт репутації {{user}}!" + "YOURSELF": "Ви не можете дати поінт репутації самому собі", + "SUCCESS": "Ви дали поінт репутації {{user}}" } \ No newline at end of file diff --git a/languages/uk-UA/economy/rob.json b/languages/uk-UA/economy/rob.json index f8b9bb56..a61aaf7a 100644 --- a/languages/uk-UA/economy/rob.json +++ b/languages/uk-UA/economy/rob.json @@ -2,13 +2,13 @@ "DESCRIPTION": "Спробувати пограбувати користувача", "USAGE": "[@user] [amount]", "EXAMPLES": "rob user:@Jonny_Bro#4226 amount:100", - "BOT_USER": "Ви не можете пограбувати бота!", - "YOURSELF": "Ви не можете пограбувати себе!", - "NOT_ENOUGH_AUTHOR": "У вас має бути хоча б {{moneyMin}}, щоб грабувати цього користувача (зараз у вас {{moneyCurrent}})!", - "NOT_ENOUGH_MEMBER": "Ви не можете пограбувати {{user}}, тому що у нього немає стільки кредитів!", - "COOLDOWN": "🕵️ {{user}} під захистом.... Спробуйте пізніше!", - "ROB_WON_1": "🎉 | Вітаємо! Поліція не змогла зупинити вас, тому ви успішно вкрали {{money}} у {{user}}!", + "BOT_USER": "Ви не можете пограбувати бота", + "YOURSELF": "Ви не можете пограбувати себе", + "NOT_ENOUGH_AUTHOR": "У вас має бути хоча б {{moneyMin}}, щоб грабувати цього користувача (зараз у вас {{moneyCurrent}})", + "NOT_ENOUGH_MEMBER": "Ви не можете пограбувати {{user}}, тому що у нього немає стільки кредитів", + "COOLDOWN": "🕵️ {{user}} під захистом.... Спробуйте пізніше", + "ROB_WON_1": "🎉 | Вітаємо! Поліція не змогла зупинити вас, тому ви успішно вкрали {{money}} у {{user}}", "ROB_WON_2": "🎉 | Ви пограбували {{user}} на {{money}}", - "ROB_LOSE_1": "🚔 | Поліція зловила вас. Тепер ви повинні заплатити штраф {{fine}}. {{offset}} буде виплачено {{user}}.", - "ROB_LOSE_2": "🚓 | Погані новини... {{user}} вчасно зателефонував до поліції. Ви повинні заплатити штраф {{fine}} і {{offset}} буде виплачено {{user}}." + "ROB_LOSE_1": "🚔 | Поліція зловила вас. Тепер ви повинні заплатити штраф {{fine}}. {{offset}} буде виплачено {{user}}", + "ROB_LOSE_2": "🚓 | Погані новини... {{user}} вчасно зателефонував до поліції. Ви повинні заплатити штраф {{fine}} і {{offset}} буде виплачено {{user}}" } \ No newline at end of file diff --git a/languages/uk-UA/economy/setbio.json b/languages/uk-UA/economy/setbio.json index e6964742..f2b0c380 100644 --- a/languages/uk-UA/economy/setbio.json +++ b/languages/uk-UA/economy/setbio.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Встановити біографію", "USAGE": "[text]", "EXAMPLES": "setbio text:Мене звуть Жоня :shock:", - "MAX_CHARACTERS": "Ваша біографія не повинна перевищувати 150 символів!", - "SUCCESS": "Ваша біографія змінена!" + "MAX_CHARACTERS": "Ваша біографія не повинна перевищувати 150 символів", + "SUCCESS": "Ваша біографія змінена" } \ No newline at end of file diff --git a/languages/uk-UA/economy/slots.json b/languages/uk-UA/economy/slots.json index efafc920..bb6e9b76 100644 --- a/languages/uk-UA/economy/slots.json +++ b/languages/uk-UA/economy/slots.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Казино \"Casino JaBa\"", "USAGE": "[amount]", "EXAMPLES": "slots amount:100", - "DEFEAT": "{{user}} поставив {{money}} і все програв.", - "VICTORY": "{{user}} поставив {{money}} і виграв {{won}}!", - "NOT_ENOUGH": "У вас немає {{money}}." + "DEFEAT": "{{user}} поставив {{money}} і все програв", + "VICTORY": "{{user}} поставив {{money}} і виграв {{won}}", + "NOT_ENOUGH": "У вас немає {{money}}" } \ No newline at end of file diff --git a/languages/uk-UA/economy/tictactoe.json b/languages/uk-UA/economy/tictactoe.json index 799b15ae..02b0a71e 100644 --- a/languages/uk-UA/economy/tictactoe.json +++ b/languages/uk-UA/economy/tictactoe.json @@ -2,20 +2,20 @@ "DESCRIPTION": "Хрестики-нуліки", "USAGE": "[@user]", "EXAMPLES": "tictactoe user:@Jonny_Bro#4226", - "BOT_USER": "Ви не можете грати проти бота!", - "YOURSELF": "Ви не можете грати із самим собою!", - "INVITE_USER": "<@{{opponent}}>, вам запропонували зіграти в хрестики-нуліки!", + "BOT_USER": "Ви не можете грати проти бота", + "YOURSELF": "Ви не можете грати із самим собою", + "INVITE_USER": "<@{{opponent}}>, вам запропонували зіграти в хрестики-нуліки", "REQUEST_SEND": "Запит надіслано <@{{opponent}}>", "REQUEST_WAIT": "Чекаю на відповідь <@{{user}}>", "WAITING": "Чекаю на хід | <@{{user}}>, Ваш емодзі: {{emoji}}", "WON": "<@{{winner}}> ({{emoji}}) виграв!", "CANT_PLAY": "Зараз не ваш хід!", "TIE": "Нічча", - "TIE_DESC": "Ніхто не виграв!", - "NO_ANSWER": "<@{{user}}> не відповів вчасно!", + "TIE_DESC": "Ніхто не виграв", + "NO_ANSWER": "<@{{user}}> не відповів вчасно", "NO_ANSWER_TITLE": "Запит не прийнято вчасно", - "NOT_ANSWERED": "<@{{user}}> не прийняв запит!", - "CANCELED": "Гру скасовано!", - "CANCELED_DESC": "<@{{user}}> відмовився від гри!", + "NOT_ANSWERED": "<@{{user}}> не прийняв запит", + "CANCELED": "Гру скасовано", + "CANCELED_DESC": "<@{{user}}> відмовився від гри", "TIMES_UP": "Час вийшов! Ліміт: 30 секунд" } \ No newline at end of file diff --git a/languages/uk-UA/economy/work.json b/languages/uk-UA/economy/work.json index 5ad8a701..fc058e86 100644 --- a/languages/uk-UA/economy/work.json +++ b/languages/uk-UA/economy/work.json @@ -2,10 +2,10 @@ "DESCRIPTION": "Отримати зарплату", "USAGE": "", "EXAMPLES": "work", - "COOLDOWN": "Ви повинні почекати **{{time}}** до наступної зарплати!", - "AWARD": "Закінчіть серію щоб отримати 200 додаткових кредитів!", + "COOLDOWN": "Ви повинні почекати **{{time}}** до наступної зарплати", + "AWARD": "Закінчіть серію щоб отримати 200 додаткових кредитів", "SALARY": "Зарплата", - "SALARY_CONTENT": "Ви отримали {{won}}!", + "SALARY_CONTENT": "Ви отримали {{won}}", "STREAK": "Серія", - "STREAK_CONTENT": "🎉 Ви отримали 200 додаткових кредитів!" + "STREAK_CONTENT": "🎉 Ви отримали 200 додаткових кредитів" } \ No newline at end of file diff --git a/languages/uk-UA/fun/lovecalc.json b/languages/uk-UA/fun/lovecalc.json index 08b0e9e3..65f4e173 100644 --- a/languages/uk-UA/fun/lovecalc.json +++ b/languages/uk-UA/fun/lovecalc.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Калькулятор кохання", "USAGE": "[@first_member] (@second_member)", "EXAMPLES": "lovecalc first_member:@Jonny_Bro#4226\nlovecalc first_member:@Jonny_Bro#4226 second_member:@JaBa#9042", - "CONTENT": "{{firstMember}} кохає {{secondMember}} на **{{percent}}%**!" + "CONTENT": "{{firstMember}} кохає {{secondMember}} на **{{percent}}%**" } \ No newline at end of file diff --git a/languages/uk-UA/general/afk.json b/languages/uk-UA/general/afk.json index b3577f3f..055a22e7 100644 --- a/languages/uk-UA/general/afk.json +++ b/languages/uk-UA/general/afk.json @@ -3,6 +3,6 @@ "USAGE": "[message]", "EXAMPLES": "afk message:Пісяю =)", "SUCCESS": "Тепер ви AFK через: **{{reason}}**", - "DELETED": "**{{username}}**, ваш статус AFK видалено!", + "DELETED": "**{{user}}**, ваш статус AFK видалено", "IS_AFK": "**{{user}}** зараз AFK, причина:\n```{{reason}}```" } \ No newline at end of file diff --git a/languages/uk-UA/general/minecraft.json b/languages/uk-UA/general/minecraft.json index 83e2e47f..6983b402 100644 --- a/languages/uk-UA/general/minecraft.json +++ b/languages/uk-UA/general/minecraft.json @@ -2,7 +2,7 @@ "DESCRIPTION": "Показати інформацію про Minecraft сервер", "USAGE": "[IP]", "EXAMPLES": "minecraft IP:mc.hypixel.net", - "FAILED": "Сервер недоступний або доступ заборонено!", + "FAILED": "Сервер недоступний або доступ заборонено", "ONLINE": "Онлайн", "OFFLINE": "Оффлайн", "PLAYERS": "{{count}} гравець(и)", diff --git a/languages/uk-UA/general/remindme.json b/languages/uk-UA/general/remindme.json index 0c589ecb..13c309fd 100644 --- a/languages/uk-UA/general/remindme.json +++ b/languages/uk-UA/general/remindme.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Створити нагадування", "USAGE": "[time] [message]", - "EXAMPLES": "remindme time:12h message:Використовувати команду work\nremindme time:5m message:Дістати курку з морозилки!", + "EXAMPLES": "remindme time:12h message:Використовувати команду work\nremindme time:5m message:Дістати курку з морозилки", "TIME": "Час (Наприклад: 10s, 5m, 2h, 1d, 3w)", "SAVED": "Нагадування `{{message}}` збережено **{{time}}**", "TITLE": "Нагадування від JaBa", diff --git a/languages/uk-UA/general/report.json b/languages/uk-UA/general/report.json index 6040003b..a386a281 100644 --- a/languages/uk-UA/general/report.json +++ b/languages/uk-UA/general/report.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Надіслати скаргу до спеціального каналу", "USAGE": "[@user] (message)", "EXAMPLES": "report user:@Jonny_Bro#4226 message:Порушення правил", - "MISSING_CHANNEL": "Канал для скарг не налаштований!", + "MISSING_CHANNEL": "Канал для скарг не налаштований", "INVALID_USER": "Ви не можете поскаржитися на себе", - "SUCCESS": "Ваша скарга надіслана в {{channel}}!", + "SUCCESS": "Ваша скарга надіслана в {{channel}}", "TITLE": "Скарга - {{user}}" } \ No newline at end of file diff --git a/languages/uk-UA/general/serverinfo.json b/languages/uk-UA/general/serverinfo.json index d3aa4e8a..9b4daf83 100644 --- a/languages/uk-UA/general/serverinfo.json +++ b/languages/uk-UA/general/serverinfo.json @@ -5,5 +5,5 @@ "AFK_CHANNEL": "AFK канал", "BOOSTS": "К-сть бустів", "LINK": "Статистика сервера", - "LINK_TEXT": "Натисніть сюди, щоб відкрити статистику сервера на панелі керування!" + "LINK_TEXT": "Натисніть сюди, щоб відкрити статистику сервера на панелі керування" } \ No newline at end of file diff --git a/languages/uk-UA/general/stats.json b/languages/uk-UA/general/stats.json index 1ccf3562..9d783520 100644 --- a/languages/uk-UA/general/stats.json +++ b/languages/uk-UA/general/stats.json @@ -13,5 +13,5 @@ "CREDITS_TITLE": ":heart: • __Додаткова інформація__", "CREDITS_CONTENT": "__**Підтримавші**__:\n**`Добрый Спецназ#8801`** - Тестер, генератор ідей\n__**Перекладачі**__:\n**`[ДАННЫЕ УДАЛЕНЫ]#4507`** - :flag_ua:", "LINKS_TITLE": "• __Посилання__", - "MADE": "Створений Jonny_Bro#4226!" + "MADE": "Створений Jonny_Bro#4226" } \ No newline at end of file diff --git a/languages/uk-UA/general/suggest.json b/languages/uk-UA/general/suggest.json index ce97b88d..9e9e3e53 100644 --- a/languages/uk-UA/general/suggest.json +++ b/languages/uk-UA/general/suggest.json @@ -2,8 +2,8 @@ "DESCRIPTION": "Надіслати пропозицію до спеціального каналу", "USAGE": "[message]", "EXAMPLES": "suggest message:Новий канал #nsfw :smiling_imp:", - "MISSING_CHANNEL": "Канал для пропозицій не налаштований!", - "MISSING_CONTENT": "Введіть пропозицію!", + "MISSING_CHANNEL": "Канал для пропозицій не налаштований", + "MISSING_CONTENT": "Введіть пропозицію", "TITLE": "Пропозиція - {{user}}", - "SUCCESS": "Ваша пропозиція надіслана в {{channel}}!" + "SUCCESS": "Ваша пропозиція надіслана в {{channel}}" } \ No newline at end of file diff --git a/languages/uk-UA/general/whois.json b/languages/uk-UA/general/whois.json index 9216d75a..a6f492b3 100644 --- a/languages/uk-UA/general/whois.json +++ b/languages/uk-UA/general/whois.json @@ -13,7 +13,7 @@ "CURRENCY": "Валюта", "ISP": "Провайдер", "INFO": "Додаткова інформація", - "PROXY": "Цей IP належить Tor, VPN або проксі!", - "MOBILE": "Цей IP використовується для мобільних даних!", - "HOSTING": "Це IP належить хостингу або датацентру!" + "PROXY": "Цей IP належить Tor, VPN або проксі", + "MOBILE": "Цей IP використовується для мобільних даних", + "HOSTING": "Це IP належить хостингу або датацентру" } \ No newline at end of file diff --git a/languages/uk-UA/misc.json b/languages/uk-UA/misc.json index d5cab692..0421be99 100644 --- a/languages/uk-UA/misc.json +++ b/languages/uk-UA/misc.json @@ -1,18 +1,18 @@ { - "BOT_USER": "Ви не можете зробити це з ботом!", - "FORCE_STOP": "Гра примусово закінчена {{user}}, ніхто не переміг!", + "BOT_USER": "Ви не можете зробити це з ботом", + "FORCE_STOP": "Гра примусово закінчена {{user}}, ніхто не переміг", "LEVEL_UP": "Ви досягли наступного рівня! Ваш новий рівень: **{{level}}**", - "GUILD_ONLY": "Цю команду можна використовувати лише на сервері!", - "HELLO_SERVER": "Привіт! Всі мої команди доступні через **/** Використовуйте , щоб отримати список команд!", - "INVALID_NUMBER_RANGE": "Вкажіть число від **{{min}}** до **{{max}}**!", - "MORE_THAN_ZERO": "Вкажіть ціле число більше 0!", + "GUILD_ONLY": "Цю команду можна використовувати лише на сервері", + "HELLO_SERVER": "Привіт! Всі мої команди доступні через **/** Використовуйте , щоб отримати список команд", + "INVALID_NUMBER_RANGE": "Вкажіть число від **{{min}}** до **{{max}}**", + "MORE_THAN_ZERO": "Вкажіть ціле число більше 0", "NO_ARGS": "Агрументи не потрібні", - "NSFW_COMMAND": "Цю команду можна використовувати тільки в NSFW каналі!", - "OPTION_NAN_ALL": "Вкажіть ціле число більше 0 або `all`!", - "OWNER_ONLY": "Цю команду може використовувати тільки власник бота!", - "SELECT_CANCELED": "Вибір скасовано...", + "NSFW_COMMAND": "Цю команду можна використовувати тільки в NSFW каналі", + "OPTION_NAN_ALL": "Вкажіть ціле число більше 0 або `all`", + "OWNER_ONLY": "Цю команду може використовувати тільки власник бота", + "SELECT_CANCELED": "Вибір скасовано", "STATS_FOOTER": "● [Панель керування]({{dashboardLink}})\n● [Сервер підтримки]({{supportLink}})\n● [Запросити JaBa на свій сервер]({{inviteLink}})\n● [Підтримати]({{donateLink}}) (вкажіть ваш Discord тег для видачі ачивки, для інших способів підтримки пишіть в ЛЗ <@{{owner}}>)", - "TIMED_OUT": "Час вийшов!", + "TIMED_OUT": "Час вийшов", "JUMP_TO_PAGE": "Вкажіть сторінку, до якої хочете перейти (максимум **{{length}}**):", "PERMISSIONS": { diff --git a/languages/uk-UA/moderation/clear.json b/languages/uk-UA/moderation/clear.json index 73779658..7a91eba5 100644 --- a/languages/uk-UA/moderation/clear.json +++ b/languages/uk-UA/moderation/clear.json @@ -3,8 +3,9 @@ "USAGE": "[option] (@user)", "EXAMPLES": "clear option:10\nclear option:10 user:@Jonny_Bro#4226\nclear option:all", "OPTION": "Ціле число / all", + "REQUIRE_ID_USER": "Вкажіть користувача або ID", "ALL_CONFIRM": "**Всі повідомлення в каналі будуть видалені! Ви впевнені?**", - "CHANNEL_CLEARED": "Канал очищений!", - "CLEARED": "Було видалено {{amount}}!", - "CLEARED_MEMBER": "Було видалено {{amount}} від {{user}}!" + "CHANNEL_CLEARED": "Канал очищений", + "CLEARED": "Було видалено {{amount}}", + "CLEARED_MEMBER": "Було видалено {{amount}} від {{user}}" } \ No newline at end of file diff --git a/languages/uk-UA/moderation/clearwarns.json b/languages/uk-UA/moderation/clearwarns.json index 2cd935b4..ddd2d512 100644 --- a/languages/uk-UA/moderation/clearwarns.json +++ b/languages/uk-UA/moderation/clearwarns.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Зняти усі попередження з користувача", "USAGE": "[@user]", "EXAMPLES": "clearwarns user:@Jonny_Bro#4226", - "SUCCESS": "Попередження користувача {{user}} видалено!" + "SUCCESS": "Попередження користувача {{user}} видалено" } \ No newline at end of file diff --git a/languages/uk-UA/moderation/giveaway.json b/languages/uk-UA/moderation/giveaway.json index 708be8b1..9c1e3a6b 100644 --- a/languages/uk-UA/moderation/giveaway.json +++ b/languages/uk-UA/moderation/giveaway.json @@ -10,24 +10,24 @@ "WINNERS_COUNT": "Кількість переможців", "PRIZE": "Приз", "ISDROP": "Це дроп?", - "NOT_FOUND": "Роздач з ID `{{messageId}}` не знайдено!", - "NOT_FOUND_ENDED": "**Закінчених** роздач з ID `{{messageId}} не знайдено!`!", - "MAX_DURATION": "Максимальна тривалість роздачі - 10 днів.", - "MAX_COUNT": "Можно створити лише 5 роздач.", + "NOT_FOUND": "Роздач з ID `{{messageId}}` не знайдено", + "NOT_FOUND_ENDED": "**Закінчених** роздач з ID `{{messageId}} не знайдено!`", + "MAX_DURATION": "Максимальна тривалість роздачі - 10 днів", + "MAX_COUNT": "Можно створити лише 5 роздач", "TITLE": "🎉🎉 **РОЗДАЧА** 🎉🎉", "ENDED": "🎉🎉 **РОЗДАЧА ЗАКІНЧЕНА** 🎉🎉", - "TIME_REMAINING": "Час, що залишився: **{duration}**!", - "INVITE_PARTICIPATE": "Відреагуйте 🎉, щоб брати участь!", - "WIN_MESSAGE": "Вітаємо, {winners}! Ви виграли **{this.prize}**!", + "TIME_REMAINING": "Час, що залишився: **{duration}**", + "INVITE_PARTICIPATE": "Відреагуйте 🎉, щоб брати участь", + "WIN_MESSAGE": "Вітаємо, {winners}! Ви виграли **{this.prize}**", "DRAWING": "Закінчується: {timestamp}", - "DROP": "Будь першим, хто відреагує 🎉!", + "DROP": "Будь першим, хто відреагує 🎉", "FOOTER": "Роздача", - "NO_WINNER": "Роздача скасована, ніхто не брав участі.", + "NO_WINNER": "Роздача скасована, ніхто не брав участі", "WINNERS": "Переможець(и):", "END_AT": "Закінчилась:", "HOSTED_BY": "Організатор: {this.hostedBy}", - "REROLL_CONGRAT": "🎉 Новий(і) переможець(и): {winners}! Вітаємо!", - "REROLL_ERROR": "Немає дійсних учасників, ніхто не виграв!", + "REROLL_CONGRAT": "🎉 Новий(і) переможець(и): {winners}! Вітаємо", + "REROLL_ERROR": "Немає дійсних учасників, ніхто не виграв", "GIVEAWAY_CREATED": "Роздача розпочата", "GIVEAWAY_REROLLED": "Роздача перезапущена", "GIVEAWAY_ENDED": "Роздача примусово закінчена", diff --git a/languages/uk-UA/moderation/unban.json b/languages/uk-UA/moderation/unban.json index 466b2e85..9be2e273 100644 --- a/languages/uk-UA/moderation/unban.json +++ b/languages/uk-UA/moderation/unban.json @@ -4,5 +4,5 @@ "EXAMPLES": "unban user_id:281361531411890186", "ID": "ID користувача", "NOT_BANNED": "Користувач з ID **{{id}}** не знайдено", - "UNBANNED": "**{{id}}** розбанений!" + "UNBANNED": "**{{id}}** розбанений" } \ No newline at end of file diff --git a/languages/uk-UA/moderation/warns.json b/languages/uk-UA/moderation/warns.json index eee04380..543a844b 100644 --- a/languages/uk-UA/moderation/warns.json +++ b/languages/uk-UA/moderation/warns.json @@ -3,5 +3,5 @@ "USAGE": "[@user]", "EXAMPLES": "warns user:@Jonny_Bro#4226", "SANCTIONS_OF": "Порушення {{member}}", - "NO_SANCTIONS": "**{{member}}** не має порушень." + "NO_SANCTIONS": "**{{member}}** не має порушень" } \ No newline at end of file diff --git a/languages/uk-UA/music/loop.json b/languages/uk-UA/music/loop.json index 81680d03..a88aab3f 100644 --- a/languages/uk-UA/music/loop.json +++ b/languages/uk-UA/music/loop.json @@ -1,7 +1,8 @@ { "DESCRIPTION": "Вибір режиму повтору", - "USAGE": "", - "EXAMPLES": "loop", + "USAGE": "[option]", + "EXAMPLES": "loop option:1", + "OPTION": "Режим відтворення", "AUTOPLAY": "Автовідтворення", "QUEUE": "Черга", "TRACK": "Поточний трек", diff --git a/languages/uk-UA/music/play.json b/languages/uk-UA/music/play.json index 331d5e36..29a97b90 100644 --- a/languages/uk-UA/music/play.json +++ b/languages/uk-UA/music/play.json @@ -2,16 +2,16 @@ "DESCRIPTION": "Почати відтворення треку", "USAGE": "[query]", "EXAMPLES": "play query:Never Gonna Give You Up", - "QUERY": "Назва / Пряме посилання / Посилання на YouTube або SoundCloud", - "NO_VOICE_CHANNEL": "Ви повинні знаходитися в голосовому каналі!", - "VOICE_CHANNEL_CONNECT": "Я не можу приєднатися до вашого голосового каналу!", + "QUERY": "Назва / Пряме посилання / Посилання на YouTube, Spotify або SoundCloud", + "NO_VOICE_CHANNEL": "Ви повинні знаходитися в голосовому каналі", + "VOICE_CHANNEL_CONNECT": "Я не можу приєднатися до вашого голосового каналу", "RESULTS_TITLE": "Результати пошуку за \"{{query}}\"", "NO_RESULT": "За запитом `{{query}}` нічого не знайдено", "NOW_PLAYING": "Зараз грає **{{songName}}**", "NOT_PLAYING": "На сервері зараз нічого не відтворюється", "QUEUE_ENDED": "Черга закінчена", "ADDED_QUEUE": "**{{songName}}** додано до черги", - "STOP_DISCONNECTED": "Відтворення закінчено, тому що я вийшов з голосового каналу.", - "STOP_EMPTY": "Відтворення закінчено, тому що всі вийшли з голосового каналу.", + "STOP_DISCONNECTED": "Відтворення закінчено, тому що я вийшов з голосового каналу", + "STOP_EMPTY": "Відтворення закінчено, тому що всі вийшли з голосового каналу", "ERR_OCCURRED": "Відбулася помилка...\n```{{error}}```" } \ No newline at end of file diff --git a/languages/uk-UA/music/seek.json b/languages/uk-UA/music/seek.json index c6bac2df..fdc76618 100644 --- a/languages/uk-UA/music/seek.json +++ b/languages/uk-UA/music/seek.json @@ -1,5 +1,5 @@ { - "DESCRIPTION": "Перемотати вперед у поточному треку", + "DESCRIPTION": "Перемотати поточний трек на цю позицію", "USAGE": "[time]", "EXAMPLES": "seek time:60", "TIME": "Час у секундах", diff --git a/languages/uk-UA/music/volume.json b/languages/uk-UA/music/volume.json new file mode 100644 index 00000000..9886fca0 --- /dev/null +++ b/languages/uk-UA/music/volume.json @@ -0,0 +1,6 @@ +{ + "DESCRIPTION": "Встановити гучність бота", + "USAGE": "[int]", + "EXAMPLES": "volume 50", + "SUCCESS": "Гучність встановлена на **{{volume}}**" +} \ No newline at end of file diff --git a/languages/uk-UA/nsfw/nsfw.json b/languages/uk-UA/nsfw/pic.json similarity index 79% rename from languages/uk-UA/nsfw/nsfw.json rename to languages/uk-UA/nsfw/pic.json index e398a7ec..827c4e68 100644 --- a/languages/uk-UA/nsfw/nsfw.json +++ b/languages/uk-UA/nsfw/pic.json @@ -1,5 +1,5 @@ { "DESCRIPTION": "Отримати NSFW зображення", "USAGE": "", - "EXAMPLES": "nsfw" + "EXAMPLES": "pic" } \ No newline at end of file diff --git a/languages/uk-UA/owner/announcement.json b/languages/uk-UA/owner/announcement.json index f58dcdd5..3ec61187 100644 --- a/languages/uk-UA/owner/announcement.json +++ b/languages/uk-UA/owner/announcement.json @@ -4,7 +4,7 @@ "EXAMPLES": "announcement message:Оновлення v1.0! tag:True", "TAG": "Підставити @everyone у повідомлення?", "IMPORTANT": "Важливе? (Надіслати в перший доступний канал на сервері, навіть якщо не налаштований News)", - "TOO_LONG": "Текст повинен бути коротшим за 1000 символів!", + "TOO_LONG": "Текст повинен бути коротшим за 1000 символів", "TITLE": "📢 Оголошення:", - "SENDED": "Оновлення надіслано на всі сервери!" + "SENDED": "Оновлення надіслано на всі сервери" } \ No newline at end of file diff --git a/languages/uk-UA/owner/debug.json b/languages/uk-UA/owner/debug.json index ed31a7b7..c4606799 100644 --- a/languages/uk-UA/owner/debug.json +++ b/languages/uk-UA/owner/debug.json @@ -5,9 +5,9 @@ "TYPE": "Тип даних", "SET": "Встановити значення", "ADD": "Додати до значення", - "SUCCESS_LEVEL": "Рівень користувача **{{username}}** змінено на **{{amount}}**!", - "SUCCESS_XP": "XP користувача **{{username}}** змінено на **{{amount}}**!", - "SUCCESS_CREDITS": "Кредити користувача **{{username}}** змінені на **{{amount}}**!", - "SUCCESS_BANK": "Банк користувача **{{username}}** змінено на **{{amount}}**!", - "SUCCESS_REP": "Поінти репутації користувача **{{username}}** змінені на **{{amount}}**!" + "SUCCESS_LEVEL": "Рівень користувача **{{user}}** змінено на **{{amount}}**", + "SUCCESS_XP": "XP користувача **{{user}}** змінено на **{{amount}}**", + "SUCCESS_CREDITS": "Кредити користувача **{{user}}** змінені на **{{amount}}**", + "SUCCESS_BANK": "Банк користувача **{{user}}** змінено на **{{amount}}**", + "SUCCESS_REP": "Поінти репутації користувача **{{user}}** змінені на **{{amount}}**" } \ No newline at end of file diff --git a/languages/uk-UA/owner/reload.json b/languages/uk-UA/owner/reload.json index b15caa70..ed81762d 100644 --- a/languages/uk-UA/owner/reload.json +++ b/languages/uk-UA/owner/reload.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Перезавантажити команду", "USAGE": "[command]", "EXAMPLES": "reload command:help", - "NOT_FOUND": "Команда `{{command}}` не знайдена!", - "SUCCESS": "Команда `{{command}}` успішно перезавантажена!" + "NOT_FOUND": "Команда `{{command}}` не знайдена", + "SUCCESS": "Команда `{{command}}` успішно перезавантажена" } \ No newline at end of file diff --git a/languages/uk-UA/owner/say.json b/languages/uk-UA/owner/say.json index 76faf54b..48f0daa7 100644 --- a/languages/uk-UA/owner/say.json +++ b/languages/uk-UA/owner/say.json @@ -2,5 +2,5 @@ "DESCRIPTION": "Написати повідомлення від імені бота", "USAGE": "[message] (#channel)", "EXAMPLES": "say message:Hello World!\nsay message:Hello World! channel:#новини", - "DONE": "Повідомлення `{{message}}` надіслано до {{channel}}!" + "DONE": "Повідомлення `{{message}}` надіслано до {{channel}}" } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c38ead4e..532ac169 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "jaba", - "version": "4.2.0", + "version": "4.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "jaba", - "version": "4.2.0", + "version": "4.2.1", "license": "ISC", "dependencies": { "@discord-player/extractor": "^4.1.2", diff --git a/package.json b/package.json index 3184ad21..77641b31 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jaba", - "version": "4.2.0", + "version": "4.2.1", "description": "My Discord Bot", "main": "index.js", "private": true,