diff --git a/base/JaBa.js b/base/JaBa.js index 5c32ba58..4aec6a59 100644 --- a/base/JaBa.js +++ b/base/JaBa.js @@ -141,6 +141,17 @@ class JaBa extends Client { return (type === "to" ? m.toNow(noPrefix) : m.fromNow(noPrefix)); }; + getNoun(number, one, two, five) { + let n = Math.abs(number); + n %= 100; + if (n >= 5 && n <= 20) return five; + n %= 10; + if (n === 1) return one; + if (n >= 2 && n <= 4) return two; + + return five; + }; + // This function is used to load a command and add it to the collection loadCommand(commandPath, commandName) { try { diff --git a/commands/Administration/addemoji.js b/commands/Administration/addemoji.js index 4cb9d882..3196e345 100644 --- a/commands/Administration/addemoji.js +++ b/commands/Administration/addemoji.js @@ -26,7 +26,7 @@ class Addemoji extends Command { message.guild.emojis .create(URL, name) - .then(emoji => message.success("administration/addemoji:SUCCESS", { emojiName: emoji.name })) + .then(emoji => message.success("administration/addemoji:SUCCESS", { emojiName: `<:${emoji.name}:${emoji.id}>` })) .catch(() => message.error("administration/addemoji:ERROR", { emojiName: name })); } }; diff --git a/commands/Administration/setbirthdays.js b/commands/Administration/setbirthdays.js index 67d8175c..e56eed79 100644 --- a/commands/Administration/setbirthdays.js +++ b/commands/Administration/setbirthdays.js @@ -29,13 +29,13 @@ class Setbirthdays extends Command { data.guild.plugins.birthdays = null; data.guild.markModified("plugins.birthdays"); await data.guild.save(); - return message.success("administration/setbirthdays:SUCCESS_DISABLED"); + return message.success("administration/setbirthdays:DISABLED"); } else { const channel = sentChannel || message.channel; data.guild.plugins.birthdays = channel.id; data.guild.markModified("plugins.birthdays"); await data.guild.save(); - return message.success("administration/setbirthdays:SUCCESS_ENABLED", { + return message.success("administration/setbirthdays:ENABLED", { channel: channel.toString() }); }; diff --git a/commands/Administration/setmodlogs.js b/commands/Administration/setmodlogs.js index 77d2a305..e4927578 100644 --- a/commands/Administration/setmodlogs.js +++ b/commands/Administration/setmodlogs.js @@ -29,13 +29,13 @@ class Setmodlogs extends Command { data.guild.plugins.modlogs = null; data.guild.markModified("plugins.modlogs"); await data.guild.save(); - return message.success("administration/setmodlogs:SUCCESS_DISABLED"); + return message.success("administration/setmodlogs:DISABLED"); } else { const channel = sentChannel || message.channel; data.guild.plugins.modlogs = channel.id; data.guild.markModified("plugins.modlogs"); await data.guild.save(); - return message.success("administration/setmodlogs:SUCCESS_ENABLED", { + return message.success("administration/setmodlogs:ENABLED", { channel: channel.toString() }); }; diff --git a/commands/Administration/setreports.js b/commands/Administration/setreports.js index da86dc3a..ef6cb3f9 100644 --- a/commands/Administration/setreports.js +++ b/commands/Administration/setreports.js @@ -29,13 +29,13 @@ class Setreports extends Command { data.guild.plugins.reports = null; data.guild.markModified("plugins.reports"); await data.guild.save(); - return message.success("administration/setreports:SUCCESS_DISABLED"); + return message.success("administration/setreports:DISABLED"); } else { const channel = sentChannel || message.channel; data.guild.plugins.reports = channel.id; data.guild.markModified("plugins.reports"); await data.guild.save(); - return message.success("administration/setreports:SUCCESS_ENABLED", { + return message.success("administration/setreports:ENABLED", { channel: channel.toString() }); }; diff --git a/commands/Administration/setsuggests.js b/commands/Administration/setsuggests.js index e1dcbccd..b600fbd4 100644 --- a/commands/Administration/setsuggests.js +++ b/commands/Administration/setsuggests.js @@ -29,13 +29,13 @@ class Setsuggests extends Command { data.guild.plugins.suggestions = null; data.guild.markModified("plugins.suggestions"); await data.guild.save(); - return message.success("administration/setsuggests:SUCCESS_DISABLED"); + return message.success("administration/setsuggests:DISABLED"); } else { const channel = sentChannel || message.channel; data.guild.plugins.suggestions = channel.id; data.guild.markModified("plugins.suggestions"); await data.guild.save(); - return message.success("administration/setsuggests:SUCCESS_ENABLED", { + return message.success("administration/setsuggests:ENABLED", { channel: channel.toString() }); }; diff --git a/commands/Economy/birthdate.js b/commands/Economy/birthdate.js index cd15ebd6..e535c40a 100644 --- a/commands/Economy/birthdate.js +++ b/commands/Economy/birthdate.js @@ -26,14 +26,14 @@ class Birthdate extends Command { // Gets the string of the date const match = date.match(/\d+/g); - if (!match) return message.error("economy/birthdate:INVALID_DATE_FORMAT"); + if (!match) return message.error("economy/birthdate:INVALID_DATE"); const tday = +match[0], tmonth = +match[1] - 1; let tyear = +match[2]; if (tyear < 100) tyear += tyear < 50 ? 2000 : 1900; const d = new Date(tyear, tmonth, tday); - if (!(tday == d.getDate() && tmonth == d.getMonth() && tyear == d.getFullYear())) return message.error("economy/birthdate:INVALID_DATE_FORMAT"); + if (!(tday == d.getDate() && tmonth == d.getMonth() && tyear == d.getFullYear())) return message.error("economy/birthdate:INVALID_DATE"); if (d.getTime() > Date.now()) return message.error("economy/birthdate:DATE_TOO_HIGH"); if (d.getTime() < (Date.now() - 2.523e+12)) return message.error("economy/birthdate:DATE_TOO_LOW"); diff --git a/commands/Economy/deposit.js b/commands/Economy/deposit.js index 8626c370..8ca35158 100644 --- a/commands/Economy/deposit.js +++ b/commands/Economy/deposit.js @@ -28,7 +28,9 @@ class Deposit extends Command { amount = parseInt(amount, 10); }; - if (data.memberData.money < amount) return message.error("economy/deposit:NOT_ENOUGH_CREDIT", { money: amount }); + if (data.memberData.money < amount) return message.error("economy/deposit:NOT_ENOUGH_CREDIT", { + money: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` + }); data.memberData.money = data.memberData.money - amount; data.memberData.bankSold = data.memberData.bankSold + amount; diff --git a/commands/Economy/pay.js b/commands/Economy/pay.js index 72b88f66..40d785d7 100644 --- a/commands/Economy/pay.js +++ b/commands/Economy/pay.js @@ -26,7 +26,9 @@ class Pay extends Command { if (!sentAmount || isNaN(sentAmount) || parseInt(sentAmount, 10) <= 0) return message.error("economy/pay:INVALID_AMOUNT", { username: member.user.tag }); const amount = Math.ceil(parseInt(sentAmount, 10)); - if (amount > data.memberData.money) return message.error("economy/pay:ENOUGH_MONEY", { amount, username: member.user.tag }); + if (amount > data.memberData.money) return message.error("economy/pay:ENOUGH_MONEY", { + amount: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDITS:1"), message.translate("misc:NOUNS:CREDITS:2"), message.translate("misc:NOUNS:CREDITS:5"))}` + }); const memberData = await this.client.findOrCreateMember({ id: member.id, @@ -40,7 +42,7 @@ class Pay extends Command { memberData.save(); message.success("economy/pay:SUCCESS", { - amount, + amount: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, username: member.user.tag }); } diff --git a/commands/Economy/profile.js b/commands/Economy/profile.js index 252eba91..c4c985d8 100644 --- a/commands/Economy/profile.js +++ b/commands/Economy/profile.js @@ -65,18 +65,10 @@ class Profile extends Command { }]) .setImage("attachment://achievements.png") .addField(message.translate("economy/profile:BIO"), userData.bio ? userData.bio : message.translate("economy/profile:NO_BIO")) - .addField(message.translate("economy/profile:CASH"), message.translate("economy/profile:MONEY", { - money: memberData.money - }), true) - .addField(message.translate("economy/profile:BANK"), message.translate("economy/profile:MONEY", { - money: memberData.bankSold - }), true) - .addField(message.translate("economy/profile:GLOBAL"), message.translate("economy/profile:MONEY", { - money: globalMoney - }), true) - .addField(message.translate("economy/profile:REPUTATION"), message.translate("economy/profile:REP_POINTS", { - points: userData.rep - }), true) + .addField(message.translate("economy/profile:CASH"), `**${memberData.money}** ${this.client.getNoun(memberData.money, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, true) + .addField(message.translate("economy/profile:BANK"), `**${memberData.bankSold}** ${this.client.getNoun(memberData.bankSold, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, true) + .addField(message.translate("economy/profile:GLOBAL"), `**${globalMoney}** ${this.client.getNoun(globalMoney, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, true) + .addField(message.translate("economy/profile:REPUTATION"), `**${userData.rep}** ${this.client.getNoun(userData.rep, message.translate("misc:NOUNS:POINTS:1"), message.translate("misc:NOUNS:POINTS:2"), message.translate("misc:NOUNS:POINTS:5"))}`, true) .addField(message.translate("economy/profile:LEVEL"), `**${memberData.level}**`, true) .addField(message.translate("economy/profile:EXP"), `**${memberData.exp}/${5 * (memberData.level * memberData.level) + 80 * memberData.level + 100}** xp`, true) .addField(message.translate("economy/profile:REGISTERED"), message.printDate(new Date(memberData.registeredAt)), true) diff --git a/commands/Economy/rob.js b/commands/Economy/rob.js index 8d24e62d..518b1dd8 100644 --- a/commands/Economy/rob.js +++ b/commands/Economy/rob.js @@ -41,14 +41,13 @@ class Rob extends Command { amountToRob = Math.floor(parseInt(amountToRob, 10)); if (amountToRob > memberData.money) return message.error("economy/rob:NOT_ENOUGH_MEMBER", { - username: member.user.username, - money: amountToRob + username: member.user.username }); const potentiallyLose = Math.floor(amountToRob * 1.5); if (potentiallyLose > data.memberData.money) return message.error("economy/rob:NOT_ENOUGH_AUTHOR", { - moneyMin: potentiallyLose, - moneyCurrent: data.memberData.money + moneyMin: `${potentiallyLose} ${this.client.getNoun(potentiallyLose, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, + moneyCurrent: `${data.memberData.money} ${this.client.getNoun(data.memberData.money, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` }); const itsAWon = Math.floor(this.client.functions.randomNum(0, 100) < 25); @@ -60,7 +59,7 @@ class Rob extends Command { await memberData.save(); const randomNum = Math.floor(this.client.functions.randomNum(1, 3)); message.sendT("economy/rob:ROB_WON_" + randomNum, { - money: amountToRob, + money: `${amountToRob} ${this.client.getNoun(amountToRob, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, username: member.user.username }); data.memberData.money += amountToRob; @@ -71,8 +70,8 @@ class Rob extends Command { const won = Math.floor(0.9 * amountToRob); const randomNum = Math.floor(this.client.functions.randomNum(1, 3)); message.sendT("economy/rob:ROB_LOSE_" + randomNum, { - fine: potentiallyLose, - offset: won, + fine: `${potentiallyLose} ${this.client.getNoun(potentiallyLose, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, + offset: `${won} ${this.client.getNoun(won, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, username: member.user.username }); data.memberData.money -= potentiallyLose; diff --git a/commands/Economy/slots.js b/commands/Economy/slots.js index d94229c1..29b15768 100644 --- a/commands/Economy/slots.js +++ b/commands/Economy/slots.js @@ -32,8 +32,10 @@ class Slots extends Command { // Gets the amount provided let amount = args[0]; - if (!amount || isNaN(amount) || amount < 1) amount = 1; - if (amount > data.memberData.money) return message.error("economy/slots:NOT_ENOUGH", { money: amount }); + if (!amount || isNaN(amount) || amount < 1) amount = 50; + if (amount > data.memberData.money) return message.error("economy/slots:NOT_ENOUGH", { + money: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` + }); amount = Math.round(amount); @@ -78,8 +80,8 @@ class Slots extends Command { tmsg.edit(msg); const credits = getCredits(amount, true); message.channel.send("**!! ДЖЕКПОТ !!**\n" + message.translate("economy/slots:VICTORY", { - money: amount, - won: credits, + money: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, + won: `${credits} ${this.client.getNoun(credits, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, username: message.author.username })); const toAdd = credits - amount; @@ -133,7 +135,7 @@ class Slots extends Command { msg += "| : : : **" + (message.translate("common:DEFEAT").toUpperCase()) + "** : : : |"; message.channel.send(message.translate("economy/slots:DEFEAT", { - money: amount, + money: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}`, username: message.author.username })); data.memberData.money = data.memberData.money - amount; diff --git a/commands/Economy/withdraw.js b/commands/Economy/withdraw.js index e61f9199..84180b89 100644 --- a/commands/Economy/withdraw.js +++ b/commands/Economy/withdraw.js @@ -21,7 +21,6 @@ class Withdraw extends Command { if (!(parseInt(data.memberData.bankSold, 10) > 0)) return message.error("economy/withdraw:NO_CREDIT"); - if (args[0] === "all") { amount = parseInt(data.memberData.bankSold, 10); } else { @@ -29,14 +28,16 @@ class Withdraw extends Command { amount = parseInt(amount, 10); }; - if (data.memberData.bankSold < amount) return message.error("economy/withdraw:NOT_ENOUGH", { money: amount }); + if (data.memberData.bankSold < amount) return message.error("economy/withdraw:NOT_ENOUGH", { + money: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` + }); data.memberData.money = data.memberData.money + amount; data.memberData.bankSold = data.memberData.bankSold - amount; data.memberData.save(); message.success("economy/withdraw:SUCCESS", { - money: amount + money: `${amount} ${this.client.getNoun(amount, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` }); } }; diff --git a/commands/Economy/work.js b/commands/Economy/work.js index 1373650f..df30245a 100644 --- a/commands/Economy/work.js +++ b/commands/Economy/work.js @@ -59,7 +59,7 @@ class Work extends Command { if (data.memberData.workStreak >= 5) { won += 200; embed.addField(message.translate("economy/work:SALARY"), message.translate("economy/work:SALARY_CONTENT", { - won + won: `${won} ${this.client.getNoun(won, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` })) .addField(message.translate("economy/work:STREAK"), message.translate("economy/work:STREAK_CONTENT")); data.memberData.workStreak = 0; @@ -71,7 +71,7 @@ class Work extends Command { }; }; embed.addField(message.translate("economy/work:SALARY"), message.translate("economy/work:SALARY_CONTENT", { - won + won: `${won} ${this.client.getNoun(won, message.translate("misc:NOUNS:CREDIT:1"), message.translate("misc:NOUNS:CREDIT:2"), message.translate("misc:NOUNS:CREDIT:5"))}` })) .addField(message.translate("economy/work:STREAK"), award.join("")); }; diff --git a/commands/General/quote.js b/commands/General/quote.js index 35186522..1753803b 100644 --- a/commands/General/quote.js +++ b/commands/General/quote.js @@ -43,8 +43,8 @@ class Quote extends Command { return; }; - let channel = message.mentions.channels.first(); - if (args[1] && !channel) { + let channel = args[1]; + if (args[1]) { channel = this.client.channels.cache.get(args[1]); if (!channel) { message.author.send(message.translate("general/quote:NO_MESSAGE_ID")).then(() => { diff --git a/commands/General/serverinfo.js b/commands/General/serverinfo.js index 227a0e8b..032155ab 100644 --- a/commands/General/serverinfo.js +++ b/commands/General/serverinfo.js @@ -23,7 +23,7 @@ class Serverinfo extends Command { if (args[0]) { let found = this.client.guilds.cache.get(args[0]); if (!found) { - found = this.client.guilds.cache.find((g) => g.name === args.join(" ")); + found = this.client.guilds.cache.find(g => g.name.includes(args.join(" ")) || g.id === args[0]); if (found) guild = found; }; }; @@ -39,22 +39,19 @@ class Serverinfo extends Command { })) .addField(this.client.customEmojis.title + message.translate("common:NAME"), guild.name, true) .addField(this.client.customEmojis.calendar + message.translate("common:CREATION"), message.printDate(guild.createdAt), true) - .addField(this.client.customEmojis.users + message.translate("common:MEMBERS"), message.translate("general/serverinfo:MEMBERS", { - count: guild.members.cache.filter(m => !m.user.bot).size - }) + "\n" + message.translate("general/serverinfo:BOTS", { - count: guild.members.cache.filter(m => m.user.bot).size - }), true) + .addField(this.client.customEmojis.users + message.translate("common:MEMBERS"), + `${guild.members.cache.filter(m => !m.user.bot).size} ${this.client.getNoun(guild.members.cache.filter(m => !m.user.bot).size, message.translate("misc:NOUNS:MEMBERS:1"), message.translate("misc:NOUNS:MEMBERS:2"), message.translate("misc:NOUNS:MEMBERS:5"))}` + + "\n" + `${guild.members.cache.filter(m => m.user.bot).size} ${this.client.getNoun(guild.members.cache.filter(m => m.user.bot).size, message.translate("misc:NOUNS:BOTS:1"), message.translate("misc:NOUNS:BOTS:2"), message.translate("misc:NOUNS:BOTS:5"))}`, true + ) .addField(this.client.customEmojis.afk + message.translate("general/serverinfo:AFK_CHANNEL"), guild.afkChannel || message.translate("general/serverinfo:NO_AFK_CHANNEL"), true) .addField(this.client.customEmojis.id + message.translate("common:ID"), guild.id, true) .addField(this.client.customEmojis.crown + message.translate("common:OWNER"), guild.owner, true) .addField(this.client.customEmojis.boost + message.translate("general/serverinfo:BOOSTS"), guild.premiumSubscriptionCount || 0, true) - .addField(this.client.customEmojis.channels + message.translate("common:CHANNELS"), message.translate("general/serverinfo:TEXT_CHANNELS", { - count: guild.channels.cache.filter(c => c.type === "text").size - }) + "\n" + message.translate("general/serverinfo:VOICE_CHANNELS", { - count: guild.channels.cache.filter(c => c.type === "voice").size - }) + "\n" + message.translate("general/serverinfo:CAT_CHANNELS", { - count: guild.channels.cache.filter(c => c.type === "category").size - }), true) + .addField(this.client.customEmojis.channels + message.translate("common:CHANNELS"), + `${guild.channels.cache.filter(c => c.type === "text").size} ${this.client.getNoun(guild.channels.cache.filter(c => c.type === "text").size, message.translate("misc:NOUNS:TEXT:1"), message.translate("misc:NOUNS:TEXT:2"), message.translate("misc:NOUNS:TEXT:5"))}` + + "\n" + `${guild.channels.cache.filter(c => c.type === "voice").size} ${this.client.getNoun(guild.channels.cache.filter(c => c.type === "voice").size, message.translate("misc:NOUNS:VOICE:1"), message.translate("misc:NOUNS:VOICE:2"), message.translate("misc:NOUNS:VOICE:5"))}` + + "\n" + `${guild.channels.cache.filter(c => c.type === "voice").size} ${this.client.getNoun(guild.channels.cache.filter(c => c.type === "category").size, message.translate("misc:NOUNS:CATEGORY:1"), message.translate("misc:NOUNS:CATEGORY:2"), message.translate("misc:NOUNS:CATEGORY:5"))}`, true + ) .setColor(data.config.embed.color) .setFooter(data.config.embed.footer); diff --git a/commands/General/stats.js b/commands/General/stats.js index 4f89ff0c..ed781a0f 100644 --- a/commands/General/stats.js +++ b/commands/General/stats.js @@ -33,7 +33,7 @@ class Stats extends Command { time: message.convertTime(Date.now() + this.client.uptime, "from", true) })) .addField(this.client.customEmojis.voice + " " + message.translate("general/stats:MUSIC_TITLE"), message.translate("general/stats:MUSIC_CONTENT", { - count: this.client.voice.connections.size + count: this.client.player.voices.collection.size })) .addField(message.translate("general/stats:CREDITS_TITLE"), message.translate("general/stats:CREDITS_CONTENT", { donators: [":("].join("\n"), diff --git a/commands/Moderation/announcement.js b/commands/Moderation/announcement.js index 5473ebdd..9b4e5201 100644 --- a/commands/Moderation/announcement.js +++ b/commands/Moderation/announcement.js @@ -51,7 +51,7 @@ class Announcement extends Command { m.delete(); collector.stop(true); c.stop(true); - } else if (m.content.toLowerCase() === "every") { + } else if (m.content.toLowerCase() === "everyone") { mention = "@everyone"; tmsg1.delete(); m.delete(); diff --git a/commands/Moderation/checkinvites.js b/commands/Moderation/checkinvites.js index a65ca26a..a695810f 100644 --- a/commands/Moderation/checkinvites.js +++ b/commands/Moderation/checkinvites.js @@ -18,10 +18,8 @@ class Checkinvites extends Command { } async run(message, args, data) { - const members = message.guild.members; - const withInvite = []; - members.cache.forEach((m) => { + message.guild.members.cache.forEach((m) => { const possibleLinks = m.user.presence.activities.map((a) => [a.state, a.details, a.name]).flat(); const inviteLinks = possibleLinks.filter((l) => /(discord\.(gg|io|me|li)\/.+|discordapp\.com\/invite\/.+)/i.test(l)); if (inviteLinks.length > 0) { diff --git a/commands/Moderation/clear.js b/commands/Moderation/clear.js index 67b520a0..3fddf5ac 100644 --- a/commands/Moderation/clear.js +++ b/commands/Moderation/clear.js @@ -56,12 +56,12 @@ class Clear extends Command { if (user) { toDelete = await message.success("moderation/clear:CLEARED_MEMBER", { - amount: --amount, + amount: `${--amount} ${this.client.getNoun(--amount, message.translate("misc:NOUNS:MESSAGES:1"), message.translate("misc:NOUNS:MESSAGES:2"), message.translate("misc:NOUNS:MESSAGES:5"))}`, username: user.tag }); } else { toDelete = await message.success("moderation/clear:CLEARED", { - amount: --amount + amount: `${--amount} ${this.client.getNoun(--amount, message.translate("misc:NOUNS:MESSAGES:1"), message.translate("misc:NOUNS:MESSAGES:2"), message.translate("misc:NOUNS:MESSAGES:5"))}` }); }; diff --git a/commands/Moderation/mute.js b/commands/Moderation/mute.js index 53e371f8..d1c03812 100644 --- a/commands/Moderation/mute.js +++ b/commands/Moderation/mute.js @@ -80,8 +80,8 @@ class Mute extends Command { memberData.markModified("sanctions"); memberData.markModified("mute"); - await memberData.save(); + await memberData.save(); await data.guild.save(); this.client.databaseCache.mutedUsers.set(`${member.id}${message.guild.id}`, memberData); diff --git a/commands/Moderation/setwarns.js b/commands/Moderation/setwarns.js index e05ab90e..4d0adfd1 100644 --- a/commands/Moderation/setwarns.js +++ b/commands/Moderation/setwarns.js @@ -29,7 +29,7 @@ class Setwarns extends Command { data.guild.save(); return message.success("moderation/setwarns:SUCCESS_KICK_RESET", { prefix: data.guild.prefix, - count: number + count: `${number} ${this.client.getNoun(number, message.translate("misc:NOUNS:WARNS:1"), message.translate("misc:NOUNS:WARNS:2"), message.translate("misc:NOUNS:WARNS:5"))}` }); } else if (sanction === "ban") { data.guild.plugins.warnsSanctions.ban = false; @@ -37,7 +37,7 @@ class Setwarns extends Command { data.guild.save(); return message.success("moderation/setwarns:SUCCESS_BAN_RESET", { prefix: data.guild.prefix, - count: number + count: `${number} ${this.client.getNoun(number, message.translate("misc:NOUNS:WARNS:1"), message.translate("misc:NOUNS:WARNS:2"), message.translate("misc:NOUNS:WARNS:5"))}` }); }; }; @@ -51,7 +51,7 @@ class Setwarns extends Command { data.guild.save(); return message.success("moderation/setwarns:SUCCESS_KICK", { prefix: data.guild.prefix, - count: number + count: `${number} ${this.client.getNoun(number, message.translate("misc:NOUNS:WARNS:1"), message.translate("misc:NOUNS:WARNS:2"), message.translate("misc:NOUNS:WARNS:5"))}` }); } else if (sanction === "ban") { data.guild.plugins.warnsSanctions.ban = number; @@ -59,7 +59,7 @@ class Setwarns extends Command { data.guild.save(); return message.success("moderation/setwarns:SUCCESS_BAN", { prefix: data.guild.prefix, - count: number + count: `${number} ${this.client.getNoun(number, message.translate("misc:NOUNS:WARNS:1"), message.translate("misc:NOUNS:WARNS:2"), message.translate("misc:NOUNS:WARNS:5"))}` }); }; } diff --git a/dashboard/views/docs.ejs b/dashboard/views/docs.ejs index 4d4b3384..3dc53d8c 100644 --- a/dashboard/views/docs.ejs +++ b/dashboard/views/docs.ejs @@ -193,11 +193,19 @@
+									-----------------------------------------------------------------------------------------
+									JaBa v3.1
+									-----------------------------------------------------------------------------------------
+									Изменено
+										- Обновлена русская локализация, исправлены орфографические ошибки.
+										- Отключёна английская локализация.
+										- Исправлены ошибки.
+
 									-----------------------------------------------------------------------------------------
 									JaBa v3.0.9
 									-----------------------------------------------------------------------------------------
 									Добавлено
