diff --git a/README.md b/README.md index b14a6d1e..73304c7d 100644 --- a/README.md +++ b/README.md @@ -25,16 +25,17 @@ JaBa предлагает: JaBa имеет множество функций, вот **8 основных категорий**: -* 👩‍💼 **Администрирование**: `automod`, `autorole`, `config`, `goodbye`, `selectroles`, `stealemoji` и ещё **три** команды! -* 🚓 **Модерация**: `clear`, `giveaway`, `poll`, `warn` и ещё **три** команды! -* 🎵 **Музыка**: `play`, `skip`, `queue`, `nowplaying`, `shuffle` и ещё **семь** команды! -* 💰 **Экономика**: `profile`, `work`, `achievements`, `slots`, `tictactoe`, `leaderboard` и ещё **двенадцать** команд! -* 👻 **Веселье**: `8ball`, `crab`, `lmgtfy`, `lovecalc`, `memes` и ещё **две** команды! +* 👩‍💼 **Администрирование**: `automod`, `autorole`, `config`, `goodbye`, `selectroles`, `stealemoji` и ещё **3** команды! +* 🚓 **Модерация**: `clear`, `giveaway`, `poll`, `warn` и ещё **3** команды! +* 🎵 **Музыка**: `play`, `skip`, `queue`, `nowplaying`, `shuffle` и ещё **7** команды! +* 💰 **Экономика**: `profile`, `work`, `achievements`, `slots`, `tictactoe`, `leaderboard` и ещё **12** команд! +* 👻 **Веселье**: `8ball`, `crab`, `lmgtfy`, `lovecalc`, `memes` и ещё **2** команды! * 🖨️ **Основные**: `afk`, `avatar`, `boosters`, `minecraft`, `remindme`, `shorturl`, `serverinfo`, `userinfo`, `whois` и ещё **семь** команд! * ❤ **NSFW**: `nsfw` =) -* 👑 **Команды владельца**: `eval`, `getinvite`, `servers-list` and **2** more! +* 👑 **Команды владельца**: `eval`, `getinvite`, `servers-list` и ещё **2** команды! -[Полный список команд и список изменений](http://jababot.duckdns.org/docs) +[Список изменений](/dashboard/public/docs/updates.md) +[Полный список команд](http://jababot.duckdns.org:8080/docs) ### Мощная панель управления diff --git a/commands/General/help.js b/commands/General/help.js index 0c6a0db8..60db1154 100644 --- a/commands/General/help.js +++ b/commands/General/help.js @@ -51,12 +51,16 @@ class Help extends BaseCommand { if (command) { if (commands.find(c => c.command.name === command).category === "Owner" && interaction.user.id !== client.config.owner.id) return interaction.error("misc:OWNER_ONLY", null, { edit: true, ephemeral: true }); + return interaction.editReply({ embeds: [ generateCommandHelp(interaction, command) ] }); } commands.forEach(c => { if (!categories.includes(c.category)) { if (c.category === "Owner" && interaction.user.id !== client.config.owner.id) return; + if (c.category === "IAT" && interaction.guildId !== "1039187019957555252") return; + if (c.category === "SunCountry" && interaction.guildId !== "600970971410857996") return; + categories.push(c.category); } }); diff --git a/commands/IAT/checkjar.js b/commands/IAT/checkjar.js index 46f6a6b2..c6d22c3d 100644 --- a/commands/IAT/checkjar.js +++ b/commands/IAT/checkjar.js @@ -37,8 +37,6 @@ class Checkjar extends BaseCommand { * @param {Object} data */ async execute(client, interaction) { - if (!interaction.guildId === "1039187019957555252") return interaction.reply({ content: "error", ephemeral: true }); - await interaction.deferReply(); const jarsList = await fetch("https://api.monobank.ua/personal/client-info", { diff --git a/commands/NSFW/nsfw.js b/commands/NSFW/nsfw.js index c8e3aa68..8b1ccbed 100644 --- a/commands/NSFW/nsfw.js +++ b/commands/NSFW/nsfw.js @@ -38,7 +38,7 @@ class NSFW extends BaseCommand { async execute(client, interaction) { await interaction.deferReply({ ephemeral: true }); - if (interaction.guildId && !interaction.channel.nsfw) return interaction.replyT("misc:NSFW_COMMAND", null, { ephemeral: true, edit: true }); + if (interaction.guildId && !interaction.channel.nsfw) return interaction.replyT("misc:NSFW_COMMAND", null, { edit: true }); const tags = ["hentai", "ecchi", "lewdanimegirls", "hentaifemdom", "animefeets", "animebooty", "biganimetiddies", "sideoppai", "ahegao"].map(tag => JSON.parse(JSON.stringify({ diff --git a/commands/SunCountry/sendmessage.js b/commands/SunCountry/sendmessage.js new file mode 100644 index 00000000..1c3d8788 --- /dev/null +++ b/commands/SunCountry/sendmessage.js @@ -0,0 +1,119 @@ +const { SlashCommandBuilder, EmbedBuilder } = require("discord.js"); +const BaseCommand = require("../../base/BaseCommand"); + +class Sendmessage extends BaseCommand { + /** + * + * @param {import("../../base/JaBa")} client + */ + constructor(client) { + super({ + command: new SlashCommandBuilder() + .setName("sendmessage") + .setDescription(client.translate("suncountry/sendmessage:DESCRIPTION")) + .setDescriptionLocalizations({ + "uk": client.translate("suncountry/sendmessage:DESCRIPTION", null, "uk-UA"), + "ru": client.translate("suncountry/sendmessage:DESCRIPTION", null, "ru-RU"), + }) + .setDMPermission(true) + .addSubcommand(subcommand => subcommand.setName("rpinfo") + .setDescription(client.translate("suncountry/sendmessage:RPINFO")) + .setDescriptionLocalizations({ + "uk": client.translate("suncountry/sendmessage:RPINFO", null, "uk-UA"), + "ru": client.translate("suncountry/sendmessage:RPINFO", null, "ru-RU"), + }) + .addStringOption(option => option.setName("text") + .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ + "uk": client.translate("common:MESSAGE", null, "uk-UA"), + "ru": client.translate("common:MESSAGE", null, "ru-RU"), + }) + .setRequired(true)) + .addAttachmentOption(option => option.setName("attachment") + .setDescription(client.translate("common:ATTACHMENT")) + .setDescriptionLocalizations({ + "uk": client.translate("common:ATTACHMENT", null, "uk-UA"), + "ru": client.translate("common:ATTACHMENT", null, "ru-RU"), + })), + ) + .addSubcommand(subcommand => subcommand.setName("instalife") + .setDescription(client.translate("suncountry/sendmessage:INSTALIFE")) + .setDescriptionLocalizations({ + "uk": client.translate("suncountry/sendmessage:INSTALIFE", null, "uk-UA"), + "ru": client.translate("suncountry/sendmessage:INSTALIFE", null, "ru-RU"), + }) + .addStringOption(option => option.setName("name") + .setDescription(client.translate("common:USERNAME")) + .setDescriptionLocalizations({ + "uk": client.translate("common:USERNAME", null, "uk-UA"), + "ru": client.translate("common:USERNAME", null, "ru-RU"), + }) + .setRequired(true)) + .addStringOption(option => option.setName("text") + .setDescription(client.translate("common:MESSAGE")) + .setDescriptionLocalizations({ + "uk": client.translate("common:MESSAGE", null, "uk-UA"), + "ru": client.translate("common:MESSAGE", null, "ru-RU"), + }) + .setRequired(true)) + .addAttachmentOption(option => option.setName("attachment") + .setDescription(client.translate("common:ATTACHMENT")) + .setDescriptionLocalizations({ + "uk": client.translate("common:ATTACHMENT", null, "uk-UA"), + "ru": client.translate("common:ATTACHMENT", null, "ru-RU"), + })), + ), + aliases: [], + dirname: __dirname, + ownerOnly: false, + }); + } + /** + * + * @param {import("../../base/JaBa")} client + */ + async onLoad() { + //... + } + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").ChatInputCommandInteraction} interaction + * @param {Object} data + */ + async execute(client, interaction) { + await interaction.deferReply({ ephemeral: true }); + + const guild = client.guilds.cache.get("600970971410857996"), + channel = command === "rpinfo" ? guild.channels.cache.get("1119571321421058098") : guild.channels.cache.get("1119579266376540213"); + + const command = interaction.options.getSubcommand(), + text = interaction.options.getString("text"), + name = interaction.options.getString("name"), + attachment = interaction.options.getAttachment("attachment"); + + const embed = new EmbedBuilder() + .setColor(client.config.embed.color) + .setTitle("InstaLife") + .setAuthor({ + name: `@${name}`, + }) + .setImage(attachment ? attachment.url : null) + .setDescription(text); + + channel.send({ + content: command === "rpinfo" ? text : null, + files: command === "rpinfo" ? (attachment ? [{ + name: attachment.name, + attachment: attachment.url, + }] : null) : null, + embeds: command === "instalife" ? [embed] : null, + }).then(message => { + interaction.success("suncountry/sendmessage:MESSAGE_SENT", { + message: message.url, + }, { edit: true }); + }); + } +} + +module.exports = Sendmessage; \ No newline at end of file diff --git a/dashboard/public/docs/updates.md b/dashboard/public/docs/updates.md index 05df17f0..cb9a7f27 100644 --- a/dashboard/public/docs/updates.md +++ b/dashboard/public/docs/updates.md @@ -1,3 +1,11 @@ +### JaBa v4.2.6 +* Добавлено + * Эксклюзив для SunCountry RP: *sendmessage* - отправить (анонимное) сообщение в выбранный канал. + +* Изменено + * Отключено уведомление об ачивках, включу когда переделаю.\ + Хочу отправлять их в ЛС. + ### JaBa v4.2.5 * Изменено * Изменения в локализации, основным языком теперь является английский.\ diff --git a/events/CommandHandler.js b/events/CommandHandler.js index 63136fa2..46087c1f 100644 --- a/events/CommandHandler.js +++ b/events/CommandHandler.js @@ -44,6 +44,10 @@ class CommandHandler extends BaseEvent { if (command.guildOnly && !interaction.inGuild()) return interaction.error("misc:GUILD_ONLY", null, { ephemeral: true }); if (command.ownerOnly && interaction.user.id !== client.config.owner.id) return interaction.error("misc:OWNER_ONLY", null, { ephemeral: true }); + if (!interaction.guildId === "1039187019957555252") return interaction.error({ content: "IAT Only", ephemeral: true }); // IAT + if (!interaction.guildId === "600970971410857996") return interaction.error({ content: "SC Only", ephemeral: true }); // SC + + /* if (!userData.achievements.firstCommand.achieved) { const args = { content: interaction.user.toString(), @@ -60,6 +64,7 @@ class CommandHandler extends BaseEvent { interaction.channel.isDMBased() ? interaction.user.send(args) : await interaction.channel.send(args); } + */ client.logger.log(`User ${interaction.user.discriminator === "0" ? interaction.user.username : interaction.user.tag} used ${command.command.name} in ${interaction.guild ? interaction.guild.name : "DM"} with arguments: ${interaction.options.data.length > 0 ? interaction.options.data.map(arg => { return `${arg.name}: ${arg.value}`; }).join(", ") : "no args"}`, "cmd"); diff --git a/languages/en-US/administration/goodbye.json b/languages/en-US/administration/goodbye.json index 4f153b1a..4f959427 100644 --- a/languages/en-US/administration/goodbye.json +++ b/languages/en-US/administration/goodbye.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Toggles messages when a user leaves the server", "USAGE": "config [state] [#channel] [message] [image]\nOr [test]", - "EXAMPLES": "goodbye state:True channel:#welcome Goodbye! image:True\ngoodbye test", + "EXAMPLES": "goodbye config state:True channel:#welcome Goodbye! image:True\ngoodbye test", "TEST": "Test", "TEST_SUCCESS": "Test successful", "CONFIG": "Configure", diff --git a/languages/en-US/administration/welcome.json b/languages/en-US/administration/welcome.json index 1df9d50f..f92cd6fb 100644 --- a/languages/en-US/administration/welcome.json +++ b/languages/en-US/administration/welcome.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Toggles welcome messages when a user joins the server", "USAGE": "config [state] [#channel] [message] [image]\nOr [test]", - "EXAMPLES": "welcome state:True channel:#welcome Welcome! image:True\nwelcome test", + "EXAMPLES": "welcome config state:True channel:#welcome Welcome! image:True\nwelcome test", "ENABLED": "Welcome messages are enabled in {{channel}}!\nUse `welcome test` to view the message", "DISABLED": "Welcome messages are disabled", "DEFAULT_MESSAGE": "Welcome, {user}! We now have {membercount} members", diff --git a/languages/en-US/common.json b/languages/en-US/common.json index 84955c71..b7c752dd 100644 --- a/languages/en-US/common.json +++ b/languages/en-US/common.json @@ -2,6 +2,7 @@ "ACCEPT": "Accept", "ACTIVITY": "Activity", "APPLY": "Apply", + "ATTACHMENT": "Attachment", "AUTHOR": "Author", "AVAILABLE_OPTIONS": "Available options:", "CATEGORY": "Category", diff --git a/languages/en-US/suncountry/sendmessage.json b/languages/en-US/suncountry/sendmessage.json new file mode 100644 index 00000000..74f92e46 --- /dev/null +++ b/languages/en-US/suncountry/sendmessage.json @@ -0,0 +1,8 @@ +{ + "DESCRIPTION": "Send an anonymous message to the selected channel", + "USAGE": "rpinfo [text] (attachment)\ninstalife [text] (attachment)", + "EXAMPLES": "sendmessage rpinfo text:Happy New Year, everyone!\nsendmessage instalife text:Accident at the Police Station! attachment:", + "RPINFO": "Send a message to RP Info", + "INSTALIFE": "Send a message to InstaLife", + "MESSAGE_SENT": "Message sent!\n{{message}}" +} \ No newline at end of file diff --git a/languages/ru-RU/administration/goodbye.json b/languages/ru-RU/administration/goodbye.json index 94003df6..f090c4a6 100644 --- a/languages/ru-RU/administration/goodbye.json +++ b/languages/ru-RU/administration/goodbye.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Включить или отключить сообщения при выходе пользователя с сервера", "USAGE": "config [state] [#channel] [message] [image] \nИли [test]", - "EXAMPLES": "goodbye state:True channel:#welcome Прощай! image:True\ngoodbye test", + "EXAMPLES": "goodbye config state:True channel:#welcome Прощай! image:True\ngoodbye test", "TEST": "Проверить", "TEST_SUCCESS": "Тест выполнен", "CONFIG": "Настроить", diff --git a/languages/ru-RU/administration/welcome.json b/languages/ru-RU/administration/welcome.json index 97c1bb5d..4e522b0d 100644 --- a/languages/ru-RU/administration/welcome.json +++ b/languages/ru-RU/administration/welcome.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Включить или отключить сообщения при входе пользователя на сервер", "USAGE": "config [state] [#channel] [message] [image] \nИли [test]", - "EXAMPLES": "welcome state:True channel:#welcome Добро пожаловать! image:True\nwelcome test", + "EXAMPLES": "welcome config state:True channel:#welcome Добро пожаловать! image:True\nwelcome test", "ENABLED": "Приветствующие сообщения включены в {{channel}}!\nИспользуйте `welcome test` для просмотра сообщения", "DISABLED": "Приветствующие сообщения отключены", "DEFAULT_MESSAGE": "Добро пожаловать {user}! Нас теперь {membercount}", diff --git a/languages/ru-RU/common.json b/languages/ru-RU/common.json index cf3c39cc..853598ab 100644 --- a/languages/ru-RU/common.json +++ b/languages/ru-RU/common.json @@ -2,6 +2,7 @@ "ACCEPT": "Принять", "ACTIVITY": "Активность", "APPLY": "Применить", + "ATTACHMENT": "Вложение", "AUTHOR": "Автор", "AVAILABLE_OPTIONS": "Доступные параметры:", "CATEGORY": "Категория", diff --git a/languages/ru-RU/suncountry/sendmessage.json b/languages/ru-RU/suncountry/sendmessage.json new file mode 100644 index 00000000..1fc49f1c --- /dev/null +++ b/languages/ru-RU/suncountry/sendmessage.json @@ -0,0 +1,8 @@ +{ + "DESCRIPTION": "Отправить анонимноее сообщение в выбранный канал", + "USAGE": "rpinfo [text] (attachment)\ninstalife [text] (attachment)", + "EXAMPLES": "sendmessage rpinfo text:Всех с новым годом!\nsendmessage instalife text:Авария в ПУ! attachment:", + "RPINFO": "Отправить сообщение в RP Info", + "INSTALIFE": "Отправить сообщение в InstaLife", + "MESSAGE_SENT": "Сообщение отправлено!\n{{message}}" +} \ No newline at end of file diff --git a/languages/uk-UA/administration/goodbye.json b/languages/uk-UA/administration/goodbye.json index e900a2b9..8e8edf12 100644 --- a/languages/uk-UA/administration/goodbye.json +++ b/languages/uk-UA/administration/goodbye.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Увімкнути або вимкнути повідомлення при виході користувача з сервера", "USAGE": "config [state] [#channel] [message] [image] \nАбо [test]", - "EXAMPLES": "goodbye state:True channel:#welcome Прощай! image:True\ngoodbye test", + "EXAMPLES": "goodbye config state:True channel:#welcome Прощай! image:True\ngoodbye test", "TEST": "Перевірити", "TEST_SUCCESS": "Тест виконано", "CONFIG": "Налаштувати", diff --git a/languages/uk-UA/administration/setbirthdays.json b/languages/uk-UA/administration/setbirthdays.json deleted file mode 100644 index a40281ef..00000000 --- a/languages/uk-UA/administration/setbirthdays.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "DESCRIPTION": "Встановити канал для вітання з днем народження", - "USAGE": "[state] (#channel)", - "EXAMPLES": "setbirthdays state:True channel:#birthdays\nsetbirthdays state:False", - "ENABLED": "Привітання включені в канал **{{channel}}**", - "DISABLED": "Вітання відключені" -} \ No newline at end of file diff --git a/languages/uk-UA/administration/setmodlogs.json b/languages/uk-UA/administration/setmodlogs.json deleted file mode 100644 index bd2e4c38..00000000 --- a/languages/uk-UA/administration/setmodlogs.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "DESCRIPTION": "Встановити канал для логів модерації", - "USAGE": "[state] (#channel)", - "EXAMPLES": "setmodlogs state:True channel:#логи\nsetmodlogs state:False", - "ENABLED": "Логи модерації включені в канал **{{channel}}**", - "DISABLED": "Логи модерації вимкнені" -} \ No newline at end of file diff --git a/languages/uk-UA/administration/setnews.json b/languages/uk-UA/administration/setnews.json deleted file mode 100644 index 423c07a9..00000000 --- a/languages/uk-UA/administration/setnews.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "DESCRIPTION": "Встановити канал для новин бота", - "USAGE": "[state] (#channel)", - "EXAMPLES": "setnews state:True channel:#bot-news\nsetnews state:False", - "ENABLED": "Новини бота включені в канал **{{channel}}**", - "DISABLED": "Новини бота вимкнені" -} \ No newline at end of file diff --git a/languages/uk-UA/administration/setreports.json b/languages/uk-UA/administration/setreports.json deleted file mode 100644 index 2d39afc0..00000000 --- a/languages/uk-UA/administration/setreports.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "DESCRIPTION": "Встановити канал для скарг", - "USAGE": "[state] (#channel)", - "EXAMPLES": "setreports state:True channel:#скарги\nsetreports state:False", - "ENABLED": "Скарги надсилатимуться в **{{channel}}**", - "DISABLED": "Скарги відключені" -} \ No newline at end of file diff --git a/languages/uk-UA/administration/setsuggests.json b/languages/uk-UA/administration/setsuggests.json deleted file mode 100644 index 85ac38d8..00000000 --- a/languages/uk-UA/administration/setsuggests.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "DESCRIPTION": "Встановити канал для пропозицій", - "USAGE": "[state] (#channel)", - "EXAMPLES": "setsuggests state:True channel:#пропозиції\nsetsuggests state:False", - "ENABLED": "Пропозиції надсилатимуться в **{{channel}}**", - "DISABLED": "Пропозиції вимкнено" -} \ No newline at end of file diff --git a/languages/uk-UA/administration/welcome.json b/languages/uk-UA/administration/welcome.json index 1eb29e78..6cd1d3d9 100644 --- a/languages/uk-UA/administration/welcome.json +++ b/languages/uk-UA/administration/welcome.json @@ -1,7 +1,7 @@ { "DESCRIPTION": "Увімкнути або вимкнути повідомлення під час входу користувача на сервер", "USAGE": "config [state] [#channel] [message] [image] \nАбо [test]", - "EXAMPLES": "welcome state:True channel:#welcome Ласкаво просимо! image:True\nwelcome test", + "EXAMPLES": "welcome config state:True channel:#welcome Ласкаво просимо! image:True\nwelcome test", "ENABLED": "Привітальні повідомлення включені до {{channel}}!\nВикористовуйте `welcome test` для перегляду повідомлення", "DISABLED": "Привітання відключено", "DEFAULT_MESSAGE": "Ласкаво просимо {user}! Нас тепер {membercount}", diff --git a/languages/uk-UA/common.json b/languages/uk-UA/common.json index 7f719a92..28f092cf 100644 --- a/languages/uk-UA/common.json +++ b/languages/uk-UA/common.json @@ -2,6 +2,7 @@ "ACCEPT": "Прийняти", "ACTIVITY": "Активність", "APPLY": "Застосувати", + "ATTACHMENT": "Вложение", "AUTHOR": "Автор", "AVAILABLE_OPTIONS": "Доступні параметри:", "CATEGORY": "Категорія", diff --git a/languages/uk-UA/suncountry/sendmessage.json b/languages/uk-UA/suncountry/sendmessage.json new file mode 100644 index 00000000..94acd3ff --- /dev/null +++ b/languages/uk-UA/suncountry/sendmessage.json @@ -0,0 +1,8 @@ +{ + "DESCRIPTION": "Надіслати анонімне повідомлення до обраного каналу", + "USAGE": "rpinfo [текст] (вкладення)\ninstalife [текст] (вкладення)", + "EXAMPLES": "sendmessage rpinfo text:Всім з новим роком!\nsendmessage instalife text:Аварія в ВП! вкладення:<зображення>", + "RPINFO": "Надіслати повідомлення в RP Info", + "INSTALIFE": "Надіслати повідомлення в InstaLife", + "MESSAGE_SENT": "Повідомлення відправлено!\n{{message}}" +} \ No newline at end of file diff --git a/package.json b/package.json index 75976aa9..7c62a96b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jaba", - "version": "4.2.5", + "version": "4.2.6", "description": "My Discord Bot", "main": "index.js", "private": true,