update russian lang and some fixes

This commit is contained in:
JonnyBro 2021-12-30 20:03:36 +05:00
parent 034cddfed8
commit a05a2bcf34
109 changed files with 362 additions and 332 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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(() => {

View file

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

View file

@ -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"),

View file

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

View file

@ -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) {

View file

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

View file

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

View file

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

View file

@ -193,11 +193,19 @@
<div class="row">
<div class="col-md-12">
<pre class="brush: html">
-----------------------------------------------------------------------------------------
JaBa v3.1
-----------------------------------------------------------------------------------------
Изменено
- Обновлена русская локализация, исправлены орфографические ошибки.
- Отключёна английская локализация.
- Исправлены ошибки.
-----------------------------------------------------------------------------------------
JaBa v3.0.9
-----------------------------------------------------------------------------------------
Добавлено
- Возвращены поздравленя с днём рождения.
- Возвращены поздравления с днём рождения.
- Команда setbirthdays - установить канал для поздравлений.
Так же его можно изменить из панели управления.

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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!",

View file

@ -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<https://discordbots.org/bot/557445719892688897/vote>",
"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}}",

View file

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

View file

@ -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}}** создана!"
}

View file

@ -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}} не был добавлен. Проверьте, есть ли место для добавления эмодзи!"

View file

@ -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": "Автомодерация отключена на данном сервере!",

View file

