diff --git a/commands/Fun/crab.js b/commands/Fun/crab.js index 1e3e309a..d7a89b8c 100644 --- a/commands/Fun/crab.js +++ b/commands/Fun/crab.js @@ -14,7 +14,7 @@ class Crab extends BaseCommand { .setDescription(client.translate("fun/crab:DESCRIPTION")), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/Fun/lmgtfy.js b/commands/Fun/lmgtfy.js index 3d8580c8..37227755 100644 --- a/commands/Fun/lmgtfy.js +++ b/commands/Fun/lmgtfy.js @@ -20,7 +20,7 @@ class LMGTFY extends BaseCommand { .setRequired(true)), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/Fun/memes.js b/commands/Fun/memes.js index 3d727e07..cce63dab 100644 --- a/commands/Fun/memes.js +++ b/commands/Fun/memes.js @@ -14,7 +14,7 @@ class Memes extends BaseCommand { .setDescription(client.translate("fun/memes:DESCRIPTION")), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/afk.js b/commands/General/afk.js index 9a762d3f..70162a80 100644 --- a/commands/General/afk.js +++ b/commands/General/afk.js @@ -16,7 +16,7 @@ class Afk extends BaseCommand { .setRequired(true)), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/avatar.js b/commands/General/avatar.js index 63f7ca6d..a400a772 100644 --- a/commands/General/avatar.js +++ b/commands/General/avatar.js @@ -15,7 +15,7 @@ class Avatar extends BaseCommand { .setDescription(client.translate("common:USER"))), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/emoji.js b/commands/General/emoji.js index 7cb6b314..1372b663 100644 --- a/commands/General/emoji.js +++ b/commands/General/emoji.js @@ -16,7 +16,7 @@ class Emoji extends BaseCommand { .setRequired(true)), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/help.js b/commands/General/help.js index a658a9f8..3d0bb3ee 100644 --- a/commands/General/help.js +++ b/commands/General/help.js @@ -151,7 +151,7 @@ function generateCommandHelp(interaction, command) { }, { name: interaction.translate("general/help:FIELD_USAGE"), - value: usage + value: `*${cmd.guildOnly ? interaction.translate("general/help:GUILD_ONLY") : interaction.translate("general/help:NOT_GUILD_ONLY")}*\n\n` + usage }, { name: interaction.translate("general/help:FIELD_EXAMPLES"), diff --git a/commands/General/minecraft.js b/commands/General/minecraft.js index 5994278b..890f7430 100644 --- a/commands/General/minecraft.js +++ b/commands/General/minecraft.js @@ -17,7 +17,7 @@ class Minecraft extends BaseCommand { .setRequired(true)), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/ping.js b/commands/General/ping.js index 32adcf23..e50a1662 100644 --- a/commands/General/ping.js +++ b/commands/General/ping.js @@ -13,7 +13,7 @@ class Ping extends BaseCommand { .setDescription(client.translate("general/ping:DESCRIPTION")), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/shorturl.js b/commands/General/shorturl.js index 7de1468e..6dbd624a 100644 --- a/commands/General/shorturl.js +++ b/commands/General/shorturl.js @@ -17,7 +17,7 @@ class Shorturl extends BaseCommand { .setRequired(true)), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/stats.js b/commands/General/stats.js index f8095a07..d423f8dc 100644 --- a/commands/General/stats.js +++ b/commands/General/stats.js @@ -14,7 +14,7 @@ class Stats extends BaseCommand { .setDescription(client.translate("general/stats:DESCRIPTION")), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/General/whois.js b/commands/General/whois.js index db9f9740..a65181b7 100644 --- a/commands/General/whois.js +++ b/commands/General/whois.js @@ -17,7 +17,7 @@ class Whois extends BaseCommand { .setRequired(true)), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/commands/Music/shuffle.js b/commands/Music/shuffle.js new file mode 100644 index 00000000..05342315 --- /dev/null +++ b/commands/Music/shuffle.js @@ -0,0 +1,44 @@ +const { SlashCommandBuilder } = require("discord.js"); +const BaseCommand = require("../../base/BaseCommand"); + +class Shuffle extends BaseCommand { + /** + * + * @param {import("../base/JaBa")} client + */ + constructor(client) { + super({ + command: new SlashCommandBuilder() + .setName("shuffle") + .setDescription(client.translate("music/shuffle:DESCRIPTION")), + aliases: [], + dirname: __dirname, + guildOnly: true, + ownerOnly: false + }); + } + /** + * + * @param {import("../../base/JaBa")} client + */ + async onLoad() { + //... + } + /** + * + * @param {import("../../base/JaBa")} client + * @param {import("discord.js").ChatInputCommandInteraction} interaction + * @param {Object} data + */ + async execute(client, interaction) { + const voice = interaction.member.voice.channel; + if (!voice) return interaction.error("music/play:NO_VOICE_CHANNEL", null, { ephemeral: true }); + const queue = client.player.getQueue(interaction.guildId); + if (!queue) return interaction.error("music/play:NOT_PLAYING", null, { ephemeral: true }); + + const shuffled = queue.shuffle(); + if (shuffled) interaction.success("music/shuffle:SUCCESS"); + } +} + +module.exports = Shuffle; \ No newline at end of file diff --git a/commands/NSFW/nsfw.js b/commands/NSFW/nsfw.js index 74700372..b3ea43a2 100644 --- a/commands/NSFW/nsfw.js +++ b/commands/NSFW/nsfw.js @@ -14,7 +14,7 @@ class NSFW extends BaseCommand { .setDescription(client.translate("nsfw/nsfw:DESCRIPTION")), aliases: [], dirname: __dirname, - guildOnly: true, + guildOnly: false, ownerOnly: false }); } diff --git a/dashboard/public/docs/updates.md b/dashboard/public/docs/updates.md index f42c32d3..1bac1d24 100644 --- a/dashboard/public/docs/updates.md +++ b/dashboard/public/docs/updates.md @@ -1,3 +1,10 @@ +### JaBa v4.1.10 +* Добавлено + * Команда *shuffle* - Перемешать очередь. + +* Изменения + * Многие команды теперь можно использовать в ЛС с ботом. Узнать где именно можно использовать команду через *help*. + ### JaBa v4.1.9 * Изменения * Переписана система опыта. Теперь при достижении нового уровня опыт сбрасывается и бот оповещает о получении нового уровня. @@ -17,7 +24,7 @@ * Фикс ошибки *shorturl* с некоторыми ссылками. ### JaBa v4.1.7 -* Добавлено +* Изменения * Переписана команда *leaderboard*. ### JaBa v4.1.6 diff --git a/languages/ru-RU/general/help.json b/languages/ru-RU/general/help.json index 0055852b..f6b2155a 100644 --- a/languages/ru-RU/general/help.json +++ b/languages/ru-RU/general/help.json @@ -13,5 +13,7 @@ "INFO": "● Чтобы получить помощь по определённой команде используйте `help [команда]`", "FIELD_PERMISSIONS": "Необходимые права", "NO_REQUIRED_PERMISSION": "Никаких особых прав не нужно", - "TITLE": "{{name}} | Команды" + "TITLE": "{{name}} | Команды", + "GUILD_ONLY": "Только на сервере", + "NOT_GUILD_ONLY": "На сервере и в ЛС бота" } \ No newline at end of file diff --git a/languages/ru-RU/music/back.json b/languages/ru-RU/music/back.json index 811a3dd0..ea191b6b 100644 --- a/languages/ru-RU/music/back.json +++ b/languages/ru-RU/music/back.json @@ -2,6 +2,6 @@ "DESCRIPTION": "Включить предыдущий трек", "USAGE": "", "EXAMPLES": "back", - "NO_PREV_SONG": "Предыдущий трек отсутствует!", - "SUCCESS": "Играет предыдущий трек!" + "NO_PREV_SONG": "Предыдущий трек отсутствует", + "SUCCESS": "Играет предыдущий трек" } \ No newline at end of file diff --git a/languages/ru-RU/music/clips.json b/languages/ru-RU/music/clips.json index 2fa69aa4..43b66f5e 100644 --- a/languages/ru-RU/music/clips.json +++ b/languages/ru-RU/music/clips.json @@ -3,7 +3,7 @@ "USAGE": "", "EXAMPLES": "clips", "AVAILABLE_CLIPS": "Список доступных клипов:", - "ACTIVE_QUEUE": "Не могу воспроизвести клип, т.к. на сервере есть активная очередь!", - "ACTIVE_CLIP": "Уже воспроизводится какой-то файл!", + "ACTIVE_QUEUE": "Не могу воспроизвести клип, т.к. на сервере есть активная очередь", + "ACTIVE_CLIP": "Уже воспроизводится какой-то файл", "PLAYING": "Начато проигрывание клипа `{{clip}}`" } \ No newline at end of file diff --git a/languages/ru-RU/music/shuffle.json b/languages/ru-RU/music/shuffle.json new file mode 100644 index 00000000..4e24d328 --- /dev/null +++ b/languages/ru-RU/music/shuffle.json @@ -0,0 +1,6 @@ +{ + "DESCRIPTION": "Перемешать очередь", + "USAGE": "", + "EXAMPLES": "shuffle", + "SUCCESS": "Очередь успешно перемешана" +} \ No newline at end of file diff --git a/package.json b/package.json index 6f578380..5d47866b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jaba", - "version": "4.1.9", + "version": "4.1.10", "description": "My Discord Bot", "main": "index.js", "private": true,