-										- Возвращены поздравленя с днём рождения.
+										- Возвращены поздравления с днём рождения.
 										- Команда setbirthdays - установить канал для поздравлений.
 										Так же его можно изменить из панели управления.
 
diff --git a/events/message.js b/events/message.js
index 37b60ec2..bf54fd25 100644
--- a/events/message.js
+++ b/events/message.js
@@ -1,3 +1,5 @@
+const { string } = require("mathjs");
+
 const xpCooldown = {},
 	cmdCooldown = {};
 
@@ -29,7 +31,7 @@ module.exports = class {
 		// Check if the bot was mentionned
 		if (message.content.match(new RegExp(`^<@!?${client.user.id}>( |)$`))) {
 			if (message.guild) return message.sendT("misc:HELLO_SERVER", { username: message.author.username, prefix: data.guild.prefix });
-			else return message.sendT("misc:HELLO_DM", { username: message.author.username });
+			else return message.sendT("misc:HELLO_DM");
 		};
 
 		if (message.content.includes("@someone") && message.guild) return client.commands.get("someone").run(message, null, data);
@@ -122,7 +124,7 @@ module.exports = class {
 		const customCommandAnswer = customCommand ? customCommand.answer : "";
 
 		if (!cmd && !customCommandAnswer && message.guild) return;
-		else if (!cmd && !customCommandAnswer && !message.guild) return message.sendT("misc:HELLO_DM", { username: message.author.username });
+		else if (!cmd && !customCommandAnswer && !message.guild) return message.sendT("misc:HELLO_DM");
 
 		if (message.guild && data.guild.ignoredChannels.includes(message.channel.id) && !message.member.hasPermission("MANAGE_MESSAGES")) {
 			message.delete();
@@ -170,7 +172,11 @@ module.exports = class {
 		};
 
 		const time = uCooldown[cmd.help.name] || 0;
-		if (time && (time > Date.now())) return message.error("misc:COOLDOWNED", { seconds: Math.ceil((time - Date.now()) / 1000) });
+		if (time && (time > Date.now())) {
+			const seconds = Math.ceil((time - Date.now()) / 1000);
+			return message.error("misc:COOLDOWNED", { seconds: `${seconds} ${client.getNoun(seconds, message.translate("misc:NOUNS:SECONDS:1"), message.translate("misc:NOUNS:SECONDS:2"), message.translate("misc:NOUNS:SECONDS:5"))}` });
+		};
+
 		cmdCooldown[message.author.id][cmd.help.name] = Date.now() + cmd.conf.cooldown;
 
 		client.logger.log(`${message.author.username} (${message.author.id}) ran command ${cmd.help.name} ${message.guild ? `on ${message.guild.name}` : "in DM"}`, "cmd");
diff --git a/events/ready.js b/events/ready.js
index cc81aca0..5ac308ed 100644
--- a/events/ready.js
+++ b/events/ready.js
@@ -44,7 +44,7 @@ module.exports = class {
 		let servers = client.guilds.cache.filter(guild => guild.id != "568120814776614924" && guild.id != "892727526911258654").size;
 		const version = require("../package.json").version;
 		const status = [
-			{ name: `${servers} ${getNoun(servers, "сервер", "сервера", "серверов")}`, type: "WATCHING" },
+			{ name: `${servers} ${client.getNoun(servers, message.translate("misc:NOUNS:SERVERS:1"), message.translate("misc:NOUNS:SERVERS:2"), message.translate("misc:NOUNS:SERVERS:5"))}`, type: "WATCHING" },
 			{ name: "help", type: "WATCHING" }
 		];
 
@@ -61,15 +61,4 @@ module.exports = class {
 			else i = 0;
 		}, 20000); // Every 20 seconds
 	}
-};
-
-function getNoun(number, one, two, five) {
-	let n = Math.abs(number);
-	n %= 100;
-	if (n >= 5 && n <= 20) return five;
-	n %= 10;
-	if (n === 1) return one;
-	if (n >= 2 && n <= 4) return two;
-
-	return five;
 };
\ No newline at end of file
diff --git a/helpers/autoUpdateDocs.js b/helpers/autoUpdateDocs.js
index 75d66a58..126c3e0d 100644
--- a/helpers/autoUpdateDocs.js
+++ b/helpers/autoUpdateDocs.js
@@ -25,7 +25,7 @@ module.exports = {
 				["Название", "Описание", "Использование", "Откат"]
 			];
 			const cmds = commands.filter((cmd) => cmd.help.category === cat).array();
-			text += `### ${cat} (${cmds.length} ${getNoun(cmds.length, "команда", "команды", "команд")})\n\n`;
+			text += `### ${cat} (${cmds.length} ${client.getNoun(cmds.length, "команда", "команды", "команд")})\n\n`;
 			cmds.sort(function (a, b) {
 				if (a.help.name < b.help.name) return -1;
 				else return 1;
@@ -34,7 +34,7 @@ module.exports = {
 					`**${cmd.help.name}** ${cmd.help.aliases.length ? `**(${cmd.help.aliases.join(", ")})**` : ""}`,
 					client.translate(`${cmd.help.category.toLowerCase()}/${cmd.help.name}:DESCRIPTION`),
 					client.translate(`${cmd.help.category.toLowerCase()}/${cmd.help.name}:USAGE`),
-					`${Math.ceil(cmd.conf.cooldown / 1000)} ${getNoun(Math.ceil(cmd.conf.cooldown / 1000), "секунда", "секунды", "секунд")}`
+					`${Math.ceil(cmd.conf.cooldown / 1000)} ${client.getNoun(Math.ceil(cmd.conf.cooldown / 1000), "секунда", "секунды", "секунд")}`
 				]);
 			});
 			text += `${table(arrCat)}\n\n`;