@ -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`, чтобы увидеть обновлённые настройки!*"
}

View file

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

View file

@ -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}}** предупреждений.",

View file

@ -2,7 +2,7 @@
"DESCRIPTION": "Удалить свою команду!",
"USAGE": "{{prefix}}delcommand [название]",
"EXAMPLES": "{{prefix}}delcommand hello",
"MISSING_NAME": "Пожалуйста, введите название команды!",
"MISSING_NAME": "Введите название команды!",
"UNKNOWN_COMMAND": "Команда {{commandName}} не существует!",
"SUCCESS": "Команда {{commandName}} была удалена с сервера!"
}

View file

@ -2,7 +2,7 @@
"DESCRIPTION": "Включить или отключить автоудаление команд модерации!",
"USAGE": "{{prefix}}deletemod [on/off]",
"EXAMPLES": "{{prefix}}deletemod on",
"MISSING_STATUS": "Пожалуйста, укажите значение `on` или `off`",
"MISSING_STATUS": "Укажите значение `on` или `off`",
"ENABLED": "Автоудаление команд модерации включено!",
"DISABLED": "Автоудаление команд модерации отключено!"
}

View file

@ -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": "Прощание"
}

View file

@ -2,6 +2,6 @@
"DESCRIPTION": "Установить канал для поздравлений с днём рождения!",
"USAGE": "{{prefix}}setbirthdays (#канал)",
"EXAMPLES": "{{prefix}}setbirthdays #дни-рождения\n{{prefix}}setbirthdays",
"SUCCESS_ENABLED": "Поздравления включены в канале **{{channel}}**!",
"SUCCESS_DISABLED": "Поздравления отключены!"
"ENABLED": "Поздравления включены в канале **{{channel}}**!",
"DISABLED": "Поздравления отключены!"
}

View file

@ -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 магазин отключён!"
}

View file

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

View file

@ -2,6 +2,6 @@
"DESCRIPTION": "Установить канал для логов модерации!",
"USAGE": "{{prefix}}setmodlogs (#канал)",
"EXAMPLES": "{{prefix}}setmodlogs #логи\n{{prefix}}setmodlogs",
"SUCCESS_ENABLED": "Логи модерации включены в канале **{{channel}}**!",
"SUCCESS_DISABLED": "Логи модерации отключены!"
"ENABLED": "Логи модерации включены в канале **{{channel}}**!",
"DISABLED": "Логи модерации отключены!"
}

View file

@ -1,8 +1,8 @@
{
"DESCRIPTION": "Выбрать префикс для сервера!",
"DESCRIPTION": "Установить префикс на сервере!",
"USAGE": "{{prefix}}setprefix [префикс]",
"EXAMPLES": "{{prefix}}setprefix $",
"MISSING_PREFIX": "Пожалуйста, укажите префикс для сервера!",
"TOO_LONG": "Префикс не должен превышать 5и символов!",
"MISSING_PREFIX": "Укажите префикс!",
"TOO_LONG": "Префикс не может быть длиннее 5 символов!",
"SUCCESS": "Префикс бота изменён на `{{prefix}}`!"
}

View file

@ -2,6 +2,6 @@
"DESCRIPTION": "Установить канал для жалоб!",
"USAGE": "{{prefix}}setreports (#канал)",
"EXAMPLES": "{{prefix}}setreports #жалобы\n{{prefix}}setreports",
"SUCCESS_ENABLED": "Жалобы будут отправляться в **{{channel}}**!",
"SUCCESS_DISABLED": "Жалобы отключены!"
"ENABLED": "Жалобы будут отправляться в **{{channel}}**!",
"DISABLED": "Жалобы отключены!"
}

View file

@ -2,6 +2,6 @@
"DESCRIPTION": "Установить канал для предложений!",
"USAGE": "{{prefix}}setsuggests (#канал)",
"EXAMPLES": "{{prefix}}setsuggests #предложения\n{{prefix}}setsuggests",
"SUCCESS_ENABLED": "Предложения будут отправляться в **{{channel}}**!",
"SUCCESS_DISABLED": "Предложения отключены!"
"ENABLED": "Предложения будут отправляться в **{{channel}}**!",
"DISABLED": "Предложения отключены!"
}

View file

@ -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}} перед отправкой следующего сообщения!"
}

View file

@ -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": "Приветствие"

View file

@ -22,7 +22,7 @@
"GAME": "Активность",
"STATUS": "Статус",
"STATUS_ONLINE": "Онлайн",
"STATUS_OFFLINE": "Оффлайн",
"STATUS_OFFLINE": "Не в сети",
"STATUS_IDLE": "Неактивен",
"STATUS_DND": "Не беспокоить",
"ROLE": "Роль",

View file

@ -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": "Управление"
}

View file

@ -2,7 +2,7 @@
"DESCRIPTION": "Показать список ваших достижений!",
"USAGE": "{{prefix}}achievements",
"EXAMPLES": "{{prefix}}achievements",
"SEND_CMD": "Отправьте свою первую команду!",
"SEND_CMD": "Используйте свою первую команду!",
"CLAIM_SALARY": "Получите зарплату 10 раз!",
"MARRY": "Найдите свою половинку и женитесь!",
"SLOTS": "Выиграйте 3 раза подряд в слоты!",

View file

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

View file

@ -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}}** кредитов внесено на ваш банковский счёт!"
}

View file

@ -1,7 +1,7 @@
{
"DESCRIPTION": "Развестись с пользователем, с которым в настоящее время вы состоите в браке!",
"DESCRIPTION": "Развестись с пользователем!",
"USAGE": "{{prefix}}divorce",
"EXAMPLES": "{{prefix}}divorce",
"NOT_MARRIED": "Вы не в браке!",
"NOT_MARRIED": "Вы не состоите в браке!",
"DIVORCED": "Вы развелись с **{{username}}**!"
}

View file

@ -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: Я заметил, что вы онлайн с телефона.... Таблица лидеров может отображаться некорректно на маленьких экранах. Попробуйте переключиться на ландшафтный режим или попробуйте позже с другого устройства!"
}

View file

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

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Показывает ваши(чужие) кредиты",
"DESCRIPTION": "Показать количество кредитов у пользователя",
"USAGE": "{{prefix}}money (@пользователь)",
"EXAMPLES": "{{prefix}}money\n{{prefix}}money @Jonny_Bro#4226",
"TITLE": "Кредиты {{username}}"

View file

@ -6,6 +6,6 @@
"BOT_USER": "Ботам не нужны деньги!",
"YOURSELF": "Вы не можете заплатить самому себе!",
"INVALID_AMOUNT": "Укажите сумму",
"ENOUGH_MONEY": "У вас нет **{{amount}}** кредит(а/ов)",
"SUCCESS": "Вы дали **{{amount}}** кредит(а/ов) пользователю **{{username}}**!"
"ENOUGH_MONEY": "У вас нет **{{amount}}**",
"SUCCESS": "Вы отправили **{{amount}}** пользователю **{{username}}**!"
}

View file

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

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Дать очко репутации кому-либо!",
"DESCRIPTION": "Дать очко репутации пользователю!",
"USAGE": "{{prefix}}rep [@пользователь]",
"EXAMPLES": "{{prefix}}rep @Jonny_Bro#4226",
"COOLDOWN": "Необходимо подождать {{time}}, чтобы использовать эту команду!",

View file

@ -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}}**."
}

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Изменить вашу биографию!",
"DESCRIPTION": "Установить биографию!",
"USAGE": "{{prefix}}setbio [текст]",
"EXAMPLES": "{{prefix}}setbio Меня зовут Жоня, мне 18 и я создатель JaBa :)",
"MISSING": "Укажите биографию!",

View file

@ -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}}**."
}

View file

@ -4,6 +4,6 @@
"EXAMPLES": "{{prefix}}withdraw 100",
"MISSING_AMOUNT": "Укажите сумму!",
"NO_CREDIT": "Недостаточно кредитов на банковском счёте!",
"NOT_ENOUGH": "У вас должно быть хотя бы `{{money}}` кредит(а/ов)!",
"SUCCESS": "Вы сняли **{{money}}** кредит(а/ов)!"
"NOT_ENOUGH": "У вас должно быть хотя бы `{{money}}`!",
"SUCCESS": "Вы сняли **{{money}}**!"
}

View file

@ -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 дополнительных кредитов!"
}

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Превратить текст в ASCII!",
"DESCRIPTION": "Превратить текст в ASCII код!",
"USAGE": "{{prefix}}ascii [текст]",
"EXAMPLES": "{{prefix}}ascii Hello world!",
"TEXT_MISSING": "Введите текст (не больше 20 символов)!"

View file

@ -1,9 +1,9 @@
{
"DESCRIPTION": "Помогает с выбором!",
"DESCRIPTION": "Я могу помочь вам с выбором!",
"USAGE": "{{prefix}}choice [вариант1/вариант2/вариант3/вариант4...]",
"EXAMPLES": "{{prefix}}choice Вода/Огонь/Ветер",
"MISSING": "Укажите больше двух вариантов!\n(либо используйте команду `flip`)",
"EMPTY": "Кажется один из вариантов пустой.... Попробуйте ещё раз!",
"EMPTY": "Кажется один из вариантов отсутствует... Попробуйте ещё раз!",
"PROGRESS": "Выбираю...",
"DONE": "Мой выбор:"
"DONE": "Я выбрал:"
}

View file

@ -2,5 +2,5 @@
"DESCRIPTION": "Получить случайный FML",
"USAGE": "{{prefix}}fml",
"EXAMPLES": "{{prefix}}fml",
"FOOTER": "blague.xyz | By Skiz#0001"
"FOOTER": "JaBa | blague.xyz"
}

View file

@ -2,5 +2,5 @@
"DESCRIPTION": "Получить случайную шутку!",
"USAGE": "{{prefix}}joke",
"EXAMPLES": "{{prefix}}joke",
"FOOTER": "blague.xyz | By Skiz#0001"
"FOOTER": "JaBa | blague.xyz"
}

View file

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

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Угадай загаданное число!",
"DESCRIPTION": "Угадай загаданное мною число!",
"USAGE": "{{prefix}}number",
"EXAMPLES": "{{prefix}}number",
"GAME_START": "Я загадал число, начинайте!",

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Создать активность в канале!",
"DESCRIPTION": "Создать активность в голосовом канале!",
"USAGE": "{{prefix}}activity (активность)",
"EXAMPLES": "{{prefix}}activity\n{{prefix}}activity chess",
"TITLE": "Список доступных активностей",

View file

@ -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": "Результат"
}

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Показать статистику игрока в Fortnite!",
"DESCRIPTION": "Показать статистику игрока Fortnite!",
"USAGE": "{{prefix}}fortnite [PSN/XBL/PC] [ник]",
"EXAMPLES": "{{prefix}}fortnite PC Ninja",
"MISSING_PLATFORM": "Выберите платформу: `PSN`, `PC` или `XBL` (без учёта регистра)!",

View file

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

View file

@ -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}} | Команды"
}

View file

@ -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": "👥 Приглашённых участников",

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Показать права пользователя на сервере",
"DESCRIPTION": "Показать права пользователя",
"USAGE": "{{prefix}}permissions (@пользователь)",
"EXAMPLES": "{{prefix}}permissions\n{{prefix}}permissions @Jonny_Bro#4226",
"TITLE": "Права {{user}} в канале {{channel}}"

View file

@ -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 или названием.",

View file

@ -1,6 +1,6 @@
{
"DESCRIPTION": "Отправить жалобу в спец. канал!",
"USAGE": "{{prefix}}report [@пользователь] [причина]",
"DESCRIPTION": "Отправить жалобу в специальный канал!",
"USAGE": "{{prefix}}report [@пользователь] (причина)",
"EXAMPLES": "{{prefix}}report @Jonny_Bro#4226 Нарушение правил",
"MISSING_CHANNEL": "Канал для жалоб не настроен!",
"MISSING_REASON": "Введите причину!",

View file

@ -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": "Кол-во бустов"
}

View file

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

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Сделать ссылку короче!",
"DESCRIPTION": "Укоротить ссылку!",
"USAGE": "{{prefix}}shorturl [URL]",
"EXAMPLES": "{{prefix}}shorturl https://google.com",
"MISSING_URL": "Введите ссылку!"

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Показать список персонала сервера!",
"DESCRIPTION": "Показать список администрации сервера!",
"USAGE": "{{prefix}}staff",
"EXAMPLES": "{{prefix}}staff",
"TITLE": "Персонал {{guild}}",

View file

@ -1,5 +1,5 @@
{
"DESCRIPTION": "Отправить предложение в спец. канал!",
"DESCRIPTION": "Отправить предложение в специальный канал!",
"USAGE": "{{prefix}}suggest [предложение]",
"EXAMPLES": "{{prefix}}suggest Новый канал #nsfw :smiling_imp:",
"MISSING_CHANNEL": "Канал для предложений не настроен!",

View file

@ -1,6 +1,6 @@
{
"DESCRIPTION": "Перевести текст!",
"USAGE": "{{prefix}}translate [язык] [текс]",
"USAGE": "{{prefix}}translate [язык] [текст]",
"EXAMPLES": "{{prefix}}translate english Как дела?",
"LIST_SENT": "Список языков отправлен вам в ЛС!",
"MISSING_LANGUAGE": "Укажите язык! Чтобы получить список языков, введите `{{prefix}}translate langs-list`!",

View file

@ -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<https://discordbots.org/bot/000000000000/vote>",
"VOTE_DM": "⬆️ Привет, {{user}}, спасибо за голос!\nТвоя награда - 50 кредитов (на сервере поддержки)!",
"VOTE_LOGS": "⬆️ **{{usertag}}** (`{{userid}}`) проголосовал за **JaBa** и получил **50** кредитов, спасибо!\n<https://discordbots.org/bot/000000000000/vote>",
"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": "лет"
}
}
}

View file

@ -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": "📢 Объявление:"
}

View file

@ -9,5 +9,5 @@
"MISSING_PERM": "Произошла ошибка... Проверьте, есть ли у вас право банить пользователей и попробуйте снова!",
"BANNED_DM": "Привет {{username}},\nвы были забанены на сервере **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
"BANNED": "**{{username}}** был забанен на сервере **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
"CASE": "Бан | Случай #{{count}}"
"CASE": "Бан | Номер #{{count}}"
}

View file

@ -1,6 +1,6 @@
{
"DESCRIPTION": "Проверить, есть ли у пользователя ссылка-приглашение в статусе!",
"DESCRIPTION": "Проверить пользователей на наличие ссылок-приглашений в статусе!",
"USAGE": "{{prefix}}checkinvites",
"EXAMPLES": "{{prefix}}checkinvites",
"NOBODY": "Нет ссылок-приглашений в статусе!"
"NOBODY": "Ни у кого нет ссылок-приглашений в статусе!"
}

View file

@ -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}}** было удалено!"
}

View file

@ -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}}** удалены!"
}

View file

@ -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": "Раздача удалена!"
}

View file

@ -7,5 +7,5 @@
"MISSING_PERM": "Произошла ошибка... Проверьте, есть ли у вас право кикать пользователей и попробуйте снова!",
"KICKED_DM": "Привет {{username}},\nвы были кикнуты с сервера **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
"KICKED": "**{{username}}** был кикнут с сервера **{{server}}** пользователем **{{moderator}}** по причине **{{reason}}**!",
"CASE": "Кик | Случай #{{count}}"
"CASE": "Кик | Номер #{{count}}"
}

View file

@ -5,5 +5,5 @@
"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
"MUTED_DM": "Привет {{username}},\nвы были замучены на сервере **{{server}}** пользователем **{{moderator}}** на **{{time}}** по причине **{{reason}}**!",
"MUTED": "**{{username}}** замучен на **{{time}}** по причине **{{reason}}**!",
"CASE": "Мут | Случай #{{count}}"
"CASE": "Мут | Номер #{{count}}"
}

View file

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

View file

@ -5,5 +5,5 @@
"MISSING_MEMBER": "Вы должны упомянуть пользователя!",
"NOT_MUTED": "**{{username}}** не замучен на данном сервере!",
"SUCCESS": "**{{username}}** был размучен на данном сервере!",
"SUCCESS_CASE": "{{user}} (`{{usertag}}`) размучен! (случай мута: #{{count}})"
"SUCCESS_CASE": "{{user}} (`{{usertag}}`) размучен! (Номер #{{count}})"
}

View file

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

View file

@ -2,6 +2,6 @@
"DESCRIPTION": "Включить или отключить автовоспроизведение",
"USAGE": "{{prefix}}autoplay",
"EXAMPLES": "{{prefix}}autoplay",
"SUCCESS_ENABLED": "{{success}} Автовоспроизведение включено!",
"SUCCESS_DISABLED": "{{success}} Автовоспроизведение выключено!"
"SUCCESS_ENABLED": "Автовоспроизведение включено!",
"SUCCESS_DISABLED": "Автовоспроизведение выключено!"
}

Some files were not shown because too many files have changed in this diff Show more