Ищё =)

This commit is contained in:
JonnyBro 2022-08-03 21:13:22 +05:00
parent b546036abc
commit d11a4a9257
13 changed files with 23 additions and 160 deletions

View file

@ -1,68 +0,0 @@
const Command = require("../../base/Command");
class Setwarns extends Command {
constructor(client) {
super(client, {
name: "setwarns",
dirname: __dirname,
enabled: true,
guildOnly: true,
aliases: ["setw"],
memberPermissions: ["MANAGE_GUILD"],
botPermissions: ["SEND_MESSAGES", "EMBED_LINKS", "BAN_MEMBERS", "KICK_MEMBERS"],
nsfw: false,
ownerOnly: false,
cooldown: 1000
});
}
async run(message, args, data) {
const sanction = args[0];
if (!sanction || (sanction !== "kick" && sanction !== "ban")) return message.error("moderation/setwarns:MISSING_TYPE");
const number = args[1];
if (number === "reset") {
if (sanction === "kick") {
data.guild.plugins.warnsSanctions.kick = false;
data.guild.markModified("plugins.warnsSanctions");
data.guild.save();
return message.success("moderation/setwarns:SUCCESS_KICK_RESET", {
prefix: data.guild.prefix,
count: `${number} ${message.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;
data.guild.markModified("plugins.warnsSanctions");
data.guild.save();
return message.success("moderation/setwarns:SUCCESS_BAN_RESET", {
prefix: data.guild.prefix,
count: `${number} ${message.getNoun(number, message.translate("misc:NOUNS:WARNS:1"), message.translate("misc:NOUNS:WARNS:2"), message.translate("misc:NOUNS:WARNS:5"))}`
});
}
}
if (!number || isNaN(number)) return message.error("misc:INVALID_NUMBER");
if (number < 1 || number > 10) return message.error("misc:INVALID_NUMBER_RANGE", 1, 10);
if (sanction === "kick") {
data.guild.plugins.warnsSanctions.kick = number;
data.guild.markModified("plugins.warnsSanctions");
data.guild.save();
return message.success("moderation/setwarns:SUCCESS_KICK", {
prefix: data.guild.prefix,
count: `${number} ${message.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;
data.guild.markModified("plugins.warnsSanctions");
data.guild.save();
return message.success("moderation/setwarns:SUCCESS_BAN", {
prefix: data.guild.prefix,
count: `${number} ${message.getNoun(number, message.translate("misc:NOUNS:WARNS:1"), message.translate("misc:NOUNS:WARNS:2"), message.translate("misc:NOUNS:WARNS:5"))}`
});
}
}
}
module.exports = Setwarns;

View file

@ -1,4 +1,4 @@
const { ApplicationCommandType, PermissionFlagsBits, EmbedBuilder, ContextMenuCommandBuilder } = require("discord.js"); const { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder } = require("discord.js");
const BaseCommand = require("../../base/BaseCommand"); const BaseCommand = require("../../base/BaseCommand");
class Warns extends BaseCommand { class Warns extends BaseCommand {
@ -6,12 +6,15 @@ class Warns extends BaseCommand {
* *
* @param {import("../../base/JaBa")} client * @param {import("../../base/JaBa")} client
*/ */
constructor() { constructor(client) {
super({ super({
command: new ContextMenuCommandBuilder() command: new SlashCommandBuilder()
.setName("warns") .setName("warns")
.setType(ApplicationCommandType.User) .setDescription(client.translate("moderation/warns:DESCRIPTION"))
.setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages), .setDefaultMemberPermissions(PermissionFlagsBits.ModerateMembers && PermissionFlagsBits.ManageMessages)
.addUserOption(option => option.setName("user")
.setDescription(client.translate("common:USER"))
.setRequired(true)),
aliases: [], aliases: [],
dirname: __dirname, dirname: __dirname,
guildOnly: true guildOnly: true
@ -31,8 +34,8 @@ class Warns extends BaseCommand {
* @param {Array} data * @param {Array} data
*/ */
async execute(client, interaction) { async execute(client, interaction) {
const member = interaction.targetMember; const member = interaction.options.getMember("user");
if (member.user.bot) return; if (member.user.bot) return interaction.error("misc:BOT_USER");
const memberData = await client.findOrCreateMember({ const memberData = await client.findOrCreateMember({
id: member.id, id: member.id,
@ -54,19 +57,19 @@ class Warns extends BaseCommand {
text: client.config.embed.footer text: client.config.embed.footer
}); });
if (memberData.sanctions.length < 1) { if (memberData.sanctions.length === 0) {
embed.setDescription(interaction.translate("moderation/warns:NO_SANCTION", { embed.setDescription(interaction.translate("moderation/warns:NO_SANCTIONS", {
member: member.nickname || member.user.username member: member.nickname || member.user.username
})); }));
return interaction.reply({ return interaction.reply({
embeds: [embed] embeds: [embed]
}); });
} else { } else {
memberData.sanctions.forEach((s) => { memberData.sanctions.forEach(sanction => {
embed.addFields([ embed.addFields([
{ {
name: s.type + " | #" + s.case, name: sanction.type + " | #" + sanction.case,
value: `${interaction.translate("common:MODERATOR")}: <@${s.moderator}>\n${interaction.translate("common:REASON")}: ${s.reason}`, value: `${interaction.translate("common:MODERATOR")}: <@${sanction.moderator}>\n${interaction.translate("common:REASON")}: ${sanction.reason}`,
inline: true inline: true
} }
]); ]);

View file

@ -49,8 +49,8 @@ class Debug extends BaseCommand {
{ name: client.translate("common:REP"), value: "rep" }, { name: client.translate("common:REP"), value: "rep" },
)) ))
.addUserOption(option => .addUserOption(option =>
option.setName("target") option.setName("user")
.setDescription(client.translate("owner/debug:TARGET")) .setDescription(client.translate("common:USER"))
.setRequired(true)) .setRequired(true))
.addIntegerOption(option => .addIntegerOption(option =>
option.setName("int") option.setName("int")
@ -81,9 +81,9 @@ class Debug extends BaseCommand {
if (action === "set") { if (action === "set") {
const type = interaction.options.getString("type"); const type = interaction.options.getString("type");
const member = interaction.options.getMember("target"); const member = interaction.options.getMember("user");
const int = interaction.options.getInteger("int"); const int = interaction.options.getInteger("int");
if (member.user.bot) return interaction.error("owner/debug:BOT"); if (member.user.bot) return interaction.error("misc:BOT_USER");
switch (type) { switch (type) {
case "level": { case "level": {

View file

@ -1,6 +1,3 @@
/*
Logger class for easy and aesthetically pleasing console logging
*/
const { bgBlue, black, green } = require("chalk"); const { bgBlue, black, green } = require("chalk");
function dateTimePad(value, digits) { function dateTimePad(value, digits) {

View file

@ -10,7 +10,7 @@
"INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**!", "INVALID_NUMBER_RANGE": "Укажите число от **{{min}}** до **{{max}}**!",
"FORCE_STOP": "Игра принудительно окончена {{user}}, никто не победил!", "FORCE_STOP": "Игра принудительно окончена {{user}}, никто не победил!",
"STATS_FOOTER": "● [Панель управления]({{dashboardLink}})\n● [Документация]({{docsLink}})\n● [Пригласить JaBa на свой сервер]({{inviteLink}})\n● [Поддержать]({{donateLink}}) (укажите ваш Discord тэг для выдачи ачивки, для других способов поддержки пишите в ЛС <@{{owner}}>)", "STATS_FOOTER": "● [Панель управления]({{dashboardLink}})\n● [Документация]({{docsLink}})\n● [Пригласить JaBa на свой сервер]({{inviteLink}})\n● [Поддержать]({{donateLink}}) (укажите ваш Discord тэг для выдачи ачивки, для других способов поддержки пишите в ЛС <@{{owner}}>)",
"BOT_USER": "Это бот!", "BOT_USER": "Вы не можете сделать это с ботом!",
"NO_PERMS": "Недостаточно прав для выполнения данного действия!", "NO_PERMS": "Недостаточно прав для выполнения данного действия!",
"NO_REASON_PROVIDED": "Причина не указана", "NO_REASON_PROVIDED": "Причина не указана",
"NO_USER_FOUND_ID": "Пользователя с ID `{{id}}` не существует!", "NO_USER_FOUND_ID": "Пользователя с ID `{{id}}` не существует!",

View file

@ -1,12 +0,0 @@
{
"DESCRIPTION": "Настроить наказание которое пользователь будет получать после данного кол-ва предупреждений!",
"USAGE": "setwarns [kick/ban] [число/reset]",
"EXAMPLES": "setwarns kick 5\nsetwarns ban 10\nsetwarns ban reset",
"MISSING_TYPE": "Выберите действие: `kick` или `ban`!",
"SUCCESS_KICK": "`{{count}}` приведут к кику!\n\n:arrow_right_hook: *Используйте `configuration`, чтобы увидеть обновлённые настройки!*",
"SUCCESS_BAN": "`{{count}}` приведут к бану!\n\n:arrow_right_hook: *Используйте `configuration`, чтобы увидеть обновлённые настройки!*",
"SUCCESS_KICK_RESET": "**Автокик пользователей отключён!**\n\n:arrow_right_hook: *Используйте `configuration`, чтобы увидеть обновлённые настройки!*",
"SUCCESS_BAN_RESET": "**Автобан пользователей отключён!**\n\n:arrow_right_hook: *Используйте `configuration`, чтобы увидеть обновлённые настройки!*",
"AUTO_BAN": "**{{username}}** был автоматически забанен за достижение {{count}}!",
"AUTO_KICK": "**{{username}}** был автоматически кикнут за достижение {{count}}!"
}

View file

@ -1,7 +1,7 @@
{ {
"DESCRIPTION": "Показать список нарушений пользователя!", "DESCRIPTION": "Показать список нарушений пользователя!",
"USAGE": "ПКМ на пользователя - Приложения - warns", "USAGE": "warns [@пользователь]",
"EXAMPLES": "", "EXAMPLES": "warns @Jonny_Bro#4226",
"SANCTIONS_OF": "Нарушения {{member}}", "SANCTIONS_OF": "Нарушения {{member}}",
"NO_SANCTION": "У **{{member}}** нет нарушений." "NO_SANCTIONS": "У **{{member}}** нет нарушений."
} }

View file

@ -5,9 +5,7 @@
"TYPE": "Тип данных", "TYPE": "Тип данных",
"SET": "Установить значение", "SET": "Установить значение",
"ADD": "Добавить к значению", "ADD": "Добавить к значению",
"TARGET": "Пользователь",
"INT": "Целое число", "INT": "Целое число",
"BOT": "Вы не можете изменить статистику бота!",
"SUCCESS_LEVEL": "Уровень пользователя **{{username}}** изменён на **{{amount}}**!", "SUCCESS_LEVEL": "Уровень пользователя **{{username}}** изменён на **{{amount}}**!",
"SUCCESS_XP": "XP пользователя **{{username}}** изменён на **{{amount}}**!", "SUCCESS_XP": "XP пользователя **{{username}}** изменён на **{{amount}}**!",
"SUCCESS_CREDITS": "Кредиты пользователя **{{username}}** изменены на **{{amount}}**!", "SUCCESS_CREDITS": "Кредиты пользователя **{{username}}** изменены на **{{amount}}**!",

View file

@ -1,13 +0,0 @@
{
"DESCRIPTION": "Забанити користувача на сервері!",
"USAGE": "ban [@користувач] (причина)",
"EXAMPLES": "ban @Jonny_Bro#4226 Спам",
"MISSING_MEMBER": "Ви повинні згадати користувача!",
"YOURSELF": "Ви не можете забанити себе!",
"SUPERIOR": "Ви не можете зробити це, тому що користувач стоїть вище за вас по ролі!",
"ALREADY_BANNED": "**{{username}}** вже в лазні!",
"MISSING_PERM": "Сталася помилка... Перевірте, чи є у вас право банити користувачів і спробуйте знову!",
"BANNED_DM": "Привіт {{username}},\nви були забанені на сервері **{{server}}** користувачем **{{moderator}}** через **{{reason}}**!" ,
"BANNED": "**{{username}}** був забанений на сервері **{{server}}** користувачем **{{moderator}}** через **{{reason}}**!" ,
"CASE": "Бан | Номер #{{count}}"
}

View file

@ -1,11 +0,0 @@
{
"DESCRIPTION": "Кікнути користувача!",
"USAGE": "kick [@користувач] (причина)",
"EXAMPLES": "kick @Jonny_Bro#4226 Спам",
"MISSING_MEMBER": "Ви повинні згадати користувача!",
"YOURSELF": "Ви не можете кікнути себе!",
"MISSING_PERM": "Сталася помилка... Перевірте, чи є у вас право кікати користувачів і спробуйте знову!",
"KICKED_DM": "Привіт {{username}},\nви були кікнуті з сервера **{{server}}** користувачем **{{moderator}}** через **{{reason}}**!" ,
"KICKED": "**{{username}}** був кікнутий з сервера **{{server}}** користувачем **{{moderator}}** через **{{reason}}**!" ,
"CASE": "Кік | Номер #{{count}}"
}

View file

@ -1,10 +0,0 @@
{
"DESCRIPTION": "Заборонити користувачеві писати повідомлення та входити в голосові канали!",
"USAGE": "mute [@користувач] [час] (причина)",
"EXAMPLES": "mute @Jonny_Bro#4226 24h Спам",
"MISSING_MEMBER": "Ви повинні згадати користувача!",
"YOURSELF": "Ви не можете замутить себе!",
"MUTED_DM": "Привіт {{username}},\nви були замучені на сервері **{{server}}** користувачем **{{moderator}}** на **{{time}}** через * *{{reason}}**!",
"MUTED": "**{{username}}** замучений на **{{time}}** через **{{reason}}**!",
"CASE": "Мут | Номер #{{count}}"
}

View file

@ -1,12 +0,0 @@
{
"DESCRIPTION": "Налаштувати покарання, яке користувач буде отримувати після даної кількості попереджень!",
"USAGE": "setwarns [kick/ban] [число/reset]",
"EXAMPLES": "setwarns kick 5\nsetwarns ban 10\nsetwarns ban reset",
"MISSING_TYPE": "Виберіть дію: `kick` або `ban`!",
"SUCCESS_KICK": "`{{count}}` призведуть до кіку!\n\n:arrow_right_hook: *Використовуйте `configuration`, щоб побачити оновлені налаштування!*",
"SUCCESS_BAN": "`{{count}}` приведуть до бана!\n\n:arrow_right_hook: *Використовуйте `configuration`, щоб побачити оновлені налаштування!*",
"SUCCESS_KICK_RESET": "**Автокік користувачів вимкнено!**\n\n:arrow_right_hook: *Використовуйте `configuration`, щоб побачити оновлені налаштування!*",
"SUCCESS_BAN_RESET": "**Автобан користувачів вимкнено!**\n\n:arrow_right_hook: *Використовуйте `configuration`, щоб побачити оновлені налаштування!*",
"AUTO_BAN": "**{{username}}** був автоматично забанений за досягнення {{count}}!",
"AUTO_KICK": "**{{username}}** був автоматично кікнутий за досягнення {{count}}!"
}

View file

@ -1,9 +0,0 @@
{
"DESCRIPTION": "Розмутити користувача!",
"USAGE": "unmute [@user]",
"EXAMPLES": "unmute @Jonny_Bro#4226",
"MISSING_MEMBER": "Ви повинні згадати користувача!",
"NOT_MUTED": "**{{username}}** не замучений на даному сервері!",
"SUCCESS": "**{{username}}** був розмучений на даному сервері!",
"SUCCESS_CASE": "{{user}} (`{{usertag}}`) розмучений! (Номер #{{count}})"
}