@@ -49,15 +49,4 @@ module.exports = {
 			client.logger.log("Dashboard docs updated!");
 		};
 	}
-};
-
-function getNoun(number, one, two, five) {
-	let n = Math.abs(number);
-	n %= 100;
-	if (n >= 5 && n <= 20) return five;
-	n %= 10;
-	if (n === 1) return one;
-	if (n >= 2 && n <= 4) return two;
-
-	return five;
 };
\ No newline at end of file
diff --git a/helpers/birthdays.js b/helpers/birthdays.js
index 6dbad901..ab6dbb4a 100644
--- a/helpers/birthdays.js
+++ b/helpers/birthdays.js
@@ -23,6 +23,7 @@ async function init(client) {
 								const day = userDate.getDate();
 								const month = userDate.getMonth();
 								const year = userDate.getFullYear();
+								const age = currentYear - year;
 
 								if (currentMonth === month && currentDay === day) {
 									const embed = new Discord.MessageEmbed()
@@ -35,7 +36,7 @@ async function init(client) {
 										.setFooter(client.config.embed.footer)
 										.addField(client.translate("economy/birthdate:HAPPY_BIRTHDAY"), client.translate("economy/birthdate:HAPPY_BIRTHDAY_MESSAGE", {
 											user: user.id,
-											age: currentYear - year
+											age: `${age} ${client.getNoun(age, message.translate("misc:NOUNS:AGE:1"), message.translate("misc:NOUNS:AGE:2"), message.translate("misc:NOUNS:AGE:5"))}`
 										}));
 									const msg = await channel.send("@everyone", { embed });
 									await msg.react("🎉");
diff --git a/helpers/discordbots.org.js b/helpers/discordbots.org.js
index 8ba67fbb..1df56d09 100644
--- a/helpers/discordbots.org.js
+++ b/helpers/discordbots.org.js
@@ -22,7 +22,7 @@ module.exports = {
 					id: vote.user,
 					guildID: client.config.support.id
 				});
-				member.money = member.money + 40;
+				member.money = member.money + 50;
 				member.save();
 				dUser.send(client.translate("misc:VOTE_DM", {
 					user: dUser.tag
diff --git a/languages/en-US/economy/birthdate.json b/languages/en-US/economy/birthdate.json
index daaf711d..ee7cfdca 100644
--- a/languages/en-US/economy/birthdate.json
+++ b/languages/en-US/economy/birthdate.json
@@ -4,7 +4,6 @@
 	"EXAMPLES": "{{prefix}}birthdate 01/12/2000",
 	"MISSING_DATE": "Please enter a valid date! For example, 01/12/2000",
 	"INVALID_DATE": "You must use the following date format: DD/MM/YYYY. For example, `December 1, 2000` will be `01/12/2000`.",
-	"INVALID_DATE_FORMAT": "You must use the following date format: DD/MM/YYYY. For example, `December 1, 2000` will be `01/12/2000`.",
 	"DATE_TOO_HIGH": "More than 80 years old? :eyes:",
 	"DATE_TOO_LOW": "Humm, nop! You must be born!",
 	"HAPPY_BIRTHDAY": "Happy birthday!",
diff --git a/languages/en-US/misc.json b/languages/en-US/misc.json
index e33c906c..b5eb8f85 100644
--- a/languages/en-US/misc.json
+++ b/languages/en-US/misc.json
@@ -17,7 +17,7 @@
 	"VOTE_DM": "⬆️ Hello {{user}}, thanks for voting!\nHere's your reward: 40 credits (on the support server)!",
 	"VOTE_LOGS": "⬆️ **{{usertag}}** (`{{userid}}`) voted for **JaBa** and won **40** credits, thank you!\n",
 	"HELLO_SERVER": "Hello **{{username}}**, my prefix on this server is `{{prefix}}`. Use `{{prefix}}help` to get the list of the commands!",
-	"HELLO_DM": "Hello **{{username}}**, as you are currently in direct message you don't need to add a prefix before command name.",
+	"HELLO_DM": "Hello, as you are currently in direct message you don't need to add a prefix before command name.",
 	"GUILD_ONLY": "This command is only available on a server!",
 	"MISSING_BOT_PERMS": "I need the following permissions to execute this command: {{list}}",
 	"MISSING_MEMBER_PERMS": "You need the following permissions to execute this command: {{list}}",
diff --git a/languages/language-meta.json b/languages/language-meta.json
index e928d405..e95fd44d 100644
--- a/languages/language-meta.json
+++ b/languages/language-meta.json
@@ -12,19 +12,5 @@
 			"ru_ru",
 			"ru_RU"
 		]
-	},
-	{
-		"name": "en-US",
-		"nativeName": "English",
-		"moment": "en",
-		"defaultMomentFormat": "MMMM Do YYYY",
-		"default": false,
-		"aliases": [
-			"English",
-			"en",
-			"en-us",
-			"en_us",
-			"en_US"
-		]
 	}
 ]
\ No newline at end of file
diff --git a/languages/ru-RU/administration/addcommand.json b/languages/ru-RU/administration/addcommand.json
index 00ce2c0b..64e97322 100644
--- a/languages/ru-RU/administration/addcommand.json
+++ b/languages/ru-RU/administration/addcommand.json
@@ -1,8 +1,8 @@
 {
 	"DESCRIPTION": "Создать свою команду!",
 	"USAGE": "{{prefix}}addcommand [название] [ответ]",
-	"EXAMPLES": "{{prefix}}addcommand hello Привет, {user}! Как дела?",
-	"MISSING_NAME": "Пожалуйста, укажите название команды!",
-	"MISSING_ANSWER": "Пожалуйста, укажите ответ команды!",
+	"EXAMPLES": "{{prefix}}addcommand hello Привет, {user}!",
+	"MISSING_NAME": "Укажите название команды!",
+	"MISSING_ANSWER": "Укажите ответ команды!",
 	"SUCCESS": "Команда **{{prefix}}{{commandName}}** создана!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/addemoji.json b/languages/ru-RU/administration/addemoji.json
index 7f5c1e26..e5488652 100644
--- a/languages/ru-RU/administration/addemoji.json
+++ b/languages/ru-RU/administration/addemoji.json
@@ -1,9 +1,9 @@
 {
 	"DESCRIPTION": "Добавить эмодзи на сервер!",
 	"USAGE": "{{prefix}}addemoji [ссылка-на-изображение] [название]",
-	"EXAMPLES": "{{prefix}}addemoji https://via.placeholder.com/150 test-emoji",
-	"MISSING_URL": "Пожалуйста, укажите ссылку на изображение!",
-	"MISSING_NAME": "Пожалуйста, укажите название эмодзи!",
+	"EXAMPLES": "{{prefix}}addemoji https://via.placeholder.com/150 placeholder",
+	"MISSING_URL": "Укажите ссылку на изображение!",
+	"MISSING_NAME": "Укажите название эмодзи!",
 	"INVALID_NAME": "Название эмодзи должно быть от 2 до 32 символов!",
 	"SUCCESS": ":{{emojiName}}: добавлен!",
 	"ERROR": "{{emojiName}} не был добавлен. Проверьте, есть ли место для добавления эмодзи!"
diff --git a/languages/ru-RU/administration/automod.json b/languages/ru-RU/administration/automod.json
index 46f0999f..fedb925a 100644
--- a/languages/ru-RU/administration/automod.json
+++ b/languages/ru-RU/administration/automod.json
@@ -2,7 +2,7 @@
 	"DESCRIPTION": "Включить или отключить автоудаление Discord приглашений",
 	"USAGE": "{{prefix}}automod [on/off] (#канал)",
 	"EXAMPLES": "{{prefix}}automod on\n{{prefix}}automod off #general\n{{prefix}}automod off",
-	"MISSING_STATUS": "Пожалуйста, укажите значение `on` или `off`",
+	"MISSING_STATUS": "Укажите значение `on` или `off`",
 	"ENABLED": "**Discord приглашения будут автоматически удаляться!**\n\n:arrow_right_hook: *Используйте `{{prefix}}automod off #channel`, чтобы игнорировать канал!*",
 	"DISABLED_CHANNEL": "Автомодерация не будет выполняться в {{channel}}!",
 	"DISABLED": "Автомодерация отключена на данном сервере!",
diff --git a/languages/ru-RU/administration/autorole.json b/languages/ru-RU/administration/autorole.json
index 6b888892..c2783587 100644
--- a/languages/ru-RU/administration/autorole.json
+++ b/languages/ru-RU/administration/autorole.json
@@ -2,9 +2,9 @@
 	"DESCRIPTION": "Включить или отключить автоназначение роли при входе на сервер!",
 	"USAGE": "{{prefix}}autorole [on/off] (@роль)",
 	"EXAMPLES": "{{prefix}}autorole on @новенький\n{{prefix}}autorole off",
-	"MISSING_STATUS": "Пожалуйста, укажите значение `on` или `off`",
-	"MISSING_ROLE": "Пожалуйста, укажите роль (сделайте тег роли)!",
-	"SUCCESS_ENABLED": "Автоназначение роли включено! Новые пользователи будут автоматически получать **{{roleName}}** при входе.",
+	"MISSING_STATUS": "Укажите значение `on` или `off`",
+	"MISSING_ROLE": "Укажите роль!",
+	"SUCCESS_ENABLED": "Автоназначение роли включено! Новые пользователи будут автоматически получать **{{roleName}}** при входе на сервер.",
 	"ALREADY_DISABLED": "**Автоназначение роли уже отключено.**\n\n:arrow_right_hook: *Используйте `{{prefix}}autorole on @роль`, чтобы включить!*",
 	"SUCCESS_DISABLED": "**Автоназначение роли отключено!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/backup.json b/languages/ru-RU/administration/backup.json
index 5b462f80..cfdc3809 100644
--- a/languages/ru-RU/administration/backup.json
+++ b/languages/ru-RU/administration/backup.json
@@ -3,13 +3,13 @@
 	"USAGE": "{{prefix}}backup [create/load/info]",
 	"EXAMPLES": "{{prefix}}backup create\n{{prefix}}backup load 123456789098765432\n{{prefix}}backup info 123456789098765432",
 	"MISSING_STATUS": "Выберите действие: `create`, `load` или `info`!",
-	"MISSING_BACKUP_ID": "Пожалуйста, укажите ID резервной копии!",
+	"MISSING_BACKUP_ID": "Укажите ID резервной копии!",
 	"NO_BACKUP_FOUND": "Резервных копий для `{{backupID}} не найдено`",
-	"TIMES_UP": "Время вышло! Пожалуйста, используйте команду снова!",
+	"TIMES_UP": "Время вышло! Используйте команду снова!",
 	"SUCCESS_PUBLIC": "Резервная копия успешно создана! ID резервной копии был отправлен вам в ЛС!",
-	"SUCCESS_PRIVATE": "Вот ID вашей резервной копии: `{{backupID}}`, используйте его для восстановления на другом сервере !",
+	"SUCCESS_PRIVATE": "Вот ID вашей резервной копии: `{{backupID}}`, используйте его для восстановления на другом сервере!",
 	"CONFIRMATION": ":warning: | **Загрузка резервной копии заменит настройки текущего сервера.**\n\n:arrow_right_hook: *Отправьте `confirm` для подтверждения!*",
-	"START_LOADING": "Загрузка резервной копии начата, пожалуйста подождите!",
+	"START_LOADING": "Загрузка резервной копии начата, подождите!",
 	"LOAD_SUCCESS": "Резервная копия загружена!",
 	"TITLE_INFO": "Информация о резервной копии",
 	"TITLE_ID": "ID",
diff --git a/languages/ru-RU/administration/configuration.json b/languages/ru-RU/administration/configuration.json
index 6f93fae9..817a1575 100644
--- a/languages/ru-RU/administration/configuration.json
+++ b/languages/ru-RU/administration/configuration.json
@@ -1,32 +1,32 @@
 {
-	"DESCRIPTION": "Показать настройки текущего сервера!",
+	"DESCRIPTION": "Показать конфигурацию сервера!",
 	"USAGE": "{{prefix}}configuration",
 	"EXAMPLES": "{{prefix}}configuration",
-	"PREFIX_TITLE": "Префикс сервера",
+	"PREFIX_TITLE": "Префикс",
 	"IGNORED_CHANNELS_TITLE": "Игнорируемые каналы",
 	"NO_IGNORED_CHANNELS": "Нет игнорируемых каналов.",
 	"AUTOROLE_TITLE": "Автоназначение роли при входе",
 	"AUTOROLE_CONTENT": "Роль: {{roleName}}",
 	"AUTOROLE_DISABLED": "Автоназначение роли отключено.",
 	"WELCOME_TITLE": "Приветствие",
-	"WELCOME_CONTENT": "Канал: {{channel}}\nИзображение: {{withImage}}",
-	"WELCOME_DISABLED": "Приветственные сообщения отключены.",
+	"WELCOME_CONTENT": "Канал: {{channel}}\nКарточка: {{withImage}}",
+	"WELCOME_DISABLED": "Сообщения отключены.",
 	"GOODBYE_TITLE": "Прощание",
-	"GOODBYE_CONTENT": "Канал: {{channel}}\nИзображение: {{withImage}}",
-	"GOODBYE_DISABLED": "Прощальные сообщения отключены.",
+	"GOODBYE_CONTENT": "Канал: {{channel}}\nКарточка: {{withImage}}",
+	"GOODBYE_DISABLED": "Сообщения отключены.",
 	"SPECIAL_CHANNELS": "Специальные каналы",
 	"MODLOGS": "Логи модерации: *{{channel}}*",
 	"BIRTHDAYS": "Поздравления с днём рождения: *{{channel}}*",
 	"FORTNITESHOP": "Ежедневный магазин Fortnite: *{{channel}}*",
 	"SUGGESTIONS": "Предложения: *{{channel}}*",
 	"REPORTS": "Жалобы: *{{channel}}*",
-	"AUTOMOD_TITLE": "Автомодерация:",
+	"AUTOMOD_TITLE": "Автомодерация",
 	"AUTOMOD_CONTENT": "Автомодерация включена.\n*Игнорируемые каналы: {{channels}}*",
 	"AUTOMOD_DISABLED": "Автомодерация отключена.",
 	"AUTODELETEMOD": "Автоудаление команд модерации",
 	"AUTODELETEMOD_ENABLED": "Автоудаление команд модерации включено.",
 	"AUTODELETEMOD_DISABLED": "Автоудаление команд модерации отключено.",
-	"DASHBOARD_TITLE": "Изменить настройки:",
+	"DASHBOARD_TITLE": "Изменить настройки",
 	"DASHBOARD_CONTENT": "Нажмите сюда, чтобы перейти в панель управления!",
 	"AUTO_SANCTIONS": "Автоматические наказания",
 	"KICK_CONTENT": "Кик: После **{{count}}** предупреждений.",
diff --git a/languages/ru-RU/administration/delcommand.json b/languages/ru-RU/administration/delcommand.json
index 45ef8ea1..ca73e4f9 100644
--- a/languages/ru-RU/administration/delcommand.json
+++ b/languages/ru-RU/administration/delcommand.json
@@ -2,7 +2,7 @@
 	"DESCRIPTION": "Удалить свою команду!",
 	"USAGE": "{{prefix}}delcommand [название]",
 	"EXAMPLES": "{{prefix}}delcommand hello",
-	"MISSING_NAME": "Пожалуйста, введите название команды!",
+	"MISSING_NAME": "Введите название команды!",
 	"UNKNOWN_COMMAND": "Команда {{commandName}} не существует!",
 	"SUCCESS": "Команда {{commandName}} была удалена с сервера!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/deletemod.json b/languages/ru-RU/administration/deletemod.json
index 29365e9d..1cef5987 100644
--- a/languages/ru-RU/administration/deletemod.json
+++ b/languages/ru-RU/administration/deletemod.json
@@ -2,7 +2,7 @@
 	"DESCRIPTION": "Включить или отключить автоудаление команд модерации!",
 	"USAGE": "{{prefix}}deletemod [on/off]",
 	"EXAMPLES": "{{prefix}}deletemod on",
-	"MISSING_STATUS": "Пожалуйста, укажите значение `on` или `off`",
+	"MISSING_STATUS": "Укажите значение `on` или `off`",
 	"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 8017067f..d1607e41 100644
--- a/languages/ru-RU/administration/goodbye.json
+++ b/languages/ru-RU/administration/goodbye.json
@@ -1,17 +1,17 @@
 {
-	"DESCRIPTION": "Включить или отключить прощальные сообщения!",
+	"DESCRIPTION": "Включить или отключить сообщения при выходе пользователя с сервера!",
 	"USAGE": "{{prefix}}goodbye (test)",
 	"EXAMPLES": "{{prefix}}goodbye\n{{prefix}}goodbye test",
 	"MISSING_STATUS": "Выберите действие: `edit` или `off`",
 	"DEFAULT_MESSAGE": "Пока, {user}! Нас теперь {membercount} без тебя :'(",
 	"TEST_SUCCESS": "Тест выполнен!",
-	"FORM_1": "**В какой канал будут отправляться прощальные сообщения?**\n\n:arrow_right_hook: *Отправьте упоминание канала!*",
-	"FORM_2": "**Пожалуйста, укажите ваше сообщение.**\n\n**Если необходимо:**\n*-* __Упомянуть пользователя__: {user}\n*-* __Количество участников__: {membercount}\n*-* __Название сервера__: {server}\n\n**Например:**\nПрощай, {user}, мы будем скучать! Теперь нас {membercount}.\n:fast_forward:\nПрощай, {{author}}, мы будем скучать! Теперь нас {{memberCount}}.",
-	"FORM_3": "**Вы хотите добавить картинку к прощальному сообщению?**\n\n:arrow_right_hook: *Отправьте `да` или `нет`!*",
-	"FORM_SUCCESS": "**Готово!**\n\n:arrow_right_hook: *Используйте `{{prefix}}goodbye test` для предпросмотра вашего прощального сообщения!*",
+	"FORM_1": "**В какой канал будут отправляться сообщения?**\n\n:arrow_right_hook: *Отправьте упоминание канала!*",
+	"FORM_2": "**Укажите ваше сообщение.**\n\n**Если необходимо:**\n*-* __Упомянуть пользователя__: {user}\n*-* __Количество участников__: {membercount}\n*-* __Название сервера__: {server}\n\n**Например:**\nПрощай, {user}, мы будем скучать! Теперь нас {membercount}.\n:fast_forward:\nПрощай, {{author}}, мы будем скучать! Теперь нас {{memberCount}}.",
+	"FORM_3": "**Вы хотите добавить карточку к сообщению?**\n\n:arrow_right_hook: *Отправьте `да` или `нет`!*",
+	"FORM_SUCCESS": "**Готово!**\n\n:arrow_right_hook: *Используйте `{{prefix}}goodbye test` для предпросмотра вашего сообщения!*",
 	"MAX_CHARACT": "Ваше сообщение не должно быть больше 1800 символов!",
-	"DISABLED": "**Прощальные сообщения отключены!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
+	"DISABLED": "**Сообщения отключены!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
 	"IMG_GOODBYE": "Вышел с сервера {{server}}!",
-	"IMG_NB": "{{memberCount}}ый участник!",
+	"IMG_NB": "{{memberCount}}й участник!",
 	"TITLE": "Прощание"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setbirthdays.json b/languages/ru-RU/administration/setbirthdays.json
index 425a2022..c6a90630 100644
--- a/languages/ru-RU/administration/setbirthdays.json
+++ b/languages/ru-RU/administration/setbirthdays.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Установить канал для поздравлений с днём рождения!",
 	"USAGE": "{{prefix}}setbirthdays (#канал)",
 	"EXAMPLES": "{{prefix}}setbirthdays #дни-рождения\n{{prefix}}setbirthdays",
-	"SUCCESS_ENABLED": "Поздравления включены в канале **{{channel}}**!",
-	"SUCCESS_DISABLED": "Поздравления отключены!"
+	"ENABLED": "Поздравления включены в канале **{{channel}}**!",
+	"DISABLED": "Поздравления отключены!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setfortniteshop.json b/languages/ru-RU/administration/setfortniteshop.json
index 5315e8cd..e5e3b600 100644
--- a/languages/ru-RU/administration/setfortniteshop.json
+++ b/languages/ru-RU/administration/setfortniteshop.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Установить канал для ежедневного Fortnite магазина!",
 	"USAGE": "{{prefix}}setfortniteshop (#канал)",
 	"EXAMPLES": "{{prefix}}setfortniteshop #магазин\n{{prefix}}setfortniteshop",
-	"DISABLED": "Ежедневный Fortnite магазин отключён!",
-	"ENABLED": "Ежедневный Fortnite магазин включён в {{channel}}!"
+	"ENABLED": "Ежедневный Fortnite магазин включён в {{channel}}!",
+	"DISABLED": "Ежедневный Fortnite магазин отключён!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setlang.json b/languages/ru-RU/administration/setlang.json
index 82081f25..50bad0e9 100644
--- a/languages/ru-RU/administration/setlang.json
+++ b/languages/ru-RU/administration/setlang.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Изменить язык бота на сервере!",
 	"USAGE": "{{prefix}}setlang [язык]",
 	"EXAMPLES": "{{prefix}}setlang russian\n{{prefix}}setlang uk",
-	"MISSING_LANG": "Пожалуйста, выберите язык из списка: {{list}}",
+	"MISSING_LANG": "Выберите язык из списка: {{list}}",
 	"SUCCESS": ":flag_ru: Язык сервера изменён на **{{lang}}**!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setmodlogs.json b/languages/ru-RU/administration/setmodlogs.json
index 3861f345..603e1c74 100644
--- a/languages/ru-RU/administration/setmodlogs.json
+++ b/languages/ru-RU/administration/setmodlogs.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Установить канал для логов модерации!",
 	"USAGE": "{{prefix}}setmodlogs (#канал)",
 	"EXAMPLES": "{{prefix}}setmodlogs #логи\n{{prefix}}setmodlogs",
-	"SUCCESS_ENABLED": "Логи модерации включены в канале **{{channel}}**!",
-	"SUCCESS_DISABLED": "Логи модерации отключены!"
+	"ENABLED": "Логи модерации включены в канале **{{channel}}**!",
+	"DISABLED": "Логи модерации отключены!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setprefix.json b/languages/ru-RU/administration/setprefix.json
index 00d71e42..9593a33e 100644
--- a/languages/ru-RU/administration/setprefix.json
+++ b/languages/ru-RU/administration/setprefix.json
@@ -1,8 +1,8 @@
 {
-	"DESCRIPTION": "Выбрать префикс для сервера!",
+	"DESCRIPTION": "Установить префикс на сервере!",
 	"USAGE": "{{prefix}}setprefix [префикс]",
 	"EXAMPLES": "{{prefix}}setprefix $",
-	"MISSING_PREFIX": "Пожалуйста, укажите префикс для сервера!",
-	"TOO_LONG": "Префикс не должен превышать 5и символов!",
+	"MISSING_PREFIX": "Укажите префикс!",
+	"TOO_LONG": "Префикс не может быть длиннее 5 символов!",
 	"SUCCESS": "Префикс бота изменён на `{{prefix}}`!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setreports.json b/languages/ru-RU/administration/setreports.json
index eb4bc521..1e832aff 100644
--- a/languages/ru-RU/administration/setreports.json
+++ b/languages/ru-RU/administration/setreports.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Установить канал для жалоб!",
 	"USAGE": "{{prefix}}setreports (#канал)",
 	"EXAMPLES": "{{prefix}}setreports #жалобы\n{{prefix}}setreports",
-	"SUCCESS_ENABLED": "Жалобы будут отправляться в **{{channel}}**!",
-	"SUCCESS_DISABLED": "Жалобы отключены!"
+	"ENABLED": "Жалобы будут отправляться в **{{channel}}**!",
+	"DISABLED": "Жалобы отключены!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/setsuggests.json b/languages/ru-RU/administration/setsuggests.json
index 517ba82c..25c7f256 100644
--- a/languages/ru-RU/administration/setsuggests.json
+++ b/languages/ru-RU/administration/setsuggests.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Установить канал для предложений!",
 	"USAGE": "{{prefix}}setsuggests (#канал)",
 	"EXAMPLES": "{{prefix}}setsuggests #предложения\n{{prefix}}setsuggests",
-	"SUCCESS_ENABLED": "Предложения будут отправляться в **{{channel}}**!",
-	"SUCCESS_DISABLED": "Предложения отключены!"
+	"ENABLED": "Предложения будут отправляться в **{{channel}}**!",
+	"DISABLED": "Предложения отключены!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/slowmode.json b/languages/ru-RU/administration/slowmode.json
index 973fea79..c97e8942 100644
--- a/languages/ru-RU/administration/slowmode.json
+++ b/languages/ru-RU/administration/slowmode.json
@@ -4,5 +4,5 @@
 	"EXAMPLES": "{{prefix}}slowmode #основной 10m\n{{prefix}}slowmode #основной",
 	"DISABLED": "**Медленный режим был выключен в канале {{channel}}!**\n\n:arrow_right_hook: *Отправьте `{{prefix}}slowmode [#канал] (время)`, чтобы снова включить медленный режим!*",
 	"ENABLED": "**Медленный режим в `{{time}}` установлен в канале `{{channel}}`!**\n\n:arrow_right_hook: *Отправьте `{{prefix}}slowmode {{channel}}`, чтобы отключить!*",
-	"PLEASE_WAIT": "В канале {{channel}} включён медленный режим! Пожалуйста, ждите {{time}} между каждым сообщением!"
+	"PLEASE_WAIT": "В канале {{channel}} включён медленный режим! Подождите {{time}} перед отправкой следующего сообщения!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/administration/welcome.json b/languages/ru-RU/administration/welcome.json
index ba56fda5..53aabf9f 100644
--- a/languages/ru-RU/administration/welcome.json
+++ b/languages/ru-RU/administration/welcome.json
@@ -1,16 +1,16 @@
 {
-	"DESCRIPTION": "Включить или отключить приветственные сообщения!",
+	"DESCRIPTION": "Включить или отключить сообщения при входе пользователя на сервер!",
 	"USAGE": "{{prefix}}welcome (test)",
 	"EXAMPLES": "{{prefix}}welcome\n{{prefix}}welcome test",
 	"MISSING_STATUS": "Выберите действие: `edit` или `off`",
 	"DEFAULT_MESSAGE": "Добро пожаловать на сервер {server}, {user}, теперь нас {membercount}! Ваш аккаунт был создан {createdat}.",
 	"TEST_SUCCESS": "Тест выполнен!",
-	"FORM_1": "**В какой канал будут отправляться приветственные сообщения?**\n\n:arrow_right_hook: *Отправьте упоминание канала!*",
-	"FORM_2": "**Пожалуйста, укажите ваше сообщение.**\n\n**Если необходимо:**\n*-* __Упомянуть пользователя__: {user}\n*-* __Количество участников__: {membercount}\n*-* __Название сервера__: {server}\n\n**Например:**\nДобро пожаловать на сервер {server}, {user}! Теперь нас {membercount}!\n:fast_forward:\nДобро пожаловать на сервер {{guildName}}, {{author}}! Теперь нас {{memberCount}}!",
-	"FORM_3": "**Вы хотите добавить картинку к приветственному сообщению?**\n\n:arrow_right_hook: *Отправьте `да` или `нет`!*",
+	"FORM_1": "**В какой канал будут отправляться сообщения?**\n\n:arrow_right_hook: *Отправьте упоминание канала!*",
+	"FORM_2": "**Укажите ваше сообщение.**\n\n**Если необходимо:**\n*-* __Упомянуть пользователя__: {user}\n*-* __Количество участников__: {membercount}\n*-* __Название сервера__: {server}\n\n**Например:**\nДобро пожаловать на сервер {server}, {user}! Теперь нас {membercount}!\n:fast_forward:\nДобро пожаловать на сервер {{guildName}}, {{author}}! Теперь нас {{memberCount}}!",
+	"FORM_3": "**Вы хотите добавить карточку к сообщению?**\n\n:arrow_right_hook: *Отправьте `да` или `нет`!*",
 	"FORM_SUCCESS": "**Готово!**\n\n:arrow_right_hook: *Используйте `{{prefix}}welcome test` для предпросмотра вашего приветственного сообщения!*",
 	"MAX_CHARACT": "Ваше сообщение не должно быть больше 1800 символов!",
-	"DISABLED": "**Приветственные сообщения были отключены!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
+	"DISABLED": "**Сообщения отключены!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
 	"IMG_WELCOME": "Добро пожаловать на сервер {{server}}!",
 	"IMG_NB": "{{memberCount}}й участник!",
 	"TITLE": "Приветствие"
diff --git a/languages/ru-RU/common.json b/languages/ru-RU/common.json
index cdf87175..fa52bac1 100644
--- a/languages/ru-RU/common.json
+++ b/languages/ru-RU/common.json
@@ -22,7 +22,7 @@
 	"GAME": "Активность",
 	"STATUS": "Статус",
 	"STATUS_ONLINE": "Онлайн",
-	"STATUS_OFFLINE": "Оффлайн",
+	"STATUS_OFFLINE": "Не в сети",
 	"STATUS_IDLE": "Неактивен",
 	"STATUS_DND": "Не беспокоить",
 	"ROLE": "Роль",
diff --git a/languages/ru-RU/dashboard.json b/languages/ru-RU/dashboard.json
index c5a4edf7..12bb20ac 100644
--- a/languages/ru-RU/dashboard.json
+++ b/languages/ru-RU/dashboard.json
@@ -10,16 +10,16 @@
 	"NO_SERVER": "Сервер не найден",
 	"NO_SERVER_CONTENT": "Нечего отображать. Убедитесь, что вы вошли в систему с правильной учетной записью, и повторите попытку.",
 	"BASIC_CONF": "📝 Основные настройки",
-	"WELCOME_CONF": "👋 Приветственные сообщения",
-	"GOODBYE_CONF": "😢 Прощальные сообщения",
-	"WELCOME_IMG": "👋 Приветственное изображение",
-	"GOODBYE_IMG": "😢 Прощальное изображение",
+	"WELCOME_CONF": "👋 Сообщение при входе пользователя на сервер",
+	"GOODBYE_CONF": "😢 Сообщение при выходе пользователя с сервера",
+	"WELCOME_IMG": "👋 Добавлять карточку",
+	"GOODBYE_IMG": "😢 Добавлять карточку",
 	"CHANNELS_CONF": "🌀 Специальные каналы",
 	"AUTOROLE_CONF": "🎖️ Автоматическое назначение роли",
-	"DISABLE_MESSAGES": "Отключить сообщения",
-	"ENABLE_MESSAGES": "Включить сообщения",
-	"DISABLE_AUTOROLE": "Выключить автоназначение роли",
-	"ENABLE_AUTOROLE": "Включить автоназначение роли",
+	"ENABLE_MESSAGES": "Включить",
+	"DISABLE_MESSAGES": "Отключить",
+	"ENABLE_AUTOROLE": "Включить",
+	"DISABLE_AUTOROLE": "Выключить",
 	"SELECTOR": "Выбор серверов",
 	"MANAGE": "Управление"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/achievements.json b/languages/ru-RU/economy/achievements.json
index 77e0b09a..cad71a68 100644
--- a/languages/ru-RU/economy/achievements.json
+++ b/languages/ru-RU/economy/achievements.json
@@ -2,7 +2,7 @@
 	"DESCRIPTION": "Показать список ваших достижений!",
 	"USAGE": "{{prefix}}achievements",
 	"EXAMPLES": "{{prefix}}achievements",
-	"SEND_CMD": "Отправьте свою первую команду!",
+	"SEND_CMD": "Используйте свою первую команду!",
 	"CLAIM_SALARY": "Получите зарплату 10 раз!",
 	"MARRY": "Найдите свою половинку и женитесь!",
 	"SLOTS": "Выиграйте 3 раза подряд в слоты!",
diff --git a/languages/ru-RU/economy/birthdate.json b/languages/ru-RU/economy/birthdate.json
index 25a6a8d4..d08593a0 100644
--- a/languages/ru-RU/economy/birthdate.json
+++ b/languages/ru-RU/economy/birthdate.json
@@ -1,13 +1,12 @@
 {
-	"DESCRIPTION": "Установить день рождения",
+	"DESCRIPTION": "Установить дату рождения",
 	"USAGE": "{{prefix}}birthdate [дата]",
 	"EXAMPLES": "{{prefix}}birthdate 01/01/2010",
-	"MISSING_DATE": "Пожалуйста, укажите правильную дату! Например, 20/11/2003",
+	"MISSING_DATE": "Укажите дату в формате 20/11/2003",
 	"INVALID_DATE": "Используйте данный формат: ДД/ММ/ГГГГ. Например, `1 января 2010` будет `01/01/2010`.",
-	"INVALID_DATE_FORMAT": "Используйте данный формат: ДД/ММ/ГГГГ. Например, `1 января 2010` будет `01/01/2010`.",
 	"DATE_TOO_HIGH": "Вам больше 80 лет? :eyes:",
 	"DATE_TOO_LOW": "Хммм... Вы ещё не родились!",
-	"HAPPY_BIRTHDAY": "С днём рождения!",
-	"HAPPY_BIRTHDAY_MESSAGE": "С днём рождения, <@{{user}}>. Ему(ей) исполнилось **{{age}}** лет(год/года)!",
-	"SUCCESS": "Ваш день рождения установлен на {{date}}!"
+	"HAPPY_BIRTHDAY": "День рождения",
+	"HAPPY_BIRTHDAY_MESSAGE": "Поздравляем <@{{user}}> с днём рождения, сегодня ему(ей) исполнилось **{{age}}**!",
+	"SUCCESS": "Ваша дата рождения установлена на {{date}}!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/deposit.json b/languages/ru-RU/economy/deposit.json
index c3e3288a..6c58a4e3 100644
--- a/languages/ru-RU/economy/deposit.json
+++ b/languages/ru-RU/economy/deposit.json
@@ -2,8 +2,8 @@
 	"DESCRIPTION": "Внести кредиты в банк",
 	"USAGE": "{{prefix}}deposit [сумма]",
 	"EXAMPLES": "{{prefix}}deposit 1000",
-	"MISSING_AMOUNT": "Пожалуйста, укажите сумму!",
+	"MISSING_AMOUNT": "Укажите сумму!",
 	"NO_CREDIT": "У вас нет кредитов!",
-	"NO_ENOUGH_CREDIT": "У вас нет `{{money}}` кредит(а/ов)!",
+	"NO_ENOUGH_CREDIT": "У вас нет `{{money}}`!",
 	"SUCCESS": "**{{money}}** кредитов внесено на ваш банковский счёт!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/divorce.json b/languages/ru-RU/economy/divorce.json
index e1c6b672..14884bc4 100644
--- a/languages/ru-RU/economy/divorce.json
+++ b/languages/ru-RU/economy/divorce.json
@@ -1,7 +1,7 @@
 {
-	"DESCRIPTION": "Развестись с пользователем, с которым в настоящее время вы состоите в браке!",
+	"DESCRIPTION": "Развестись с пользователем!",
 	"USAGE": "{{prefix}}divorce",
 	"EXAMPLES": "{{prefix}}divorce",
-	"NOT_MARRIED": "Вы не в браке!",
+	"NOT_MARRIED": "Вы не состоите в браке!",
 	"DIVORCED": "Вы развелись с **{{username}}**!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/leaderboard.json b/languages/ru-RU/economy/leaderboard.json
index e6326dc3..b620fb93 100644
--- a/languages/ru-RU/economy/leaderboard.json
+++ b/languages/ru-RU/economy/leaderboard.json
@@ -1,7 +1,7 @@
 {
-	"DESCRIPTION": "Показать топ пользователей по кредитам, уровню или очкам репутации!",
+	"DESCRIPTION": "Показать таблице лидеров по кредитам, уровню или очкам репутации!",
 	"USAGE": "{{prefix}}leaderboard [rep/level/credits]",
 	"EXAMPLES": "{{prefix}}leaderboard credits\n{{prefix}}leaderboard level",
-	"MISSING_TYPE": "Пожалуйста, выберите таблицу `credits`, `level` или `rep`",
-	"MOBILE": ":confused: Я заметил, что вы онлайн с телефона.... Таблица лидеров может отображаться некорректно на маленьких экранах. Попробуйте переключиться на ландшафтный режим или используйте панель управления!"
+	"MISSING_TYPE": "Выберите таблицу `credits`, `level` или `rep`",
+	"MOBILE": ":confused: Я заметил, что вы онлайн с телефона.... Таблица лидеров может отображаться некорректно на маленьких экранах. Попробуйте переключиться на ландшафтный режим или попробуйте позже с другого устройства!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/marry.json b/languages/ru-RU/economy/marry.json
index 078875a2..ce3fff36 100644
--- a/languages/ru-RU/economy/marry.json
+++ b/languages/ru-RU/economy/marry.json
@@ -1,18 +1,18 @@
 {
-	"DESCRIPTION": "Пожениться на том, кого вы любите!",
+	"DESCRIPTION": "Женитесь на том, кого любите!",
 	"USAGE": "{{prefix}}marry [@пользователь]",
 	"EXAMPLES": "{{prefix}}marry @Jonny_Bro#4226",
 	"INVALID_MEMBER": "Вы должны упомянуть пользователя!",
 	"ALREADY_MARRIED": "Вы уже состоите в браке! Вы можете развестить с помощью команды `{{prefix}}divorce`",
 	"ALREADY_MARRIED_USER": "Место занято! **{{username}}** уже состоит в браке!",
-	"YOURSELF": "Ты не можешь жениться на себе!",
+	"YOURSELF": "Вы не можете жениться на себе!",
 	"REQUEST_AUTHOR_TO_AMEMBER": "Вы уже отправили предложение **{{username}}**!",
 	"REQUEST_AMEMBER_TO_AUTHOR": "**{{username}}** отправил(а) вам предложение! Вы можете отказать или согласиться (либо дождаться истечения срока предложения).",
 	"REQUEST_AMEMBER_TO_MEMBER": "**{{secondUsername}}** уже отправил(а) предложение **{{firstUsername}}**!",
-	"REQUEST_MEMBER_TO_AMEMBER": "**{{firstUsername}} уже отправил(а) предложение **{{secondUsername}}**! Пожалуйста, подождите пока **{{secondUsername}}** согласиться или откажет на предложение **{{firstUsername}}** (либо дождитесь истечения срока предложения)!",
+	"REQUEST_MEMBER_TO_AMEMBER": "**{{firstUsername}} уже отправил(а) предложение **{{secondUsername}}**! Подождите пока **{{secondUsername}}** согласиться или откажет на предложение **{{firstUsername}}** (либо дождитесь истечения срока предложения)!",
 	"TIMEOUT": "{{username}} не ответил(а)... Подождите пока он/она будут в сети и попробуйте снова!",
 	"SUCCESS": "🎉 Поздравляем! **{{creator}}** и **{{partner}}** теперь состоят в браке!",
-	"DENIED": "{{creator}}, у меня есть плохие новости... {{partner}} отказал(а) на ваше предложение.",
-	"REQUEST": "{{to}}, вы согласны вступить в брак с {{from}}? Ответьте \"да\" или \"нет\"!",
-	"BOT_USER": "Боты не могу вступать в брак!"
+	"DENIED": "{{creator}}, у меня есть плохие новости... {{partner}} отказался(лась) от вашего предложение.",
+	"REQUEST": "{{to}}, вы согласны вступить в брак с {{from}}? Ответьте `да` или `нет`!",
+	"BOT_USER": "Боты вечно одиноки <:sad:926094071527768164>"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/money.json b/languages/ru-RU/economy/money.json
index a2b5eb0d..e129ce5e 100644
--- a/languages/ru-RU/economy/money.json
+++ b/languages/ru-RU/economy/money.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Показывает ваши(чужие) кредиты",
+	"DESCRIPTION": "Показать количество кредитов у пользователя",
 	"USAGE": "{{prefix}}money (@пользователь)",
 	"EXAMPLES": "{{prefix}}money\n{{prefix}}money @Jonny_Bro#4226",
 	"TITLE": "Кредиты {{username}}"
diff --git a/languages/ru-RU/economy/pay.json b/languages/ru-RU/economy/pay.json
index 34624894..a59b7250 100644
--- a/languages/ru-RU/economy/pay.json
+++ b/languages/ru-RU/economy/pay.json
@@ -6,6 +6,6 @@
 	"BOT_USER": "Ботам не нужны деньги!",
 	"YOURSELF": "Вы не можете заплатить самому себе!",
 	"INVALID_AMOUNT": "Укажите сумму",
-	"ENOUGH_MONEY": "У вас нет **{{amount}}** кредит(а/ов)",
-	"SUCCESS": "Вы дали **{{amount}}** кредит(а/ов) пользователю **{{username}}**!"
+	"ENOUGH_MONEY": "У вас нет **{{amount}}**",
+	"SUCCESS": "Вы отправили **{{amount}}** пользователю **{{username}}**!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/profile.json b/languages/ru-RU/economy/profile.json
index 8648852c..5a52d365 100644
--- a/languages/ru-RU/economy/profile.json
+++ b/languages/ru-RU/economy/profile.json
@@ -1,25 +1,23 @@
 {
-	"DESCRIPTION": "Показать ваш или чужой профиль",
+	"DESCRIPTION": "Показать профиль пользователя",
 	"USAGE": "{{prefix}}profile (@пользователь)",
-	"EXAMPLES": "{{prefix}}profile @Jonny_Bro#4226\n{{prefix}}profile",
+	"EXAMPLES": "{{prefix}}profile\n{{prefix}}profile @Jonny_Bro#4226",
+	"BOT_USER": "У ботов нет профиля!",
 	"TITLE": "Профиль {{username}}",
+	"YOUR_PROFILE": "Ваш профиль",
+	"BIO": "🔖 Биография",
 	"NO_BIO": "Биография отсутствует",
-	"BOT_USER": "У ботов нет профилей!",
 	"CASH": "💵 Кредиты",
 	"BANK": "💳 Банк",
-	"GLOBAL": "🌍 Всего денег на всех серверах",
-	"MONEY": "**{{money}}** кредит(а/ов)",
+	"GLOBAL": "🌍 Всего кредитов на всех серверах",
 	"REPUTATION": "🎩 Репутация",
-	"REP_POINTS": "**{{points}}** очко(а/ов)",
 	"LEVEL": "📊 Уровень",
 	"EXP": "🔮 Опыт",
-	"BIRTHDATE": "🎂 День рождения",
-	"NO_BIRTHDATE": "День рождения не указан",
+	"BIRTHDATE": "🎂 Дата рождения",
+	"NO_BIRTHDATE": "Дата рождения не указана",
 	"LOVER": "❤ Вторая половинка",
 	"REGISTERED": "📅 Профиль создан",
 	"NO_LOVER": "Свободен",
 	"ACHIEVEMENTS": "🔥 Достижения",
-	"ACHIEVEMENTS_CONTENT": "Получите больше информации с помощью `{{prefix}}achievements`!",
-	"BIO": "🔖 Биография",
-	"YOUR_PROFILE": "Ваш профиль"
+	"ACHIEVEMENTS_CONTENT": "Получите больше информации с помощью `{{prefix}}achievements`!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/rep.json b/languages/ru-RU/economy/rep.json
index a8f62c5b..1612458b 100644
--- a/languages/ru-RU/economy/rep.json
+++ b/languages/ru-RU/economy/rep.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Дать очко репутации кому-либо!",
+	"DESCRIPTION": "Дать очко репутации пользователю!",
 	"USAGE": "{{prefix}}rep [@пользователь]",
 	"EXAMPLES": "{{prefix}}rep @Jonny_Bro#4226",
 	"COOLDOWN": "Необходимо подождать {{time}}, чтобы использовать эту команду!",
diff --git a/languages/ru-RU/economy/rob.json b/languages/ru-RU/economy/rob.json
index 14c4872c..62447b6e 100644
--- a/languages/ru-RU/economy/rob.json
+++ b/languages/ru-RU/economy/rob.json
@@ -1,15 +1,15 @@
 {
-	"DESCRIPTION": "Попробовать ограбить пользователя!",
+	"DESCRIPTION": "Попытаться ограбить пользователя!",
 	"USAGE": "{{prefix}}rob [@пользователь] [сумма]",
 	"EXAMPLES": "{{prefix}}rob @Jonny_Bro#4226 100",
 	"YOURSELF": "Вы не можете ограбить себя!",
 	"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
 	"MISSING_AMOUNT": "Укажите сумму!",
-	"NOT_ENOUGH_AUTHOR": "У вас должно быть хотя бы **{{moneyMin}}** кредит(а/ов), чтобы грабить кого-либо (сейчас у вас **{{moneyCurrent}}** кредитов)!",
-	"NOT_ENOUGH_MEMBER": "Вы не можете ограбить **{{username}}**, потому что у него нет с собой столько кредит(а/ов) !",
+	"NOT_ENOUGH_AUTHOR": "У вас должно быть хотя бы **{{moneyMin}}**, чтобы грабить данного пользователя (сейчас у вас **{{moneyCurrent}}**)!",
+	"NOT_ENOUGH_MEMBER": "Вы не можете ограбить **{{username}}**, потому что у него нет с собой столько кредитов!",
 	"COOLDOWN": "🕵️ **{{username}}** под защитой.... Попробуйте позже!",
-	"ROB_WON_1": "🎉 | Поздравляем! Полиция не смогла остановить вас, поэтому вы успешно украли **{{money}}** кредит(а/ов) у **{{username}}**!",
-	"ROB_WON_2": "😕 | **{{username}}** ? Плохие новости. Вас только что ограбили на **{{money}}** кредит(а/ов)!",
-	"ROB_LOSE_1": "🚔 | Полиция поймала вас. Теперь вы должны заплатить **{{fine}}** кредит(а/ов). **{{offset}}** будет выплачено **{{username}}**.",
-	"ROB_LOSE_2": "🚓 | Плохие новости.... **{{username}}** вовремя позвонил в полицию. Вы должны заплатить **{{fine}}** кредит(а/ов) и **{{offset}}** будет выплачено **{{username}}**."
+	"ROB_WON_1": "🎉 | Поздравляем! Полиция не смогла остановить вас, поэтому вы успешно украли **{{money}}** у **{{username}}**!",
+	"ROB_WON_2": "😕 | **{{username}}**, вы ограбили **{{username}}** на **{{money}}**",
+	"ROB_LOSE_1": "🚔 | Полиция поймала вас. Теперь вы должны заплатить **{{fine}}**. **{{offset}}** будет выплачено **{{username}}**.",
+	"ROB_LOSE_2": "🚓 | Плохие новости... **{{username}}** вовремя позвонил в полицию. Вы должны заплатить **{{fine}}** и **{{offset}}** будет выплачено **{{username}}**."
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/setbio.json b/languages/ru-RU/economy/setbio.json
index 996b768d..4709c085 100644
--- a/languages/ru-RU/economy/setbio.json
+++ b/languages/ru-RU/economy/setbio.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Изменить вашу биографию!",
+	"DESCRIPTION": "Установить биографию!",
 	"USAGE": "{{prefix}}setbio [текст]",
 	"EXAMPLES": "{{prefix}}setbio Меня зовут Жоня, мне 18 и я создатель JaBa :)",
 	"MISSING": "Укажите биографию!",
diff --git a/languages/ru-RU/economy/slots.json b/languages/ru-RU/economy/slots.json
index e6128848..b2838df5 100644
--- a/languages/ru-RU/economy/slots.json
+++ b/languages/ru-RU/economy/slots.json
@@ -1,8 +1,8 @@
 {
-	"DESCRIPTION": "Казино \"JaBa Casino\"",
-	"USAGE": "{{prefix}}slots [сумма]",
+	"DESCRIPTION": "JaBa Casino",
+	"USAGE": "{{prefix}}slots (сумма)",
 	"EXAMPLES": "{{prefix}}slots\n{{prefix}}slots 100",
-	"DEFEAT": "**{{username}}** поставил {{money}} кредит(а/ов) и всё проиграл.",
-	"VICTORY": "**{{username}}** поставил {{money}} кредит(а/ов) и выиграл {{won}} кредит(а/ов)!",
-	"NOT_ENOUGH": "У вас должно быть хотя бы **{{money}}** кредит(а/ов)."
+	"DEFEAT": "**{{username}}** поставил {{money}} и всё проиграл.",
+	"VICTORY": "**{{username}}** поставил {{money}}и выиграл {{won}}!",
+	"NOT_ENOUGH": "У вас должно быть хотя бы **{{money}}**."
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/withdraw.json b/languages/ru-RU/economy/withdraw.json
index eb037933..2d1f95de 100644
--- a/languages/ru-RU/economy/withdraw.json
+++ b/languages/ru-RU/economy/withdraw.json
@@ -4,6 +4,6 @@
 	"EXAMPLES": "{{prefix}}withdraw 100",
 	"MISSING_AMOUNT": "Укажите сумму!",
 	"NO_CREDIT": "Недостаточно кредитов на банковском счёте!",
-	"NOT_ENOUGH": "У вас должно быть хотя бы `{{money}}` кредит(а/ов)!",
-	"SUCCESS": "Вы сняли **{{money}}** кредит(а/ов)!"
+	"NOT_ENOUGH": "У вас должно быть хотя бы `{{money}}`!",
+	"SUCCESS": "Вы сняли **{{money}}**!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/economy/work.json b/languages/ru-RU/economy/work.json
index a6af22f0..80bfff69 100644
--- a/languages/ru-RU/economy/work.json
+++ b/languages/ru-RU/economy/work.json
@@ -3,9 +3,9 @@
 	"USAGE": "{{prefix}}work",
 	"EXAMPLES": "{{prefix}}work",
 	"COOLDOWN": "Вы должны подождать {{time}}, чтобы снова поработать!",
-	"AWARD": "Закончите слово AWARD чтобы получить 200 кредитов!",
+	"AWARD": "Закончите слово AWARD чтобы получить 200 дополнительных кредитов!",
 	"SALARY": "Зарплата",
-	"SALARY_CONTENT": "Вы получили {{won}} кредитов!",
+	"SALARY_CONTENT": "Вы получили {{won}}!",
 	"STREAK": "Серия",
 	"STREAK_CONTENT": "🎉 Вы получили 200 дополнительных кредитов!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/fun/ascii.json b/languages/ru-RU/fun/ascii.json
index d08d853e..2aba0e83 100644
--- a/languages/ru-RU/fun/ascii.json
+++ b/languages/ru-RU/fun/ascii.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Превратить текст в ASCII!",
+	"DESCRIPTION": "Превратить текст в ASCII код!",
 	"USAGE": "{{prefix}}ascii [текст]",
 	"EXAMPLES": "{{prefix}}ascii Hello world!",
 	"TEXT_MISSING": "Введите текст (не больше 20 символов)!"
diff --git a/languages/ru-RU/fun/choice.json b/languages/ru-RU/fun/choice.json
index a853faf0..e9fb2798 100644
--- a/languages/ru-RU/fun/choice.json
+++ b/languages/ru-RU/fun/choice.json
@@ -1,9 +1,9 @@
 {
-	"DESCRIPTION": "Помогает с выбором!",
+	"DESCRIPTION": "Я могу помочь вам с выбором!",
 	"USAGE": "{{prefix}}choice [вариант1/вариант2/вариант3/вариант4...]",
 	"EXAMPLES": "{{prefix}}choice Вода/Огонь/Ветер",
 	"MISSING": "Укажите больше двух вариантов!\n(либо используйте команду `flip`)",
-	"EMPTY": "Кажется один из вариантов пустой.... Попробуйте ещё раз!",
+	"EMPTY": "Кажется один из вариантов отсутствует... Попробуйте ещё раз!",
 	"PROGRESS": "Выбираю...",
-	"DONE": "Мой выбор:"
+	"DONE": "Я выбрал:"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/fun/fml.json b/languages/ru-RU/fun/fml.json
index 7912b943..a14b0cca 100644
--- a/languages/ru-RU/fun/fml.json
+++ b/languages/ru-RU/fun/fml.json
@@ -2,5 +2,5 @@
 	"DESCRIPTION": "Получить случайный FML",
 	"USAGE": "{{prefix}}fml",
 	"EXAMPLES": "{{prefix}}fml",
-	"FOOTER": "blague.xyz | By Skiz#0001"
+	"FOOTER": "JaBa | blague.xyz"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/fun/joke.json b/languages/ru-RU/fun/joke.json
index a0e54443..7fb2ea27 100644
--- a/languages/ru-RU/fun/joke.json
+++ b/languages/ru-RU/fun/joke.json
@@ -2,5 +2,5 @@
 	"DESCRIPTION": "Получить случайную шутку!",
 	"USAGE": "{{prefix}}joke",
 	"EXAMPLES": "{{prefix}}joke",
-	"FOOTER": "blague.xyz | By Skiz#0001"
+	"FOOTER": "JaBa | blague.xyz"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/fun/lovecalc.json b/languages/ru-RU/fun/lovecalc.json
index 3824d0f8..16c429ed 100644
--- a/languages/ru-RU/fun/lovecalc.json
+++ b/languages/ru-RU/fun/lovecalc.json
@@ -3,5 +3,5 @@
 	"USAGE": "{{prefix}}lovecalc [@пользователь1] (@пользователь2)",
 	"EXAMPLES": "{{prefix}}lovecalc @Jonny_Bro#4226\n{{prefix}}lovecalc @Jonny_Bro#4226 @JaBa#9042",
 	"MISSING": "Вы должны упомянуть одного или двух пользователей!",
-	"CONTENT": "Я думаю, что **{{firstUsername}}** на **{{percent}}%** любит **{{secondUsername}}**!\n**Поздравляю!**"
+	"CONTENT": "Я думаю, что **{{firstUsername}}** на **{{percent}}%** любит **{{secondUsername}}**!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/fun/number.json b/languages/ru-RU/fun/number.json
index 14dd5e3c..e599c8e1 100644
--- a/languages/ru-RU/fun/number.json
+++ b/languages/ru-RU/fun/number.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Угадай загаданное число!",
+	"DESCRIPTION": "Угадай загаданное мною число!",
 	"USAGE": "{{prefix}}number",
 	"EXAMPLES": "{{prefix}}number",
 	"GAME_START": "Я загадал число, начинайте!",
diff --git a/languages/ru-RU/general/activity.json b/languages/ru-RU/general/activity.json
index 51e71dd2..0a9e49b6 100644
--- a/languages/ru-RU/general/activity.json
+++ b/languages/ru-RU/general/activity.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Создать активность в канале!",
+	"DESCRIPTION": "Создать активность в голосовом канале!",
 	"USAGE": "{{prefix}}activity (активность)",
 	"EXAMPLES": "{{prefix}}activity\n{{prefix}}activity chess",
 	"TITLE": "Список доступных активностей",
diff --git a/languages/ru-RU/general/calc.json b/languages/ru-RU/general/calc.json
deleted file mode 100644
index 6d20dfc7..00000000
--- a/languages/ru-RU/general/calc.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-	"DESCRIPTION": "Вычислить данное выражени!",
-	"USAGE": "{{prefix}}calc [выражение]",
-	"EXAMPLES": "{{prefix}}10*5+sin(3)\n{{prefix}}calc 10cm в m",
-	"MISSING_CALC": "Введите выражение!",
-	"INVALID_CALC": "Введите **верное** выражение!",
-	"TITLE": "Калькулятор",
-	"CALCULATION": "Выражение",
-	"RESULT": "Результат"
-}
\ No newline at end of file
diff --git a/languages/ru-RU/general/fortnite.json b/languages/ru-RU/general/fortnite.json
index b98a4675..d51da258 100644
--- a/languages/ru-RU/general/fortnite.json
+++ b/languages/ru-RU/general/fortnite.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Показать статистику игрока в Fortnite!",
+	"DESCRIPTION": "Показать статистику игрока Fortnite!",
 	"USAGE": "{{prefix}}fortnite [PSN/XBL/PC] [ник]",
 	"EXAMPLES": "{{prefix}}fortnite PC Ninja",
 	"MISSING_PLATFORM": "Выберите платформу: `PSN`, `PC` или `XBL` (без учёта регистра)!",
diff --git a/languages/ru-RU/general/fortniteshop.json b/languages/ru-RU/general/fortniteshop.json
index 61253de5..e9548ab1 100644
--- a/languages/ru-RU/general/fortniteshop.json
+++ b/languages/ru-RU/general/fortniteshop.json
@@ -1,10 +1,10 @@
 {
-	"DESCRIPTION": "Показать ежедневный Fortnite магазин!",
+	"DESCRIPTION": "Показать ежедневный магазин Fortnite!",
 	"USAGE": "{{prefix}}fortniteshop",
 	"EXAMPLES": "{{prefix}}fortniteshop",
 	"HEADER": "Магазин предметов FORTNITE",
 	"DAILY": "Ежедневное",
 	"FEATURED": "Предлагаемые",
 	"DATE": "Магазин от {{date}}",
-	"FOOTER": "Fortnite магазин | JaBa"
+	"FOOTER": "JaBa | Магазин Fortnite"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/general/help.json b/languages/ru-RU/general/help.json
index ef6f360a..f413c4d7 100644
--- a/languages/ru-RU/general/help.json
+++ b/languages/ru-RU/general/help.json
@@ -8,11 +8,11 @@
 	"FIELD_DESCRIPTION": "Описание",
 	"FIELD_ALIASES": "Сокращения",
 	"FIELD_EXAMPLES": "Примеры",
-	"FIELD_PERMISSIONS": "Необходимые права",
 	"NO_ALIAS": "Нет сокращений",
 	"CMD_TITLE": "{{prefix}}{{cmd}} help",
 	"INFO": "● Чтобы получить помощь по определённой команде используйте `{{prefix}}help <команда>`!",
 	"CUSTOM_COMMANDS": "Добавленная команда",
-	"TITLE": "{{name}} | Команды",
-	"NO_REQUIRED_PERMISSION": "Никаких особых прав не нужно для использования данной команды."
+	"FIELD_PERMISSIONS": "Необходимые права",
+	"NO_REQUIRED_PERMISSION": "Никаких особых прав не нужно для использования данной команды.",
+	"TITLE": "{{name}} | Команды"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/general/invitations.json b/languages/ru-RU/general/invitations.json
index da3aedd6..4d7ca50c 100644
--- a/languages/ru-RU/general/invitations.json
+++ b/languages/ru-RU/general/invitations.json
@@ -1,9 +1,9 @@
 {
-	"DESCRIPTION": "Показать кол-во пользователей которых вы или другой пользователь пригласили на сервер!",
+	"DESCRIPTION": "Показать кол-во пользователей которых пользователь пригласил на сервер!",
 	"USAGE": "{{prefix}}invitations (@пользователь)",
 	"EXAMPLES": "{{prefix}}invitations\n{{prefix}}invitations @Jonny_Bro#4226",
 	"NOBODY_AUTHOR": "Вы никого не пригласили на сервер!",
-	"NOBODY_MEMBER": "{{member}} никого не приглашал на сервер!",
+	"NOBODY_MEMBER": "{{member}} никого не приглашал(а) на сервер!",
 	"CODE": "**{{code}}** ({{uses}} использований) | {{channel}}",
 	"TITLE": "Информация о {{member}} на сервере {{guild}}",
 	"FIELD_INVITED": "👥 Приглашённых участников",
diff --git a/languages/ru-RU/general/permissions.json b/languages/ru-RU/general/permissions.json
index 86ca1836..a0234c70 100644
--- a/languages/ru-RU/general/permissions.json
+++ b/languages/ru-RU/general/permissions.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Показать права пользователя на сервере",
+	"DESCRIPTION": "Показать права пользователя",
 	"USAGE": "{{prefix}}permissions (@пользователь)",
 	"EXAMPLES": "{{prefix}}permissions\n{{prefix}}permissions @Jonny_Bro#4226",
 	"TITLE": "Права {{user}} в канале {{channel}}"
diff --git a/languages/ru-RU/general/quote.json b/languages/ru-RU/general/quote.json
index 2c8a2a87..13feca14 100644
--- a/languages/ru-RU/general/quote.json
+++ b/languages/ru-RU/general/quote.json
@@ -1,6 +1,6 @@
 {
-	"DESCRIPTION": "Процитировать сообщение в текущий канал!",
-	"USAGE": "{{prefix}}quote [ID-сообщения] [канал]",
+	"DESCRIPTION": "Процитировать сообщение в канал!",
+	"USAGE": "{{prefix}}quote [ID-сообщения] (канал)",
 	"EXAMPLES": "{{prefix}}quote 596018101921906698\n{{prefix}}quote 596018101921906698 573508780520898581\n{{prefix}}quote 596018101921906698 #основной",
 	"NO_MESSAGE_ID": "Нет сообщений с данным ID.",
 	"NO_CHANNEL_ID": "Нет канала с данным ID или названием.",
diff --git a/languages/ru-RU/general/report.json b/languages/ru-RU/general/report.json
index 5f44d9d8..d344dbaf 100644
--- a/languages/ru-RU/general/report.json
+++ b/languages/ru-RU/general/report.json
@@ -1,6 +1,6 @@
 {
-	"DESCRIPTION": "Отправить жалобу в спец. канал!",
-	"USAGE": "{{prefix}}report [@пользователь] [причина]",
+	"DESCRIPTION": "Отправить жалобу в специальный канал!",
+	"USAGE": "{{prefix}}report [@пользователь] (причина)",
 	"EXAMPLES": "{{prefix}}report @Jonny_Bro#4226 Нарушение правил",
 	"MISSING_CHANNEL": "Канал для жалоб не настроен!",
 	"MISSING_REASON": "Введите причину!",
diff --git a/languages/ru-RU/general/serverinfo.json b/languages/ru-RU/general/serverinfo.json
index cc5b9c98..3889825f 100644
--- a/languages/ru-RU/general/serverinfo.json
+++ b/languages/ru-RU/general/serverinfo.json
@@ -1,13 +1,8 @@
 {
 	"DESCRIPTION": "Показать информацию о сервере!",
-	"USAGE": "{{prefix}}serverinfo [ID/Название]",
+	"USAGE": "{{prefix}}serverinfo [ID/название]",
 	"EXAMPLES": "{{prefix}}serverinfo кык\n{{prefix}}serverinfo",
 	"AFK_CHANNEL": "AFK канал",
 	"NO_AFK_CHANNEL": "Нет AFK канала",
-	"MEMBERS": "{{count}} участник(а/ов)",
-	"BOTS": "{{count}} бот(а/ов)",
-	"BOOSTS": "Кол-во бустов",
-	"TEXT_CHANNELS": "{{count}} текстовых каналов",
-	"VOICE_CHANNELS": "{{count}} голосовых каналов",
-	"CAT_CHANNELS": "{{count}} категорий"
+	"BOOSTS": "Кол-во бустов"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/general/setafk.json b/languages/ru-RU/general/setafk.json
index 8228663e..cf7d0e02 100644
--- a/languages/ru-RU/general/setafk.json
+++ b/languages/ru-RU/general/setafk.json
@@ -1,9 +1,9 @@
 {
-	"DESCRIPTION": "Стать AFK (пользователь который упомянет вас получит сообщение)",
+	"DESCRIPTION": "Установить AFK статус (пользователь который упомянет вас получит сообщение)",
 	"USAGE": "{{prefix}}setafk [причина]",
 	"EXAMPLES": "{{prefix}}setafk Сру =)",
 	"MISSING_REASON": "Укажите причину AFK!",
-	"SUCCESS": "Теперь вы AFK (причина: {{reason}})",
+	"SUCCESS": "Теперь вы AFK по причине: {{reason}}",
 	"DELETED": "**{{username}}**, ваш AFK статус удалён!",
 	"IS_AFK": "**{{user}}** сейчас AFK, причина:\n```{{reason}}```"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/general/shorturl.json b/languages/ru-RU/general/shorturl.json
index e4a2c52e..3cd98215 100644
--- a/languages/ru-RU/general/shorturl.json
+++ b/languages/ru-RU/general/shorturl.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Сделать ссылку короче!",
+	"DESCRIPTION": "Укоротить ссылку!",
 	"USAGE": "{{prefix}}shorturl [URL]",
 	"EXAMPLES": "{{prefix}}shorturl https://google.com",
 	"MISSING_URL": "Введите ссылку!"
diff --git a/languages/ru-RU/general/staff.json b/languages/ru-RU/general/staff.json
index c6d720c9..bf89443e 100644
--- a/languages/ru-RU/general/staff.json
+++ b/languages/ru-RU/general/staff.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Показать список персонала сервера!",
+	"DESCRIPTION": "Показать список администрации сервера!",
 	"USAGE": "{{prefix}}staff",
 	"EXAMPLES": "{{prefix}}staff",
 	"TITLE": "Персонал {{guild}}",
diff --git a/languages/ru-RU/general/suggest.json b/languages/ru-RU/general/suggest.json
index 3a476106..cd86e3f4 100644
--- a/languages/ru-RU/general/suggest.json
+++ b/languages/ru-RU/general/suggest.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Отправить предложение в спец. канал!",
+	"DESCRIPTION": "Отправить предложение в специальный канал!",
 	"USAGE": "{{prefix}}suggest [предложение]",
 	"EXAMPLES": "{{prefix}}suggest Новый канал #nsfw :smiling_imp:",
 	"MISSING_CHANNEL": "Канал для предложений не настроен!",
diff --git a/languages/ru-RU/general/translate.json b/languages/ru-RU/general/translate.json
index 54dcf4ce..38e1d06e 100644
--- a/languages/ru-RU/general/translate.json
+++ b/languages/ru-RU/general/translate.json
@@ -1,6 +1,6 @@
 {
 	"DESCRIPTION": "Перевести текст!",
-	"USAGE": "{{prefix}}translate [язык] [текс]",
+	"USAGE": "{{prefix}}translate [язык] [текст]",
 	"EXAMPLES": "{{prefix}}translate english Как дела?",
 	"LIST_SENT": "Список языков отправлен вам в ЛС!",
 	"MISSING_LANGUAGE": "Укажите язык! Чтобы получить список языков, введите `{{prefix}}translate langs-list`!",
diff --git a/languages/ru-RU/misc.json b/languages/ru-RU/misc.json
index 07a2bd2b..d28df334 100644
--- a/languages/ru-RU/misc.json
+++ b/languages/ru-RU/misc.json
@@ -1,30 +1,98 @@
 {
-	"ERR_OCCURRED": "Что-то пошло не так... Пожалуйста, попробуйте позже!",
-	"PLEASE_WAIT": "Пожалуйста подождите...",
+	"ERR_OCCURRED": "Что-то пошло не так... Попробуйте позже!",
+	"PLEASE_WAIT": "Подождите...",
 	"COMMAND_DISABLED": "Эта команда на данный момент отключена!",
 	"CLICK_HERE": "Нажмите сюда, чтобы начать {{activity}} в {{channel}}",
-	"TIMES_UP": "Время вышло! Пожалуйста, используйте команду снова!",
-	"INVALID_YES_NO": "Отправьте \"да\" или \"нет\" (регистр не важен)!",
-	"INVALID_CHANNEL": "Пожалуйста, укажите существующий канал!",
+	"TIMES_UP": "Время вышло! Используйте команду снова!",
+	"INVALID_YES_NO": "Отправьте `да` или `нет` (регистр не важен)!",
+	"INVALID_CHANNEL": "Укажите существующий канал!",
 	"INVALID_TIME": "Укажите действительное время! Доступные единицы: `s`, `m`, `h` или `d`",
-	"INVALID_NUMBER": "Пожалуйста, укажите число!",
+	"INVALID_NUMBER": "Укажите число!",
 	"INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**!",
 	"STATS_FOOTER": "● [Панель управления]({{dashboardLink}})\n● [Поддержать]({{donateLink}}) (для других способов пишите в ЛС <@{{owner}}>)",
-	"BOT_USER": "Этот пользователь бот!",
-	"NO_PERMS": "Вы должны быть администратором или модератором для выполнения этого действия!",
+	"BOT_USER": "Этот пользователь - бот!",
+	"NO_PERMS": "Вы должны быть администратором или модератором для выполнения данного действия!",
 	"NO_REASON_PROVIDED": "Причина не указана",
 	"NO_USER_FOUND_ID": "Пользователя с ID `{{id}}` не существует!",
-	"VOTE_DM": "⬆️ Привет, {{user}}, спасибо за голос!\nВот твоя награда: 40 кредитов (на сервере поддержки)!",
-	"VOTE_LOGS": "⬆️ **{{usertag}}** (`{{userid}}`) проголосовал за **JaBa** и получил **40** кредитов, спасибо!\n",
+	"VOTE_DM": "⬆️ Привет, {{user}}, спасибо за голос!\nТвоя награда - 50 кредитов (на сервере поддержки)!",
+	"VOTE_LOGS": "⬆️ **{{usertag}}** (`{{userid}}`) проголосовал за **JaBa** и получил **50** кредитов, спасибо!\n",
 	"HELLO_SERVER": "Привет, **{{username}}**, мой префикс на данном сервере - `{{prefix}}`. Используйте `{{prefix}}help`, чтобы получить список команд!",
-	"HELLO_DM": "Привет, **{{username}}**, т.к. вы пишете в ЛС, вам не нужно использовать префикс перед командами.",
+	"HELLO_DM": "Привет, так как вы пишите в ЛС, вам не нужно использовать префикс перед командами.",
 	"GUILD_ONLY": "Данную команду можно использовать только на сервере!",
 	"MISSING_BOT_PERMS": "Мне необходимы следующие права для выполнения данной команды: {{list}}",
-	"MISSING_MEMBER_PERMS": "Вам необходимы данные права для выполнения данной команды: {{list}}",
+	"MISSING_MEMBER_PERMS": "Вам необходимы следующие права для выполнения данной команды: {{list}}",
 	"RESTRICTED_CHANNEL": "Использование команд в {{channel}} запрещено!",
-	"EVERYONE_MENTION": "Вы не можете упоминать @everyone или @here в данной команде.",
-	"NSFW_COMMAND": "Используйте эту команду в NSFW канале!",
-	"OWNER_ONLY": "Только владелец бота может использовать эту команду!",
-	"COOLDOWNED": "Подождите **{{seconds}}** секунд(у/ы), чтобы снова использовать эту команду!",
-	"CANNOT_DM": "Я не могу отправить вам личное сообщение... Пожалуйста, проверьте свои настройки конфиденциальности!"
+	"EVERYONE_MENTION": "Вы не имеете прав для упоминания here и everyone.",
+	"NSFW_COMMAND": "Данную команду можно использовать только в NSFW канале!",
+	"OWNER_ONLY": "Данную команду может использовать только владелец бота!",
+	"COOLDOWNED": "Подождите **{{seconds}}**, чтобы снова использовать эту команду!",
+	"CANNOT_DM": "Я не могу отправить вам личное сообщение... Проверьте свои настройки конфиденциальности!",
+
+	"NOUNS": {
+		"CREDIT": {
+			"1": "кредит",
+			"2": "кредита",
+			"5": "кредитов"
+		},
+		"CREDITS": {
+			"1": "кредита",
+			"2": "кредитов",
+			"5": "кредитов"
+		},
+		"POINTS": {
+			"1": "очко",
+			"2": "очка",
+			"5": "очков"
+		},
+		"MEMBERS": {
+			"1": "участник",
+			"2": "участника",
+			"5": "участников"
+		},
+		"BOTS": {
+			"1": "бот",
+			"2": "бота",
+			"5": "ботов"
+		},
+		"TEXT": {
+			"1": "текстовый канал",
+			"2": "текстовых каналов",
+			"5": "текстовых каналов"
+		},
+		"VOICE": {
+			"1": "голосовой канал",
+			"2": "голосовых каналов",
+			"5": "голосовых каналов"
+		},
+		"CATEGORY": {
+			"1": "категория",
+			"2": "категории",
+			"5": "категорий"
+		},
+		"MESSAGES": {
+			"1": "сообщение",
+			"2": "сообщения",
+			"5": "сообщений"
+		},
+		"WARNS": {
+			"1": "предупреждение",
+			"2": "предупреждения",
+			"5": "предупреждений"
+		},
+		"SECONDS": {
+			"1": "секунду",
+			"2": "секунды",
+			"5": "секунд"
+		},
+		"SERVERS": {
+			"1": "сервер",
+			"2": "сервера",
+			"5": "серверов"
+		},
+		"AGE": {
+			"1": "год",
+			"2": "года",
+			"5": "лет"
+		}
+	}
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/announcement.json b/languages/ru-RU/moderation/announcement.json
index 6057eab6..8d339711 100644
--- a/languages/ru-RU/moderation/announcement.json
+++ b/languages/ru-RU/moderation/announcement.json
@@ -5,6 +5,6 @@
 	"MISSING_TEXT": "Укажите текст!",
 	"TOO_LONG": "Текст должен быть короче 1030 символов!",
 	"MENTION_PROMPT": "Хотите добавить упоминание к вашему сообщению?\nОтправьте `да` или `нет`!",
-	"MENTION_TYPE_PROMPT": "Выберите упоминание *@*everyone написав `every`, либо *@*here написав `here`!",
+	"MENTION_TYPE_PROMPT": "Выберите упоминание *@*everyone написав `everyone`, либо *@*here написав `here`!",
 	"TITLE": "📢 Объявление:"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/ban.json b/languages/ru-RU/moderation/ban.json
index c330c262..1def06de 100644
--- a/languages/ru-RU/moderation/ban.json
+++ b/languages/ru-RU/moderation/ban.json
@@ -9,5 +9,5 @@
 	"MISSING_PERM": "Произошла ошибка... Проверьте, есть ли у вас право банить пользователей и попробуйте снова!",
 	"BANNED_DM": "Привет {{username}},\nвы были забанены на сервере **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
 	"BANNED": "**{{username}}** был забанен на сервере **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
-	"CASE": "Бан | Случай #{{count}}"
+	"CASE": "Бан | Номер #{{count}}"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/checkinvites.json b/languages/ru-RU/moderation/checkinvites.json
index f76f1bd9..bbc2e41f 100644
--- a/languages/ru-RU/moderation/checkinvites.json
+++ b/languages/ru-RU/moderation/checkinvites.json
@@ -1,6 +1,6 @@
 {
-	"DESCRIPTION": "Проверить, есть ли у пользователя ссылка-приглашение в статусе!",
+	"DESCRIPTION": "Проверить пользователей на наличие ссылок-приглашений в статусе!",
 	"USAGE": "{{prefix}}checkinvites",
 	"EXAMPLES": "{{prefix}}checkinvites",
-	"NOBODY": "Нет ссылок-приглашений в статусе!"
+	"NOBODY": "Ни у кого нет ссылок-приглашений в статусе!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/clear.json b/languages/ru-RU/moderation/clear.json
index 28d61cec..aabaaed2 100644
--- a/languages/ru-RU/moderation/clear.json
+++ b/languages/ru-RU/moderation/clear.json
@@ -1,10 +1,10 @@
 {
-	"DESCRIPTION": "Быстро удалить несколько сообщений!",
+	"DESCRIPTION": "Удалить сообщения!",
 	"USAGE": "{{prefix}}clear [кол-во_сообщений] (@пользователь)",
 	"EXAMPLES": "{{prefix}}clear 10\n{{prefix}}clear 10 @Jonny_Bro#4226\n{{prefix}}clear all",
 	"MISSING_AMOUNT": "Укажите кол-во сообщений для удаления!",
 	"ALL_CONFIRM": "Все сообщения в канале будут удалены! Введите `confirm` для подтверждения",
 	"CHANNEL_CLEARED": "Канал очищен!",
-	"CLEARED": "**{{amount}}** сообщений было удалено!",
-	"CLEARED_MEMBER": "**{{amount}}** сообщений от **{{username}}** было удалено!"
+	"CLEARED": "**{{amount}}** было удалено!",
+	"CLEARED_MEMBER": "**{{amount}}** от **{{username}}** было удалено!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/clearsanctions.json b/languages/ru-RU/moderation/clearsanctions.json
index b1bc44fa..fc9fe05a 100644
--- a/languages/ru-RU/moderation/clearsanctions.json
+++ b/languages/ru-RU/moderation/clearsanctions.json
@@ -1,7 +1,7 @@
 {
 	"DESCRIPTION": "Снять все предупреждения с пользователя!",
-	"USAGE": "{{prefix}}clear-sanctions [@пользователь]",
-	"EXAMPLES": "{{prefix}}clear-sanctions @Jonny_Bro#4226",
+	"USAGE": "{{prefix}}clearsanctions [@пользователь]",
+	"EXAMPLES": "{{prefix}}clearsanctions @Jonny_Bro#4226",
 	"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
 	"SUCCESS": "Предупреждения пользователя **{{username}}** удалены!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/giveaway.json b/languages/ru-RU/moderation/giveaway.json
index 4336f766..2edac8f7 100644
--- a/languages/ru-RU/moderation/giveaway.json
+++ b/languages/ru-RU/moderation/giveaway.json
@@ -3,11 +3,11 @@
 	"USAGE": "{{prefix}}giveaway [create/reroll/delete/end] (время) (кол-во победителей) (приз)",
 	"EXAMPLES": "{{prefix}}giveaway create 10m 2 100 рублей на карту!\n{{prefix}}giveaway reroll 597812898022031374",
 	"MISSING_STATUS": "Выберите действие: `create`, `reroll`, `end` или `delete`!",
-	"INVALID_CREATE": "Укажите параметры так: \n\n`{{prefix}}giveaway create [время] [кол-во победителей] [приз]`",
+	"INVALID_CREATE": "Какой-то из аргументов указан неверно, попробуйте снова!",
 	"MISSING_ID": "Укажите ID сообщения раздачи!",
 	"NOT_FOUND": "Раздач с ID `{{messageID}}` не найдено",
 	"NOT_FOUND_ENDED": "**Оконченных** раздач с ID `{{messageID}} не найдено`",
-	"MAX_DURATION": "Максимальная длительность раздачи 15 дней.",
+	"MAX_DURATION": "Максимальная длительность раздачи - 15 дней.",
 	"MAX_COUNT": "Одновременно можно создать только 4 раздачи.",
 	"TITLE": "🎉🎉 **РАЗДАЧА** 🎉🎉",
 	"ENDED": "🎉🎉 **РАЗДАЧА ОКОНЧЕНА** 🎉🎉",
@@ -22,6 +22,6 @@
 	"REROLL_ERROR": "Нет действительных заявок, никто не выиграл!",
 	"GIVEAWAY_CREATED": "Раздача начата!",
 	"GIVEAWAY_REROLLED": "Раздача перезапущена!",
-	"GIVEAWAY_ENDED": "Раздача закончится через 15 секунд!",
+	"GIVEAWAY_ENDED": "Раздача закончится через несколько секунд!",
 	"GIVEAWAY_DELETED": "Раздача удалена!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/kick.json b/languages/ru-RU/moderation/kick.json
index 171186d7..7dfda59c 100644
--- a/languages/ru-RU/moderation/kick.json
+++ b/languages/ru-RU/moderation/kick.json
@@ -7,5 +7,5 @@
 	"MISSING_PERM": "Произошла ошибка... Проверьте, есть ли у вас право кикать пользователей и попробуйте снова!",
 	"KICKED_DM": "Привет {{username}},\nвы были кикнуты с сервера **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
 	"KICKED": "**{{username}}** был кикнут с сервера **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
-	"CASE": "Кик | Случай #{{count}}"
+	"CASE": "Кик | Номер #{{count}}"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/mute.json b/languages/ru-RU/moderation/mute.json
index 222ad86d..5f8408e2 100644
--- a/languages/ru-RU/moderation/mute.json
+++ b/languages/ru-RU/moderation/mute.json
@@ -5,5 +5,5 @@
 	"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
 	"MUTED_DM": "Привет {{username}},\nвы были замучены на сервере **{{server}}** пользователем **{{moderator}}** на **{{time}}** по причине **{{reason}}**!",
 	"MUTED": "**{{username}}** замучен на **{{time}}** по причине **{{reason}}**!",
-	"CASE": "Мут | Случай #{{count}}"
+	"CASE": "Мут | Номер #{{count}}"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/setwarns.json b/languages/ru-RU/moderation/setwarns.json
index 9961701e..f03cf2e8 100644
--- a/languages/ru-RU/moderation/setwarns.json
+++ b/languages/ru-RU/moderation/setwarns.json
@@ -3,10 +3,10 @@
 	"USAGE": "{{prefix}}setwarns [kick/ban] [число/reset]",
 	"EXAMPLES": "{{prefix}}setwarns kick 5\n{{prefix}}setwarns ban 10\n{{prefix}}setwarns ban reset",
 	"MISSING_TYPE": "Выберите действие: `kick` или `ban`",
-	"SUCCESS_KICK": "** `{{count}}` предупреждений приведут к кику!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
-	"SUCCESS_BAN": "** `{{count}}` предупреждений приведут к бану!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
+	"SUCCESS_KICK": "`{{count}}` приведут к кику!\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
+	"SUCCESS_BAN": "`{{count}}` приведут к бану!\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
 	"SUCCESS_KICK_RESET": "**Автокик пользователей отключён!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
 	"SUCCESS_BAN_RESET": "**Автобан пользователей отключён!**\n\n:arrow_right_hook: *Используйте `{{prefix}}configuration`, чтобы увидеть обновлённые настройки!*",
-	"AUTO_BAN": "**{{username}}** был автоматически забанен за достижение **{{count}}** предупреждений!",
-	"AUTO_KICK": "**{{username}}** был автоматически кикнут за достижение **{{count}}** предупреждений!"
+	"AUTO_BAN": "**{{username}}** был автоматически забанен за достижение {{count}}!",
+	"AUTO_KICK": "**{{username}}** был автоматически кикнут за достижение {{count}}!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/unmute.json b/languages/ru-RU/moderation/unmute.json
index c4214c9a..7f4734e7 100644
--- a/languages/ru-RU/moderation/unmute.json
+++ b/languages/ru-RU/moderation/unmute.json
@@ -5,5 +5,5 @@
 	"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
 	"NOT_MUTED": "**{{username}}** не замучен на данном сервере!",
 	"SUCCESS": "**{{username}}** был размучен на данном сервере!",
-	"SUCCESS_CASE": "{{user}} (`{{usertag}}`) размучен! (случай мута: #{{count}})"
+	"SUCCESS_CASE": "{{user}} (`{{usertag}}`) размучен! (Номер #{{count}})"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/moderation/warn.json b/languages/ru-RU/moderation/warn.json
index bbef0369..75ebc123 100644
--- a/languages/ru-RU/moderation/warn.json
+++ b/languages/ru-RU/moderation/warn.json
@@ -1,11 +1,11 @@
 {
 	"DESCRIPTION": "Выдать предупреждение пользователю в ЛС",
-	"USAGE": "{{prefix}}warn [@пользователь] [причина]",
+	"USAGE": "{{prefix}}warn [@пользователь] (причина)",
 	"EXAMPLES": "{{prefix}}warn @Jonny_Bro#4226 stupid",
 	"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
 	"YOURSELF": "Вы не можете подать жалобу на себя!",
 	"MISSING_REASON": "Укажите причину!",
 	"WARNED_DM": "Привет {{username}},\nвы получили предупреждение на сервере **{{server}}** от пользователя **{{moderator}}** по причине **{{reason}}**!",
 	"WARNED": "**{{username}}** получил предупреждение в ЛС по причине **{{reason}}**!",
-	"CASE": "Предупрежение | Случай #{{caseNumber}}"
+	"CASE": "Предупрежение | Номер #{{caseNumber}}"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/music/autoplay.json b/languages/ru-RU/music/autoplay.json
index dbf0b9a1..1fb9cfeb 100644
--- a/languages/ru-RU/music/autoplay.json
+++ b/languages/ru-RU/music/autoplay.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Включить или отключить автовоспроизведение",
 	"USAGE": "{{prefix}}autoplay",
 	"EXAMPLES": "{{prefix}}autoplay",
-	"SUCCESS_ENABLED": "{{success}} Автовоспроизведение включено!",
-	"SUCCESS_DISABLED": "{{success}} Автовоспроизведение выключено!"
+	"SUCCESS_ENABLED": "Автовоспроизведение включено!",
+	"SUCCESS_DISABLED": "Автовоспроизведение выключено!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/music/filter.json b/languages/ru-RU/music/filter.json
index 55c0ef71..1a671375 100644
--- a/languages/ru-RU/music/filter.json
+++ b/languages/ru-RU/music/filter.json
@@ -1,9 +1,9 @@
 {
-	"DESCRIPTION": "Включить или отключить фильтр",
+	"DESCRIPTION": "Включить или отключить фильтр музыки",
 	"USAGE": "{{prefix}}filter [фильтр]",
 	"EXAMPLES": "{{prefix}}filter vaporwave",
 	"MISSING_FILTER": "Укажите фильтр для его включения! (или отправьте `{{prefix}}filters`, чтобы увидеть статусы фильтров)",
 	"UNKNOWN_FILTER": "Заданный фильтр не существует! Используйте `{{prefix}}filters` чтобы увидеть список фильтров или `{{prefix}}filter off` чтобы отключить все фильтры!",
-	"ADDING_FILTER": "Добавляю фильтры, пожалуйста подождите...",
-	"REMOVING_FILTER": "Удаляю фильтры, пожалуйста подождите..."
+	"ADDING_FILTER": "Добавляю фильтры, подождите...",
+	"REMOVING_FILTER": "Удаляю фильтры, подождите..."
 }
\ No newline at end of file
diff --git a/languages/ru-RU/music/filters.json b/languages/ru-RU/music/filters.json
index ae738e73..a1c0a5a4 100644
--- a/languages/ru-RU/music/filters.json
+++ b/languages/ru-RU/music/filters.json
@@ -3,5 +3,5 @@
 	"USAGE": "{{prefix}}filters",
 	"EXAMPLES": "{{prefix}}filters",
 	"TITLE": "**Фильтры**",
-	"CONTENT": "Вот список всех имеющихся фильтров.\nИспользуйте `{{prefix}}filter`, чтобы изменить статус одного из них."
+	"CONTENT": "Вот список всех имеющихся фильтров.\nИспользуйте `{{prefix}}filter <фильтр>`, чтобы изменить статус одного из них."
 }
\ No newline at end of file
diff --git a/languages/ru-RU/music/jump.json b/languages/ru-RU/music/jump.json
index 0cdbde5d..18ecc043 100644
--- a/languages/ru-RU/music/jump.json
+++ b/languages/ru-RU/music/jump.json
@@ -1,6 +1,6 @@
 {
 	"DESCRIPTION": "Перейти на заданный трек",
-	"USAGE": "{{prefix}}jump [номер-трека]",
+	"USAGE": "{{prefix}}jump [номер]",
 	"EXAMPLES": "{{prefix}}jump 3",
 	"NO_PREV_SONG": "Вы не можете перейти назад, для этого используйте команду `{{prefix}}back`!",
 	"SUCCESS": "Играет выбранный трек!"
diff --git a/languages/ru-RU/music/loop.json b/languages/ru-RU/music/loop.json
index 76c005ef..71e8280c 100644
--- a/languages/ru-RU/music/loop.json
+++ b/languages/ru-RU/music/loop.json
@@ -1,8 +1,7 @@
 {
 	"DESCRIPTION": "Включить или отключить повтор очереди/одного трека!",
-	"USAGE": "{{prefix}}loop [queue/song]",
-	"EXAMPLES": "{{prefix}}loop queue\n{{prefix}}loop song",
-	"NO_ARG": "Выберите: `queue` или `song`!",
+	"USAGE": "{{prefix}}loop",
+	"EXAMPLES": "{{prefix}}loop",
 	"QUEUE": "Повтор очереди **включён**!",
 	"SONG": "Повтор текущего трека **включён**!",
 	"DISABLED": "Повтор **отключён**!"
diff --git a/languages/ru-RU/music/lyrics.json b/languages/ru-RU/music/lyrics.json
index acc5e907..c9aec822 100644
--- a/languages/ru-RU/music/lyrics.json
+++ b/languages/ru-RU/music/lyrics.json
@@ -1,10 +1,10 @@
 {
-	"DESCRIPTION": "Показать слова к песне",
-	"USAGE": "{{prefix}}lyrics [название-трека]",
+	"DESCRIPTION": "Найти текст песни",
+	"USAGE": "{{prefix}}lyrics [название-песни]",
 	"EXAMPLES": "{{prefix}}lyrics Skyfall",
 	"LYRICS_OF": "🎤 Текст {{songName}}",
 	"AND_MORE": "\n**и т.д...**",
 	"CLICK_HERE": "Нажмите сюда, чтобы открыть ссылку на слова к этой песне",
-	"MISSING_SONG_NAME": "Укажите название трека!",
-	"NO_LYRICS_FOUND": "Текста для `{{songName}}` не найдено!"
+	"MISSING_SONG_NAME": "Укажите название песни!",
+	"NO_LYRICS_FOUND": "Текст песни `{{songName}}` не найден!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/music/play.json b/languages/ru-RU/music/play.json
index eb71867d..fd48fb36 100644
--- a/languages/ru-RU/music/play.json
+++ b/languages/ru-RU/music/play.json
@@ -6,9 +6,9 @@
 	"VOICE_CHANNEL_CONNECT": "Я не могу присоедениться к вашему голосовому каналу!",
 	"MISSING_SONG_NAME": "Укажите название трека или ссылку на него!",
 	"RESULTS_FOOTER": "Укажите число от 1 до 10 (без префикса).",
-	"NO_RESULT": "На YouTube ничего не найдено!",
-	"NOW_PLAYING": "Сейчас играет **{{songName}}** :musical_note:",
-	"PLAYING_PLAYLIST": "Начинается воспроизведение плейлиста **{{playlistTitle}}**. {{playlistEmoji}}\nНачато воспроизведение первого трека, **{{songName}}**! :musical_note:",
+	"NO_RESULT": "Ничего не найдено!",
+	"NOW_PLAYING": "Сейчас играет **{{songName}}**",
+	"PLAYING_PLAYLIST": "Начинается воспроизведение плейлиста **{{playlistTitle}}**. {{playlistEmoji}}\nНачато воспроизведение первого трека, **{{songName}}**!",
 	"CANCELLED": "Выбор отменён",
 	"NOT_PLAYING": "На сервере сейчас ничего не воспроизводится.",
 	"QUEUE_ENDED": "Очередь окончена.",
diff --git a/languages/ru-RU/music/skip.json b/languages/ru-RU/music/skip.json
index 8ce5a355..56e6dea9 100644
--- a/languages/ru-RU/music/skip.json
+++ b/languages/ru-RU/music/skip.json
@@ -2,6 +2,6 @@
 	"DESCRIPTION": "Пропустить текущий трек",
 	"USAGE": "{{prefix}}skip",
 	"EXAMPLES": "{{prefix}}skip",
-	"NO_NEXT_SONG": "После текущего трека больше нет треков!",
+	"NO_NEXT_SONG": "Очередь пуста!",
 	"SUCCESS": "Трек пропущен!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/music/stop.json b/languages/ru-RU/music/stop.json
index 1e72f8a4..87378706 100644
--- a/languages/ru-RU/music/stop.json
+++ b/languages/ru-RU/music/stop.json
@@ -2,6 +2,5 @@
 	"DESCRIPTION": "Остановить воспроизведение очереди",
 	"USAGE": "{{prefix}}stop",
 	"EXAMPLES": "{{prefix}}stop",
-	"VOTE_CONTENT": "Отреагируйте 👍, чтобы проголосовать за остановку очереди! Необходимо ещё {{requiredCount}} голосов.",
 	"SUCCESS": "Воспроизведение остановлено!"
 }
\ No newline at end of file
diff --git a/languages/ru-RU/nsfw/hentai.json b/languages/ru-RU/nsfw/hentai.json
index b8bbbf26..f7b4a0cf 100644
--- a/languages/ru-RU/nsfw/hentai.json
+++ b/languages/ru-RU/nsfw/hentai.json
@@ -1,5 +1,5 @@
 {
-	"DESCRIPTION": "Получить гифку NSFW содержания",
+	"DESCRIPTION": "Получить NSFW гифку",
 	"USAGE": "{{prefix}}hentai (категория/help)",
 	"EXAMPLES": "{{prefix}}hentai\n{{prefix}}hentai help",
 	"NOCATEGORY": "Если Вы хотите увидеть что-либо из определённой категории, введите её название после команды.\nИспользуйте **`{{prefix}}hentai help`** чтобы увидеть все категории\n",