diff --git a/base/Client.js b/base/Client.js index 194574b0..38076a36 100644 --- a/base/Client.js +++ b/base/Client.js @@ -48,7 +48,7 @@ class JaBaClient extends Client { await this.player.extractors.register(YoutubeiExtractor, { authentication: this.config.youtubeCookie, streamOptions: { - useClient: "WEB", + useClient: "YTMUSIC_ANDROID", }, }); @@ -267,7 +267,7 @@ class JaBaClient extends Client { * @param {string} name - The name of the command file (without the .js extension). * @returns {void} This method does not return a value. */ - async unloadCommand(dir, name) { + unloadCommand(dir, name) { delete require.cache[require.resolve(`${dir}${path.sep}${name}.js`)]; return; diff --git a/commands/!DISABLED/ban.js b/commands/!DISABLED/ban.js deleted file mode 100644 index bf1bcb64..00000000 --- a/commands/!DISABLED/ban.js +++ /dev/null @@ -1,73 +0,0 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); -const BaseCommand = require("../../base/BaseCommand"); - -class Ban extends BaseCommand { - /** - * - * @param {import("../../base/Client")} client - */ - constructor(client) { - super({ - command: new SlashCommandBuilder() - .setName("ban") - .setDescription(client.translate("moderation/ban:DESCRIPTION")) - .setDescriptionLocalizations({ - uk: client.translate("moderation/ban:DESCRIPTION", null, "uk-UA"), - ru: client.translate("moderation/ban:DESCRIPTION", null, "ru-RU"), - }) - .setDMPermission(false) - .setDefaultMemberPermissions(PermissionsBitField.Flags.BanMembers) - .addUserOption(option => - option - .setName("user") - .setDescription(client.translate("common:USER")) - .setDescriptionLocalizations({ - uk: client.translate("common:USER", null, "uk-UA"), - ru: client.translate("common:USER", null, "ru-RU"), - }) - .setRequired(true), - ) - .addStringOption(option => - option - .setName("reason") - .setDescription(client.translate("common:REASON")) - .setDescriptionLocalizations({ - uk: client.translate("common:REASON", null, "uk-UA"), - ru: client.translate("common:REASON", null, "ru-RU"), - }) - .setRequired(true), - ), - dirname: __dirname, - ownerOnly: false, - }); - } - - /** - * - * @param {import("../../base/Client")} client - * @param {import("discord.js").ChatInputCommandInteraction} interaction - */ - async execute(client, interaction) { - await interaction.deferReply(); - - const member = interaction.options.getMember("user"), - reason = interaction.options.getString("reason"), - memberPosition = member.roles.highest.position, - moderationPosition = interaction.member.roles.highest.position; - - if (member.user.bot) return interaction.error("misc:BOT_USER", null, { ephemeral: true, edit: true }); - if (member.id === interaction.member.id) return interaction.error("misc:CANT_YOURSELF", null, { ephemeral: true, edit: true }); - if (interaction.guild.ownerId !== interaction.member.id && !(moderationPosition > memberPosition) && member.bannable) return interaction.error("moderation/ban:SUPERIOR", null, { ephemeral: true, edit: true }); - - await member.ban({ - reason, - }); - - interaction.success("moderation/ban:SUCCESS", { - user: member.user.toString(), - reason, - }, { edit: true }); - } -} - -module.exports = Ban; diff --git a/commands/!DISABLED/importmee6.js b/commands/!DISABLED/importmee6.js deleted file mode 100644 index dcbb30c8..00000000 --- a/commands/!DISABLED/importmee6.js +++ /dev/null @@ -1,49 +0,0 @@ -const { SlashCommandBuilder } = require("discord.js"), - Mee6Api = require("../../helpers/mee6-api"); -const BaseCommand = require("../../base/BaseCommand"); - -class ImportMee6 extends BaseCommand { - /** - * - * @param {import("../base/Client")} client - */ - constructor(client) { - super({ - command: new SlashCommandBuilder() - .setName("importmee6") - .setDescription(client.translate("economy/importmee6:DESCRIPTION")) - .setDescriptionLocalizations({ - uk: client.translate("economy/importmee6:DESCRIPTION", null, "uk-UA"), - ru: client.translate("economy/importmee6:DESCRIPTION", null, "ru-RU"), - }) - .setDMPermission(false), - dirname: __dirname, - ownerOnly: false, - }); - } - - /** - * - * @param {import("../../base/Client")} client - * @param {import("discord.js").ChatInputCommandInteraction} interaction - */ - async execute(client, interaction) { - await interaction.deferReply(); - - const level = (await Mee6Api.getUserXp(interaction.guildId, interaction.member)).level; - - interaction.data.member.level = level; - interaction.data.member.exp = 0; - - await interaction.data.member.save(); - - interaction.editReply({ - content: interaction.translate("owner/debug:SUCCESS_LEVEL", { - user: interaction.member.toString(), - amount: level, - }), - }); - } -} - -module.exports = ImportMee6; diff --git a/commands/!DISABLED/kick.js b/commands/!DISABLED/kick.js deleted file mode 100644 index 86b1e0cd..00000000 --- a/commands/!DISABLED/kick.js +++ /dev/null @@ -1,73 +0,0 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); -const BaseCommand = require("../../base/BaseCommand"); - -class Kick extends BaseCommand { - /** - * - * @param {import("../../base/Client")} client - */ - constructor(client) { - super({ - command: new SlashCommandBuilder() - .setName("kick") - .setDescription(client.translate("moderation/kick:DESCRIPTION")) - .setDescriptionLocalizations({ - uk: client.translate("moderation/kick:DESCRIPTION", null, "uk-UA"), - ru: client.translate("moderation/kick:DESCRIPTION", null, "ru-RU"), - }) - .setDMPermission(false) - .setDefaultMemberPermissions(PermissionsBitField.Flags.KickMembers) - .addUserOption(option => - option - .setName("user") - .setDescription(client.translate("common:USER")) - .setDescriptionLocalizations({ - uk: client.translate("common:USER", null, "uk-UA"), - ru: client.translate("common:USER", null, "ru-RU"), - }) - .setRequired(true), - ) - .addStringOption(option => - option - .setName("reason") - .setDescription(client.translate("common:REASON")) - .setDescriptionLocalizations({ - uk: client.translate("common:REASON", null, "uk-UA"), - ru: client.translate("common:REASON", null, "ru-RU"), - }) - .setRequired(true), - ), - dirname: __dirname, - ownerOnly: false, - }); - } - - /** - * - * @param {import("../../base/Client")} client - * @param {import("discord.js").ChatInputCommandInteraction} interaction - */ - async execute(client, interaction) { - await interaction.deferReply(); - - const member = interaction.options.getMember("user"), - reason = interaction.options.getString("reason"), - memberPosition = member.roles.highest.position, - moderationPosition = interaction.member.roles.highest.position; - - if (member.user.bot) return interaction.error("misc:BOT_USER", null, { ephemeral: true, edit: true }); - if (member.id === interaction.member.id) return interaction.error("misc:CANT_YOURSELF", null, { ephemeral: true, edit: true }); - if (interaction.guild.ownerId !== interaction.member.id && !(moderationPosition > memberPosition) && member.kickable) return interaction.error("moderation/kick:SUPERIOR", null, { ephemeral: true, edit: true }); - - await member.kick({ - reason, - }); - - interaction.success("moderation/kick:SUCCESS", { - user: member.user.toString(), - reason, - }, { edit: true }); - } -} - -module.exports = Kick; diff --git a/commands/!DISABLED/memes.js b/commands/!DISABLED/memes.js deleted file mode 100644 index 4090cc59..00000000 --- a/commands/!DISABLED/memes.js +++ /dev/null @@ -1,79 +0,0 @@ -const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder } = require("discord.js"); -const BaseCommand = require("../../base/BaseCommand"), - fetch = require("node-fetch"); - -class Memes extends BaseCommand { - /** - * - * @param {import("../base/Client")} client - */ - constructor(client) { - super({ - command: new SlashCommandBuilder() - .setName("memes") - .setDescription(client.translate("fun/memes:DESCRIPTION")) - .setDescriptionLocalizations({ - uk: client.translate("fun/memes:DESCRIPTION", null, "uk-UA"), - ru: client.translate("fun/memes:DESCRIPTION", null, "ru-RU"), - }) - .setDMPermission(false), - dirname: __dirname, - ownerOnly: false, - }); - } - - /** - * - * @param {import("../../base/Client")} client - */ - async onLoad(client) { - client.on("interactionCreate", async interaction => { - if (!interaction.isStringSelectMenu()) return; - - if (interaction.customId === "memes_select") { - interaction.deferUpdate(); - - interaction.guild.data = await client.getGuildData(interaction.guildId); - - const tag = interaction.values[0]; - const res = await fetch(`https://meme-api.com/gimme/${tag}`).then(response => response.json()); - - const embed = client.embed({ - title: res.title, - description: `${interaction.translate("fun/memes:SUBREDDIT")}: **${res.subreddit}**\n${interaction.translate("common:AUTHOR")}: **${res.author}**\n${interaction.translate("fun/memes:UPS")}: **${res.ups}**`, - image: res.url, - }); - - await interaction.editReply({ - embeds: [embed], - }); - } - }); - } - - /** - * - * @param {import("../../base/Client")} client - * @param {import("discord.js").ChatInputCommandInteraction} interaction - */ - async execute(client, interaction) { - await interaction.deferReply({ ephemeral: true }); - - const tags = ["funny", "memes", "dankmemes", "me_irl", "wholesomememes"].map(tag => - JSON.parse( - JSON.stringify({ - label: tag, - value: tag, - }), - ), - ); - - const row = new ActionRowBuilder().addComponents(new StringSelectMenuBuilder().setCustomId("memes_select").setPlaceholder(interaction.translate("common:NOTHING_SELECTED")).addOptions(tags)); - - await interaction.editReply({ - components: [row], - }); - } -} - -module.exports = Memes; diff --git a/commands/!DISABLED/staff.js b/commands/!DISABLED/staff.js deleted file mode 100644 index 514bd04b..00000000 --- a/commands/!DISABLED/staff.js +++ /dev/null @@ -1,63 +0,0 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); -const BaseCommand = require("../../base/BaseCommand"); - -class Staff extends BaseCommand { - /** - * - * @param {import("../base/Client")} client - */ - constructor(client) { - super({ - command: new SlashCommandBuilder() - .setName("staff") - .setDescription(client.translate("general/staff:DESCRIPTION")) - .setDescriptionLocalizations({ - uk: client.translate("general/staff:DESCRIPTION", null, "uk-UA"), - ru: client.translate("general/staff:DESCRIPTION", null, "ru-RU"), - }) - .setDMPermission(false), - dirname: __dirname, - ownerOnly: false, - }); - } - - /** - * - * @param {import("../../base/Client")} client - * @param {import("discord.js").ChatInputCommandInteraction} interaction - */ - async execute(client, interaction) { - await interaction.guild.members.fetch(); - - const administrators = interaction.guild.members.cache.filter(m => m.permissions.has(PermissionsBitField.Flags.Administrator) && !m.user.bot); - const moderators = interaction.guild.members.cache.filter(m => !administrators.has(m.id) && m.permissions.has(PermissionsBitField.Flags.ManageMessages) && !m.user.bot); - - const embed = client.embed({ - author: { - name: interaction.translate("general/staff:TITLE", { - guild: interaction.guild.name, - }), - iconURL: interaction.guild.iconURL(), - }, - fields: [ - { - name: interaction.translate("general/staff:ADMINS"), - value: - administrators.size > 0 - ? administrators.map(a => `${a.presence ? client.customEmojis.status[a.presence.status] : client.customEmojis.status.offline} | <@${a.user.id}>`).join("\n") - : interaction.translate("general/staff:NO_ADMINS"), - }, - { - name: interaction.translate("general/staff:MODS"), - value: moderators.size > 0 ? moderators.map(m => `${m.presence ? client.customEmojis.status[m.presence.status] : client.customEmojis.status.offline} | <@${m.user.id}>`).join("\n") : interaction.translate("general/staff:NO_MODS"), - }, - ], - }); - - interaction.reply({ - embeds: [embed], - }); - } -} - -module.exports = Staff; diff --git a/commands/Administration/addemoji.js b/commands/Administration/addemoji.js index c944f7a2..21deb253 100644 --- a/commands/Administration/addemoji.js +++ b/commands/Administration/addemoji.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Addemoji extends BaseCommand { @@ -15,7 +15,7 @@ class Addemoji extends BaseCommand { uk: client.translate("administration/addemoji:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/addemoji:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addStringOption(option => option diff --git a/commands/Administration/automod.js b/commands/Administration/automod.js index e51e7841..ec5a8c9a 100644 --- a/commands/Administration/automod.js +++ b/commands/Administration/automod.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField, ChannelType } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, ChannelType, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Automod extends BaseCommand { @@ -15,7 +15,7 @@ class Automod extends BaseCommand { uk: client.translate("administration/automod:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/automod:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addSubcommand(subcommand => subcommand diff --git a/commands/Administration/autorole.js b/commands/Administration/autorole.js index a66a80d2..7699a0e4 100644 --- a/commands/Administration/autorole.js +++ b/commands/Administration/autorole.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Autorole extends BaseCommand { @@ -15,7 +15,7 @@ class Autorole extends BaseCommand { uk: client.translate("administration/autorole:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/autorole:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addBooleanOption(option => option diff --git a/commands/Administration/config.js b/commands/Administration/config.js index 3b88b312..50e52e89 100644 --- a/commands/Administration/config.js +++ b/commands/Administration/config.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField, ChannelType } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, ChannelType, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Config extends BaseCommand { @@ -15,7 +15,7 @@ class Config extends BaseCommand { uk: client.translate("administration/config:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/config:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addSubcommand(subcommand => subcommand diff --git a/commands/Administration/goodbye.js b/commands/Administration/goodbye.js index ad8c8e64..5189aecb 100644 --- a/commands/Administration/goodbye.js +++ b/commands/Administration/goodbye.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Goodbye extends BaseCommand { @@ -15,7 +15,7 @@ class Goodbye extends BaseCommand { uk: client.translate("administration/goodbye:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/goodbye:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addSubcommand(subcommand => subcommand @@ -26,42 +26,43 @@ class Goodbye extends BaseCommand { ru: client.translate("administration/goodbye:TEST", null, "ru-RU"), }), ) - .addSubcommand(subcommand => - subcommand - .setName("config") - .setDescription(client.translate("administration/goodbye:CONFIG")) - .setDescriptionLocalizations({ - uk: client.translate("administration/goodbye:CONFIG", null, "uk-UA"), - ru: client.translate("administration/goodbye:CONFIG", null, "ru-RU"), - }) - .addBooleanOption(option => - option - .setName("state") - .setDescription(client.translate("common:STATE")) - .setDescriptionLocalizations({ - uk: client.translate("common:STATE", null, "uk-UA"), - ru: client.translate("common:STATE", null, "ru-RU"), - }) - .setRequired(true), - ) - .addChannelOption(option => - option - .setName("channel") - .setDescription(client.translate("common:CHANNEL")) - .setDescriptionLocalizations({ - uk: client.translate("common:CHANNEL", null, "uk-UA"), - ru: client.translate("common:CHANNEL", null, "ru-RU"), - }), - ) - .addStringOption(option => - option - .setName("message") - .setDescription(client.translate("administration/goodbye:MESSAGE")) - .setDescriptionLocalizations({ - uk: client.translate("administration/goodbye:MESSAGE", null, "uk-UA"), - ru: client.translate("administration/goodbye:MESSAGE", null, "ru-RU"), - }), - ), + .addSubcommand( + subcommand => + subcommand + .setName("config") + .setDescription(client.translate("administration/goodbye:CONFIG")) + .setDescriptionLocalizations({ + uk: client.translate("administration/goodbye:CONFIG", null, "uk-UA"), + ru: client.translate("administration/goodbye:CONFIG", null, "ru-RU"), + }) + .addBooleanOption(option => + option + .setName("state") + .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ + uk: client.translate("common:STATE", null, "uk-UA"), + ru: client.translate("common:STATE", null, "ru-RU"), + }) + .setRequired(true), + ) + .addChannelOption(option => + option + .setName("channel") + .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ + uk: client.translate("common:CHANNEL", null, "uk-UA"), + ru: client.translate("common:CHANNEL", null, "ru-RU"), + }), + ) + .addStringOption(option => + option + .setName("message") + .setDescription(client.translate("administration/goodbye:MESSAGE")) + .setDescriptionLocalizations({ + uk: client.translate("administration/goodbye:MESSAGE", null, "uk-UA"), + ru: client.translate("administration/goodbye:MESSAGE", null, "ru-RU"), + }), + ), // .addBooleanOption(option => // option // .setName("image") diff --git a/commands/Administration/selectroles.js b/commands/Administration/selectroles.js index de1363e0..7d4bd177 100644 --- a/commands/Administration/selectroles.js +++ b/commands/Administration/selectroles.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField, ActionRowBuilder, StringSelectMenuBuilder } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, ActionRowBuilder, StringSelectMenuBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Selectroles extends BaseCommand { @@ -15,7 +15,7 @@ class Selectroles extends BaseCommand { uk: client.translate("administration/selectroles:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/selectroles:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addSubcommand(subcommand => subcommand diff --git a/commands/Administration/set.js b/commands/Administration/set.js index 9fff34b4..5ff31ddc 100644 --- a/commands/Administration/set.js +++ b/commands/Administration/set.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Set extends BaseCommand { @@ -15,7 +15,7 @@ class Set extends BaseCommand { uk: client.translate("administration/set:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/set:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addStringOption(option => option diff --git a/commands/Administration/setlang.js b/commands/Administration/setlang.js index ebba9353..eac96619 100644 --- a/commands/Administration/setlang.js +++ b/commands/Administration/setlang.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Setlang extends BaseCommand { @@ -15,7 +15,7 @@ class Setlang extends BaseCommand { uk: client.translate("administration/setlang:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/setlang:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addStringOption(option => option diff --git a/commands/Administration/stealemoji.js b/commands/Administration/stealemoji.js index 0544f415..d625d711 100644 --- a/commands/Administration/stealemoji.js +++ b/commands/Administration/stealemoji.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, parseEmoji, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, parseEmoji, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Stealemoji extends BaseCommand { @@ -15,7 +15,7 @@ class Stealemoji extends BaseCommand { uk: client.translate("administration/stealemoji:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/stealemoji:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addStringOption(option => option diff --git a/commands/Administration/welcome.js b/commands/Administration/welcome.js index 5ff4afe8..7ec94f89 100644 --- a/commands/Administration/welcome.js +++ b/commands/Administration/welcome.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Welcome extends BaseCommand { @@ -15,7 +15,7 @@ class Welcome extends BaseCommand { uk: client.translate("administration/welcome:DESCRIPTION", null, "uk-UA"), ru: client.translate("administration/welcome:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild) .addSubcommand(subcommand => subcommand @@ -26,42 +26,43 @@ class Welcome extends BaseCommand { ru: client.translate("administration/goodbye:TEST", null, "ru-RU"), }), ) - .addSubcommand(subcommand => - subcommand - .setName("config") - .setDescription(client.translate("administration/goodbye:CONFIG")) - .setDescriptionLocalizations({ - uk: client.translate("administration/goodbye:CONFIG", null, "uk-UA"), - ru: client.translate("administration/goodbye:CONFIG", null, "ru-RU"), - }) - .addBooleanOption(option => - option - .setName("state") - .setDescription(client.translate("common:STATE")) - .setDescriptionLocalizations({ - uk: client.translate("common:STATE", null, "uk-UA"), - ru: client.translate("common:STATE", null, "ru-RU"), - }) - .setRequired(true), - ) - .addChannelOption(option => - option - .setName("channel") - .setDescription(client.translate("common:CHANNEL")) - .setDescriptionLocalizations({ - uk: client.translate("common:CHANNEL", null, "uk-UA"), - ru: client.translate("common:CHANNEL", null, "ru-RU"), - }), - ) - .addStringOption(option => - option - .setName("message") - .setDescription(client.translate("administration/goodbye:MESSAGE")) - .setDescriptionLocalizations({ - uk: client.translate("administration/goodbye:MESSAGE", null, "uk-UA"), - ru: client.translate("administration/goodbye:MESSAGE", null, "ru-RU"), - }), - ), + .addSubcommand( + subcommand => + subcommand + .setName("config") + .setDescription(client.translate("administration/goodbye:CONFIG")) + .setDescriptionLocalizations({ + uk: client.translate("administration/goodbye:CONFIG", null, "uk-UA"), + ru: client.translate("administration/goodbye:CONFIG", null, "ru-RU"), + }) + .addBooleanOption(option => + option + .setName("state") + .setDescription(client.translate("common:STATE")) + .setDescriptionLocalizations({ + uk: client.translate("common:STATE", null, "uk-UA"), + ru: client.translate("common:STATE", null, "ru-RU"), + }) + .setRequired(true), + ) + .addChannelOption(option => + option + .setName("channel") + .setDescription(client.translate("common:CHANNEL")) + .setDescriptionLocalizations({ + uk: client.translate("common:CHANNEL", null, "uk-UA"), + ru: client.translate("common:CHANNEL", null, "ru-RU"), + }), + ) + .addStringOption(option => + option + .setName("message") + .setDescription(client.translate("administration/goodbye:MESSAGE")) + .setDescriptionLocalizations({ + uk: client.translate("administration/goodbye:MESSAGE", null, "uk-UA"), + ru: client.translate("administration/goodbye:MESSAGE", null, "ru-RU"), + }), + ), // .addBooleanOption(option => // option // .setName("image") diff --git a/commands/beatrun.ru/courses.js b/commands/Beatrun Courses/courses.js similarity index 51% rename from commands/beatrun.ru/courses.js rename to commands/Beatrun Courses/courses.js index 42a8dc5e..6cfdf7b4 100644 --- a/commands/beatrun.ru/courses.js +++ b/commands/Beatrun Courses/courses.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -11,12 +11,12 @@ class Courses extends BaseCommand { super({ command: new SlashCommandBuilder() .setName("courses") - .setDescription(client.translate("beatrun.ru/courses:DESCRIPTION")) + .setDescription(client.translate("beatrun_courses/courses:DESCRIPTION")) .setDescriptionLocalizations({ - uk: client.translate("beatrun.ru/courses:DESCRIPTION", null, "uk-UA"), - ru: client.translate("beatrun.ru/courses:DESCRIPTION", null, "ru-RU"), + uk: client.translate("beatrun_courses/courses:DESCRIPTION", null, "uk-UA"), + ru: client.translate("beatrun_courses/courses:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild, InteractionContextType.BotDM, InteractionContextType.PrivateChannel]) .addStringOption(option => option .setName("code") @@ -42,26 +42,25 @@ class Courses extends BaseCommand { await interaction.deferReply(); const code = interaction.options.getString("code"); + const response = await fetch(`https://courses.jonnybro.ru/api/info/${code}`).then(res => res.json()), + { data } = response; - const response = await fetch(`https://courses.jonnybro.ru/api/info/${code}`).then(res => res.json()); - const course = response.data; - - if (response.res === 401) return interaction.error("beatrun.ru/courses:NOT_FOUND", null, { ephemeral: true, edit: true }); + if (response.res === 401) return interaction.error("beatrun_courses/courses:NOT_FOUND", null, { ephemeral: true, edit: true }); const embed = client.embed({ - title: course.name, - description: `[${interaction.translate("beatrun.ru/courses:DOWNLOAD")}](https://courses.jonnybro.ru/${course.path})`, - thumbnail: course.mapimg, + title: data.name, + description: `[${interaction.translate("beatrun_courses/courses:DOWNLOAD")}](https://courses.jonnybro.ru/${data.path})`, + thumbnail: data.mapimg, url: `https://courses.jonnybro.ru/?search=${code}`, fields: [ { - name: interaction.translate("beatrun.ru/courses:MAP"), - value: `[${course.map}](https://steamcommunity.com/sharedfiles/filedetails/?id=${course.mapid})`, + name: interaction.translate("beatrun_courses/courses:MAP"), + value: `[${data.map}](https://steamcommunity.com/sharedfiles/filedetails/?id=${data.mapid})`, inline: true, }, { - name: interaction.translate("beatrun.ru/courses:UPLOADER"), - value: `[${course.uploader.name || course.uploader.userid}](https://steamcommunity.com/profiles/${course.uploader.userid})`, + name: interaction.translate("beatrun_courses/courses:UPLOADER"), + value: `[${data.uploader.name || data.uploader.userid}](https://steamcommunity.com/profiles/${data.uploader.userid})`, inline: true, }, { @@ -70,13 +69,13 @@ class Courses extends BaseCommand { inline: true, }, { - name: interaction.translate("beatrun.ru/courses:DATE"), - value: ``, + name: interaction.translate("beatrun_courses/courses:DATE"), + value: ``, inline: true, }, { - name: interaction.translate("beatrun.ru/courses:PLAYS"), - value: `${course.plays || 0}`, + name: interaction.translate("beatrun_courses/courses:PLAYS"), + value: `${data.plays || 0}`, inline: true, }, ], diff --git a/commands/Economy/achievements.js b/commands/Economy/achievements.js index 0c9dc8d3..278ffab2 100644 --- a/commands/Economy/achievements.js +++ b/commands/Economy/achievements.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Achievements extends BaseCommand { @@ -15,7 +15,7 @@ class Achievements extends BaseCommand { uk: client.translate("economy/achievements:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/achievements:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/bank.js b/commands/Economy/bank.js index e163b9ec..878d41ed 100644 --- a/commands/Economy/bank.js +++ b/commands/Economy/bank.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Bank extends BaseCommand { @@ -15,7 +15,7 @@ class Bank extends BaseCommand { uk: client.translate("economy/bank:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/bank:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addStringOption(option => option .setName("option") diff --git a/commands/Economy/birthdate.js b/commands/Economy/birthdate.js index 36392103..1b830895 100644 --- a/commands/Economy/birthdate.js +++ b/commands/Economy/birthdate.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Birthdate extends BaseCommand { @@ -15,7 +15,7 @@ class Birthdate extends BaseCommand { uk: client.translate("economy/birthdate:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/birthdate:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.Guild, InteractionContextType.PrivateChannel]) .addIntegerOption(option => option .setName("day") diff --git a/commands/Economy/divorce.js b/commands/Economy/divorce.js index 317b6f46..3059f27d 100644 --- a/commands/Economy/divorce.js +++ b/commands/Economy/divorce.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Divorce extends BaseCommand { @@ -15,7 +15,7 @@ class Divorce extends BaseCommand { uk: client.translate("economy/divorce:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/divorce:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Economy/leaderboard.js b/commands/Economy/leaderboard.js index 0fb698b0..45839117 100644 --- a/commands/Economy/leaderboard.js +++ b/commands/Economy/leaderboard.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Leaderboard extends BaseCommand { @@ -15,7 +15,7 @@ class Leaderboard extends BaseCommand { uk: client.translate("economy/leaderboard:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/leaderboard:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addStringOption(option => option .setName("type") diff --git a/commands/Economy/marry.js b/commands/Economy/marry.js index 32cb636b..9efbd316 100644 --- a/commands/Economy/marry.js +++ b/commands/Economy/marry.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), pendings = {}; @@ -16,7 +16,7 @@ class Marry extends BaseCommand { uk: client.translate("economy/marry:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/marry:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/money.js b/commands/Economy/money.js index 6d96e105..1695c77b 100644 --- a/commands/Economy/money.js +++ b/commands/Economy/money.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Money extends BaseCommand { @@ -15,7 +15,7 @@ class Money extends BaseCommand { uk: client.translate("economy/money:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/money:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/pay.js b/commands/Economy/pay.js index 575578dd..632e8f1a 100644 --- a/commands/Economy/pay.js +++ b/commands/Economy/pay.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Pay extends BaseCommand { @@ -15,7 +15,7 @@ class Pay extends BaseCommand { uk: client.translate("economy/pay:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/pay:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/profile.js b/commands/Economy/profile.js index 996778bc..27bceaf4 100644 --- a/commands/Economy/profile.js +++ b/commands/Economy/profile.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Profile extends BaseCommand { @@ -15,7 +15,7 @@ class Profile extends BaseCommand { uk: client.translate("economy/profile:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/profile:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/rep.js b/commands/Economy/rep.js index 550127cf..4ab20383 100644 --- a/commands/Economy/rep.js +++ b/commands/Economy/rep.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Rep extends BaseCommand { @@ -15,7 +15,7 @@ class Rep extends BaseCommand { uk: client.translate("economy/rep:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/rep:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/rob.js b/commands/Economy/rob.js index b263331b..3fcc4686 100644 --- a/commands/Economy/rob.js +++ b/commands/Economy/rob.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Rob extends BaseCommand { @@ -15,7 +15,7 @@ class Rob extends BaseCommand { uk: client.translate("economy/rob:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/rob:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/Economy/setbio.js b/commands/Economy/setbio.js index 0886f1da..52357c12 100644 --- a/commands/Economy/setbio.js +++ b/commands/Economy/setbio.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Setbio extends BaseCommand { @@ -15,7 +15,7 @@ class Setbio extends BaseCommand { uk: client.translate("economy/setbio:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/setbio:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.Guild]) .addStringOption(option => option .setName("text") @@ -37,6 +37,8 @@ class Setbio extends BaseCommand { * @param {import("discord.js").ChatInputCommandInteraction} interaction */ async execute(client, interaction) { + await interaction.deferReply({ ephemeral: true }); + const userData = interaction.data.user, newBio = interaction.options.getString("text"); if (newBio.length > 150) return interaction.error("economy/setbio:MAX_CHARACTERS"); @@ -45,7 +47,7 @@ class Setbio extends BaseCommand { await userData.save(); - interaction.success("economy/setbio:SUCCESS"); + interaction.success("economy/setbio:SUCCESS", null, { edit: true }); } } diff --git a/commands/Economy/slots.js b/commands/Economy/slots.js index c06a75ab..3ac304d6 100644 --- a/commands/Economy/slots.js +++ b/commands/Economy/slots.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Slots extends BaseCommand { @@ -15,7 +15,7 @@ class Slots extends BaseCommand { uk: client.translate("economy/slots:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/slots:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addIntegerOption(option => option .setName("amount") diff --git a/commands/Economy/transactions.js b/commands/Economy/transactions.js index 9af4932b..ec666c8d 100644 --- a/commands/Economy/transactions.js +++ b/commands/Economy/transactions.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Transactions extends BaseCommand { @@ -15,7 +15,7 @@ class Transactions extends BaseCommand { uk: client.translate("economy/transactions:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/transactions:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addBooleanOption(option => option .setName("clear") diff --git a/commands/Economy/work.js b/commands/Economy/work.js index cca86acf..e83e0688 100644 --- a/commands/Economy/work.js +++ b/commands/Economy/work.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, parseEmoji } = require("discord.js"); +const { SlashCommandBuilder, parseEmoji, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Work extends BaseCommand { @@ -15,7 +15,7 @@ class Work extends BaseCommand { uk: client.translate("economy/work:DESCRIPTION", null, "uk-UA"), ru: client.translate("economy/work:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Fun/8ball.js b/commands/Fun/8ball.js index 83748b9f..4d1eebd5 100644 --- a/commands/Fun/8ball.js +++ b/commands/Fun/8ball.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Eightball extends BaseCommand { @@ -15,7 +15,7 @@ class Eightball extends BaseCommand { uk: client.translate("fun/8ball:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/8ball:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("question") diff --git a/commands/Fun/cat.js b/commands/Fun/cat.js index d28c3607..b2492504 100644 --- a/commands/Fun/cat.js +++ b/commands/Fun/cat.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -16,7 +16,7 @@ class Cat extends BaseCommand { uk: client.translate("fun/cat:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/cat:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Fun/dog.js b/commands/Fun/dog.js index 1330040c..ddea2071 100644 --- a/commands/Fun/dog.js +++ b/commands/Fun/dog.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -16,7 +16,7 @@ class Dog extends BaseCommand { uk: client.translate("fun/dog:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/dog:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Fun/lmgtfy.js b/commands/Fun/lmgtfy.js index e2b19273..4360b2b3 100644 --- a/commands/Fun/lmgtfy.js +++ b/commands/Fun/lmgtfy.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -16,7 +16,7 @@ class LMGTFY extends BaseCommand { uk: client.translate("fun/lmgtfy:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/lmgtfy:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("query") diff --git a/commands/Fun/lovecalc.js b/commands/Fun/lovecalc.js index 0e6bed61..77caa6e7 100644 --- a/commands/Fun/lovecalc.js +++ b/commands/Fun/lovecalc.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), md5 = require("md5"); @@ -16,7 +16,7 @@ class Lovecalc extends BaseCommand { uk: client.translate("fun/lovecalc:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/lovecalc:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("first_member") diff --git a/commands/Fun/number.js b/commands/Fun/number.js index d751b26b..c9b7c280 100644 --- a/commands/Fun/number.js +++ b/commands/Fun/number.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, MessageCollector, ButtonBuilder, ActionRowBuilder, ButtonStyle, ThreadAutoArchiveDuration } = require("discord.js"); +const { SlashCommandBuilder, MessageCollector, ButtonBuilder, ActionRowBuilder, ButtonStyle, ThreadAutoArchiveDuration, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), currentGames = {}; @@ -16,7 +16,7 @@ class Number extends BaseCommand { uk: client.translate("fun/number:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/number:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.Guild, InteractionContextType.PrivateChannel]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Fun/tictactoe.js b/commands/Fun/tictactoe.js index 32c20dcd..4bb6632a 100644 --- a/commands/Fun/tictactoe.js +++ b/commands/Fun/tictactoe.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), tictactoe = require("../../helpers/tictactoe"); @@ -16,7 +16,7 @@ class TicTacToe extends BaseCommand { uk: client.translate("fun/tictactoe:DESCRIPTION", null, "uk-UA"), ru: client.translate("fun/tictactoe:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild, InteractionContextType.PrivateChannel]) .addUserOption(option => option .setName("user") diff --git a/commands/General/afk.js b/commands/General/afk.js index b04b257c..efe2e362 100644 --- a/commands/General/afk.js +++ b/commands/General/afk.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Afk extends BaseCommand { @@ -15,7 +15,7 @@ class Afk extends BaseCommand { uk: client.translate("general/afk:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/afk:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("message") diff --git a/commands/General/avatar.c.js b/commands/General/avatar.c.js index 5a684bac..d6c34eb8 100644 --- a/commands/General/avatar.c.js +++ b/commands/General/avatar.c.js @@ -1,4 +1,4 @@ -const { ContextMenuCommandBuilder, ApplicationCommandType } = require("discord.js"); +const { ContextMenuCommandBuilder, ApplicationCommandType, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class AvatarContext extends BaseCommand { @@ -11,7 +11,7 @@ class AvatarContext extends BaseCommand { command: new ContextMenuCommandBuilder() .setName("Get Avatar") .setType(ApplicationCommandType.User) - .setDMPermission(false), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/General/avatar.js b/commands/General/avatar.js index 58ceb977..448ac362 100644 --- a/commands/General/avatar.js +++ b/commands/General/avatar.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Avatar extends BaseCommand { @@ -15,7 +15,7 @@ class Avatar extends BaseCommand { uk: client.translate("general/avatar:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/avatar:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addUserOption(option => option .setName("user") @@ -45,8 +45,8 @@ class Avatar extends BaseCommand { * @param {import("discord.js").ChatInputCommandInteraction} interaction */ async execute(client, interaction) { - const member = interaction.options.getMember("user") || interaction.member; - const avatarURL = interaction.options.getBoolean("server") ? member.displayAvatarURL({ size: 2048 }) : member.user.displayAvatarURL({ size: 2048 }); + const user = interaction.options.getUser("user") || interaction.user; + const avatarURL = interaction.options.getBoolean("server") ? user.displayAvatarURL({ size: 2048 }) : user.avatarURL({ size: 2048 }); const embed = client.embed({ image: avatarURL }); interaction.reply({ diff --git a/commands/General/boosters.js b/commands/General/boosters.js index da90993e..2e3167b3 100644 --- a/commands/General/boosters.js +++ b/commands/General/boosters.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Boosters extends BaseCommand { @@ -15,7 +15,7 @@ class Boosters extends BaseCommand { uk: client.translate("general/boosters:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/boosters:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/General/emoji.js b/commands/General/emoji.js index 0a3857da..b99120a5 100644 --- a/commands/General/emoji.js +++ b/commands/General/emoji.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, parseEmoji } = require("discord.js"); +const { SlashCommandBuilder, parseEmoji, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Emoji extends BaseCommand { @@ -15,7 +15,7 @@ class Emoji extends BaseCommand { uk: client.translate("general/emoji:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/emoji:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("emoji") diff --git a/commands/General/help.js b/commands/General/help.js index b4844991..806ac743 100644 --- a/commands/General/help.js +++ b/commands/General/help.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Help extends BaseCommand { @@ -15,7 +15,7 @@ class Help extends BaseCommand { uk: client.translate("general/help:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/help:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("command") diff --git a/commands/General/info.js b/commands/General/info.js index 94de7ede..27a9114c 100644 --- a/commands/General/info.js +++ b/commands/General/info.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ChannelType } = require("discord.js"); +const { SlashCommandBuilder, ChannelType, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Info extends BaseCommand { @@ -15,7 +15,7 @@ class Info extends BaseCommand { uk: client.translate("general/info:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/info:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addSubcommand(subcommand => subcommand .setName("user") diff --git a/commands/General/minecraft.js b/commands/General/minecraft.js index b7dfab36..654de5df 100644 --- a/commands/General/minecraft.js +++ b/commands/General/minecraft.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), gamedig = require("gamedig"); @@ -16,7 +16,7 @@ class Minecraft extends BaseCommand { uk: client.translate("general/minecraft:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/minecraft:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("ip") diff --git a/commands/General/ping.js b/commands/General/ping.js index 6a08a6ca..95e422a9 100644 --- a/commands/General/ping.js +++ b/commands/General/ping.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Ping extends BaseCommand { @@ -15,7 +15,7 @@ class Ping extends BaseCommand { uk: client.translate("general/ping:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/ping:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/General/remindme.js b/commands/General/remindme.js index c99cafcf..0030e6bc 100644 --- a/commands/General/remindme.js +++ b/commands/General/remindme.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), ms = require("ms"); @@ -16,7 +16,7 @@ class Remindme extends BaseCommand { uk: client.translate("general/remindme:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/remindme:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("time") diff --git a/commands/General/reminds.js b/commands/General/reminds.js index bbe5c4fe..d36d2ca0 100644 --- a/commands/General/reminds.js +++ b/commands/General/reminds.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Reminds extends BaseCommand { @@ -15,7 +15,7 @@ class Reminds extends BaseCommand { uk: client.translate("general/reminds:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/reminds:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/General/report.js b/commands/General/report.js index 7a3cbefb..410197b1 100644 --- a/commands/General/report.js +++ b/commands/General/report.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, parseEmoji } = require("discord.js"); +const { SlashCommandBuilder, parseEmoji, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Report extends BaseCommand { @@ -15,7 +15,7 @@ class Report extends BaseCommand { uk: client.translate("general/report:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/report:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addUserOption(option => option .setName("user") diff --git a/commands/General/shorturl.js b/commands/General/shorturl.js index ea8e78c9..325827b3 100644 --- a/commands/General/shorturl.js +++ b/commands/General/shorturl.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -16,7 +16,7 @@ class Shorturl extends BaseCommand { uk: client.translate("general/shorturl:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/shorturl:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("url") diff --git a/commands/General/stats.js b/commands/General/stats.js index c9047cfa..11652bec 100644 --- a/commands/General/stats.js +++ b/commands/General/stats.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField, version: djsVersion } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, version: discordJsVersion, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Stats extends BaseCommand { @@ -15,7 +15,7 @@ class Stats extends BaseCommand { uk: client.translate("general/stats:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/stats:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); @@ -47,7 +47,7 @@ class Stats extends BaseCommand { }, { name: client.customEmojis.version + " " + interaction.translate("general/stats:VERSIONS_TITLE"), - value: `\`Discord.js: v${djsVersion}\`\n\`Nodejs: v${process.versions.node}\``, + value: `\`Discord.js: v${discordJsVersion}\`\n\`Nodejs: v${process.versions.node}\``, inline: true, }, { diff --git a/commands/General/suggest.js b/commands/General/suggest.js index 02001214..d2fa0ccb 100644 --- a/commands/General/suggest.js +++ b/commands/General/suggest.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, parseEmoji } = require("discord.js"); +const { SlashCommandBuilder, parseEmoji, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Suggest extends BaseCommand { @@ -15,7 +15,7 @@ class Suggest extends BaseCommand { uk: client.translate("general/suggest:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/suggest:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addStringOption(option => option .setName("message") diff --git a/commands/General/whois.js b/commands/General/whois.js index 834018c9..b1a48e54 100644 --- a/commands/General/whois.js +++ b/commands/General/whois.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -16,7 +16,7 @@ class Whois extends BaseCommand { uk: client.translate("general/whois:DESCRIPTION", null, "uk-UA"), ru: client.translate("general/whois:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("ip") diff --git a/commands/IAT/checkjar.js b/commands/IAT/checkjar.js index ca912386..c3ec3cdb 100644 --- a/commands/IAT/checkjar.js +++ b/commands/IAT/checkjar.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"), moment = require("moment"); @@ -17,7 +17,7 @@ class Checkjar extends BaseCommand { uk: client.translate("iat/checkjar:DESCRIPTION", null, "uk-UA"), ru: client.translate("iat/checkjar:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Moderation/clear.js b/commands/Moderation/clear.js index a3e52321..74aa1020 100644 --- a/commands/Moderation/clear.js +++ b/commands/Moderation/clear.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Clear extends BaseCommand { @@ -15,7 +15,7 @@ class Clear extends BaseCommand { uk: client.translate("moderation/clear:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/clear:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addStringOption(option => option diff --git a/commands/Moderation/clearwarns.js b/commands/Moderation/clearwarns.js index 95209493..fb3cf082 100644 --- a/commands/Moderation/clearwarns.js +++ b/commands/Moderation/clearwarns.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Clearwarns extends BaseCommand { @@ -15,7 +15,7 @@ class Clearwarns extends BaseCommand { uk: client.translate("moderation/clearwarns:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/clearwarns:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addUserOption(option => option diff --git a/commands/Moderation/giveaway.js b/commands/Moderation/giveaway.js index 227cb672..761312da 100644 --- a/commands/Moderation/giveaway.js +++ b/commands/Moderation/giveaway.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), ms = require("ms"); @@ -16,7 +16,7 @@ class Giveaway extends BaseCommand { uk: client.translate("moderation/giveaway:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/giveaway:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addSubcommand(subcommand => subcommand diff --git a/commands/Moderation/poll.js b/commands/Moderation/poll.js index c0648780..3098a08c 100644 --- a/commands/Moderation/poll.js +++ b/commands/Moderation/poll.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, PermissionsBitField, parseEmoji } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, PermissionsBitField, parseEmoji, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Poll extends BaseCommand { @@ -15,7 +15,7 @@ class Poll extends BaseCommand { uk: client.translate("moderation/poll:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/poll:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addStringOption(option => option diff --git a/commands/Moderation/unban.js b/commands/Moderation/unban.js index 6c042d78..b587d6bf 100644 --- a/commands/Moderation/unban.js +++ b/commands/Moderation/unban.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Unban extends BaseCommand { @@ -15,7 +15,7 @@ class Unban extends BaseCommand { uk: client.translate("moderation/unban:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/unban:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addStringOption(option => option diff --git a/commands/Moderation/untimeout.js b/commands/Moderation/untimeout.js index 46b0dfd6..7b4d97d1 100644 --- a/commands/Moderation/untimeout.js +++ b/commands/Moderation/untimeout.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Ban extends BaseCommand { @@ -15,7 +15,7 @@ class Ban extends BaseCommand { uk: client.translate("moderation/untimeout:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/untimeout:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ModerateMembers) .addUserOption(option => option diff --git a/commands/Moderation/warn.c.js b/commands/Moderation/warn.c.js index b3a4a0e6..1cada311 100644 --- a/commands/Moderation/warn.c.js +++ b/commands/Moderation/warn.c.js @@ -1,4 +1,4 @@ -const { ContextMenuCommandBuilder, ModalBuilder, ActionRowBuilder, TextInputBuilder, ApplicationCommandType, PermissionsBitField, TextInputStyle } = require("discord.js"); +const { ContextMenuCommandBuilder, ModalBuilder, ActionRowBuilder, TextInputBuilder, ApplicationCommandType, PermissionsBitField, TextInputStyle, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class WarnContext extends BaseCommand { @@ -11,7 +11,7 @@ class WarnContext extends BaseCommand { command: new ContextMenuCommandBuilder() .setName("Give Warn") .setType(ApplicationCommandType.User) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages), dirname: __dirname, ownerOnly: false, diff --git a/commands/Moderation/warns.js b/commands/Moderation/warns.js index 2f96602c..8863f4a5 100644 --- a/commands/Moderation/warns.js +++ b/commands/Moderation/warns.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Warns extends BaseCommand { @@ -15,7 +15,7 @@ class Warns extends BaseCommand { uk: client.translate("moderation/warns:DESCRIPTION", null, "uk-UA"), ru: client.translate("moderation/warns:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addUserOption(option => option diff --git a/commands/Music/back.js b/commands/Music/back.js index 71307d25..2db4d9cd 100644 --- a/commands/Music/back.js +++ b/commands/Music/back.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Back extends BaseCommand { @@ -15,7 +15,7 @@ class Back extends BaseCommand { uk: client.translate("music/back:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/back:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Music/clips.js b/commands/Music/clips.js index 87dd5ffd..a2ce12cd 100644 --- a/commands/Music/clips.js +++ b/commands/Music/clips.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"), +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"), { QueryType } = require("discord-player"); const BaseCommand = require("../../base/BaseCommand"), fs = require("fs"); @@ -17,7 +17,7 @@ class Clips extends BaseCommand { uk: client.translate("music/clips:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/clips:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("query") diff --git a/commands/Music/loop.js b/commands/Music/loop.js index 00519b71..f92a56c3 100644 --- a/commands/Music/loop.js +++ b/commands/Music/loop.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"), +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"), { QueueRepeatMode } = require("discord-player"); const BaseCommand = require("../../base/BaseCommand"); @@ -16,7 +16,7 @@ class Loop extends BaseCommand { uk: client.translate("music/loop:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/loop:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("option") diff --git a/commands/Music/nowplaying.js b/commands/Music/nowplaying.js index fca9fee0..3dd0f902 100644 --- a/commands/Music/nowplaying.js +++ b/commands/Music/nowplaying.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder, StringSelectMenuOptionBuilder } = require("discord.js"), +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, InteractionContextType } = require("discord.js"), { QueueRepeatMode } = require("discord-player"); const BaseCommand = require("../../base/BaseCommand"); @@ -16,7 +16,7 @@ class Nowplaying extends BaseCommand { uk: client.translate("music/nowplaying:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/nowplaying:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Music/play.c.js b/commands/Music/play.c.js index 29e2cb79..7b0251ac 100644 --- a/commands/Music/play.c.js +++ b/commands/Music/play.c.js @@ -1,4 +1,4 @@ -const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionsBitField } = require("discord.js"); +const { ContextMenuCommandBuilder, ApplicationCommandType, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class PlayContext extends BaseCommand { @@ -11,7 +11,7 @@ class PlayContext extends BaseCommand { command: new ContextMenuCommandBuilder() .setName("Add to Queue") .setType(ApplicationCommandType.Message) - .setDMPermission(false), + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Music/play.js b/commands/Music/play.js index cf003681..79647beb 100644 --- a/commands/Music/play.js +++ b/commands/Music/play.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"), +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"), { QueryType } = require("discord-player"); const BaseCommand = require("../../base/BaseCommand"); @@ -16,7 +16,7 @@ class Play extends BaseCommand { uk: client.translate("music/play:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/play:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("query") diff --git a/commands/Music/queue.js b/commands/Music/queue.js index 097269cc..0ebb4f86 100644 --- a/commands/Music/queue.js +++ b/commands/Music/queue.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, ButtonBuilder, ButtonStyle, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Queue extends BaseCommand { @@ -15,7 +15,7 @@ class Queue extends BaseCommand { uk: client.translate("music/queue:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/queue:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Music/seek.js b/commands/Music/seek.js index 86b560aa..ed0d353c 100644 --- a/commands/Music/seek.js +++ b/commands/Music/seek.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Seek extends BaseCommand { @@ -15,6 +15,7 @@ class Seek extends BaseCommand { uk: client.translate("music/seek:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/seek:DESCRIPTION", null, "ru-RU"), }) + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addIntegerOption(option => option .setName("time") diff --git a/commands/Music/shuffle.js b/commands/Music/shuffle.js index 8d5890c1..bccf90f2 100644 --- a/commands/Music/shuffle.js +++ b/commands/Music/shuffle.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Shuffle extends BaseCommand { @@ -15,7 +15,7 @@ class Shuffle extends BaseCommand { uk: client.translate("music/shuffle:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/shuffle:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Music/skip.js b/commands/Music/skip.js index 535b4422..6f4b6384 100644 --- a/commands/Music/skip.js +++ b/commands/Music/skip.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Skip extends BaseCommand { @@ -15,7 +15,7 @@ class Skip extends BaseCommand { uk: client.translate("music/skip:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/skip:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addIntegerOption(option => option .setName("position") diff --git a/commands/Music/stop.js b/commands/Music/stop.js index a5e34364..7718f7ab 100644 --- a/commands/Music/stop.js +++ b/commands/Music/stop.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Stop extends BaseCommand { @@ -15,7 +15,7 @@ class Stop extends BaseCommand { uk: client.translate("music/stop:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/stop:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false), + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Music/volume.js b/commands/Music/volume.js index 00a72d7d..b7498f29 100644 --- a/commands/Music/volume.js +++ b/commands/Music/volume.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Volume extends BaseCommand { @@ -15,7 +15,7 @@ class Volume extends BaseCommand { uk: client.translate("music/volume:DESCRIPTION", null, "uk-UA"), ru: client.translate("music/volume:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addIntegerOption(option => option .setName("int") diff --git a/commands/NSFW/nsfw.js b/commands/NSFW/nsfw.js index 45c5650d..8ab565f7 100644 --- a/commands/NSFW/nsfw.js +++ b/commands/NSFW/nsfw.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder, AttachmentBuilder } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, StringSelectMenuBuilder, AttachmentBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), fetch = require("node-fetch"); @@ -16,7 +16,7 @@ class NSFW extends BaseCommand { uk: client.translate("nsfw/nsfw:DESCRIPTION", null, "uk-UA"), ru: client.translate("nsfw/nsfw:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: false, }); diff --git a/commands/Owner/debug.js b/commands/Owner/debug.js index fdbd67c3..58c7079b 100644 --- a/commands/Owner/debug.js +++ b/commands/Owner/debug.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Debug extends BaseCommand { @@ -15,7 +15,7 @@ class Debug extends BaseCommand { uk: client.translate("owner/debug:DESCRIPTION", null, "uk-UA"), ru: client.translate("owner/debug:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addSubcommand(subcommand => subcommand .setName("set") diff --git a/commands/Owner/eval.js b/commands/Owner/eval.js index eb09ad63..865b7c19 100644 --- a/commands/Owner/eval.js +++ b/commands/Owner/eval.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Eval extends BaseCommand { @@ -15,7 +15,7 @@ class Eval extends BaseCommand { uk: client.translate("owner/eval:DESCRIPTION", null, "uk-UA"), ru: client.translate("owner/eval:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("code") diff --git a/commands/Owner/reload.js b/commands/Owner/reload.js index 4cfaae44..fc7105ec 100644 --- a/commands/Owner/reload.js +++ b/commands/Owner/reload.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"), i18next = require("i18next"); // autoUpdateDocs = require("../../helpers/autoUpdateDocs"); @@ -17,7 +17,7 @@ class Reload extends BaseCommand { uk: client.translate("owner/reload:DESCRIPTION", null, "uk-UA"), ru: client.translate("owner/reload:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true) + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]) .addStringOption(option => option .setName("command") @@ -44,7 +44,8 @@ class Reload extends BaseCommand { cmd = client.commands.get(command); if (!cmd) return interaction.error("owner/reload:NOT_FOUND", { command }, { ephemeral: true }); - await client.unloadCommand(`../commands/${cmd.category}`, cmd.command.name); + client.unloadCommand(`../commands/${cmd.category}`, cmd.command.name); + await client.loadCommand(`../commands/${cmd.category}`, cmd.command.name); i18next.reloadResources(["ru-RU", "uk-UA", "en-US"]); diff --git a/commands/Owner/say.js b/commands/Owner/say.js index 6c99d7f7..d2089e1c 100644 --- a/commands/Owner/say.js +++ b/commands/Owner/say.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder } = require("discord.js"); +const { SlashCommandBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Say extends BaseCommand { @@ -15,7 +15,7 @@ class Say extends BaseCommand { uk: client.translate("owner/say:DESCRIPTION", null, "uk-UA"), ru: client.translate("owner/say:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .addStringOption(option => option .setName("message") diff --git a/commands/Owner/servers.js b/commands/Owner/servers.js index 66339176..4d586148 100644 --- a/commands/Owner/servers.js +++ b/commands/Owner/servers.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); +const { SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class Servers extends BaseCommand { @@ -15,7 +15,7 @@ class Servers extends BaseCommand { uk: client.translate("owner/servers:DESCRIPTION", null, "uk-UA"), ru: client.translate("owner/servers:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(true), + .setContexts([InteractionContextType.BotDM, InteractionContextType.PrivateChannel, InteractionContextType.Guild]), dirname: __dirname, ownerOnly: true, }); diff --git a/commands/Tickets/adduser.js b/commands/Tickets/adduser.js index 9620c34e..a5e2c95f 100644 --- a/commands/Tickets/adduser.js +++ b/commands/Tickets/adduser.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class AddUser extends BaseCommand { @@ -15,7 +15,7 @@ class AddUser extends BaseCommand { uk: client.translate("tickets/adduser:DESCRIPTION", null, "uk-UA"), ru: client.translate("tickets/adduser:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addUserOption(option => option diff --git a/commands/Tickets/closeticket.js b/commands/Tickets/closeticket.js index 9213c97f..9c2f04eb 100644 --- a/commands/Tickets/closeticket.js +++ b/commands/Tickets/closeticket.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField, ButtonBuilder, ButtonStyle, ActionRowBuilder } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, ButtonBuilder, ButtonStyle, ActionRowBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class CloseTicket extends BaseCommand { @@ -15,7 +15,7 @@ class CloseTicket extends BaseCommand { uk: client.translate("tickets/closeticket:DESCRIPTION", null, "uk-UA"), ru: client.translate("tickets/closeticket:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages), dirname: __dirname, ownerOnly: false, diff --git a/commands/Tickets/createticketembed.js b/commands/Tickets/createticketembed.js index b6283ba9..8ae6f950 100644 --- a/commands/Tickets/createticketembed.js +++ b/commands/Tickets/createticketembed.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField, ButtonBuilder, ButtonStyle, ActionRowBuilder } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, ButtonBuilder, ButtonStyle, ActionRowBuilder, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class CreateTicketEmbed extends BaseCommand { @@ -15,7 +15,7 @@ class CreateTicketEmbed extends BaseCommand { uk: client.translate("tickets/createticketembed:DESCRIPTION", null, "uk-UA"), ru: client.translate("tickets/createticketembed:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageGuild), dirname: __dirname, ownerOnly: false, diff --git a/commands/Tickets/removeuser.js b/commands/Tickets/removeuser.js index 066f8151..20cececa 100644 --- a/commands/Tickets/removeuser.js +++ b/commands/Tickets/removeuser.js @@ -1,4 +1,4 @@ -const { SlashCommandBuilder, PermissionsBitField } = require("discord.js"); +const { SlashCommandBuilder, PermissionsBitField, InteractionContextType } = require("discord.js"); const BaseCommand = require("../../base/BaseCommand"); class RemoveUser extends BaseCommand { @@ -15,7 +15,7 @@ class RemoveUser extends BaseCommand { uk: client.translate("tickets/removeuser:DESCRIPTION", null, "uk-UA"), ru: client.translate("tickets/removeuser:DESCRIPTION", null, "ru-RU"), }) - .setDMPermission(false) + .setContexts([InteractionContextType.Guild]) .setDefaultMemberPermissions(PermissionsBitField.Flags.ManageMessages) .addUserOption(option => option diff --git a/events/CommandHandler.js b/events/CommandHandler.js index 5f611f20..ef8921c6 100644 --- a/events/CommandHandler.js +++ b/events/CommandHandler.js @@ -1,4 +1,4 @@ -const { InteractionType } = require("discord.js"); +const { SlashCommandBuilder, InteractionType } = require("discord.js"); const BaseEvent = require("../base/BaseEvent"); class CommandHandler extends BaseEvent { @@ -34,7 +34,6 @@ class CommandHandler extends BaseEvent { if (interaction.type !== InteractionType.ApplicationCommand && !interaction.isCommand()) return; if (command?.dirname.includes("IAT") && interaction.guildId !== "1039187019957555252") return interaction.reply({ content: "IAT only", ephemeral: true }); - if (command?.dirname.includes("beatrun") && interaction.guildId !== "1113394230002454560") return interaction.reply({ content: "Beatrun.ru only", ephemeral: true }); if (command.ownerOnly && interaction.user.id !== client.config.owner.id) return interaction.error("misc:OWNER_ONLY", null, { ephemeral: true }); if (!interaction.data.user.achievements.firstCommand.achieved) { @@ -59,7 +58,7 @@ class CommandHandler extends BaseEvent { } client.logger.cmd( - `[${interaction.guild ? interaction.guild.name : "DM"}]: [${interaction.user.getUsername()}] => /${command.command.name}${ + `[${interaction.guild ? interaction.guild.name : "DM/Private Channel"}]: [${interaction.user.getUsername()}] => /${command.command.name}${ interaction.options.data.length > 0 ? `, args: [${interaction.options.data .map(arg => { diff --git a/events/ready.js b/events/ready.js index 6adb5e04..66f17b30 100644 --- a/events/ready.js +++ b/events/ready.js @@ -36,10 +36,11 @@ class Ready extends BaseEvent { const version = require("../package.json").version; const status = [ - "Use /help to get commands list", `${commands.length} ${client.functions.getNoun(commands.length, client.translate("misc:NOUNS:COMMANDS:1"), client.translate("misc:NOUNS:COMMANDS:2"), client.translate("misc:NOUNS:COMMANDS:5"))} available!`, - `Bot is in ${servers} ${client.functions.getNoun(servers, client.translate("misc:NOUNS:SERVER:1"), client.translate("misc:NOUNS:SERVER:2"), client.translate("misc:NOUNS:SERVER:5"))}`, - `Cached ${users} ${client.functions.getNoun(users, client.translate("misc:NOUNS:USERS:1"), client.translate("misc:NOUNS:USERS:2"), client.translate("misc:NOUNS:USERS:5"))}`, + `I'm in ${servers} ${client.functions.getNoun(servers, client.translate("misc:NOUNS:SERVER:1"), client.translate("misc:NOUNS:SERVER:2"), client.translate("misc:NOUNS:SERVER:5"))}!`, + `Cached ${users} ${client.functions.getNoun(users, client.translate("misc:NOUNS:USERS:1"), client.translate("misc:NOUNS:USERS:2"), client.translate("misc:NOUNS:USERS:5"))}.`, + "Use /help for commands list!", + "Did you know that I have a brother called JaBa IT? Yeah! Ask Jonny about him.", ]; let i = 0; diff --git a/languages/en-US/beatrun.ru/courses.json b/languages/en-US/beatrun_courses/courses.json similarity index 100% rename from languages/en-US/beatrun.ru/courses.json rename to languages/en-US/beatrun_courses/courses.json diff --git a/languages/ru-RU/beatrun.ru/courses.json b/languages/ru-RU/beatrun_courses/courses.json similarity index 100% rename from languages/ru-RU/beatrun.ru/courses.json rename to languages/ru-RU/beatrun_courses/courses.json diff --git a/languages/uk-UA/beatrun.ru/courses.json b/languages/uk-UA/beatrun_courses/courses.json similarity index 100% rename from languages/uk-UA/beatrun.ru/courses.json rename to languages/uk-UA/beatrun_courses/courses.json diff --git a/package.json b/package.json index b00b34e2..1ef9944e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jaba", - "version": "4.6.4", + "version": "4.6.5", "description": "My Discord Bot", "main": "index.js", "scripts": { @@ -10,16 +10,16 @@ "dependencies": { "@discord-player/extractor": "^4.5.1", "@discordjs/opus": "^0.9.0", - "@discordjs/rest": "^2.3.0", + "@discordjs/rest": "^2.4.0", "@discordjs/voice": "^0.17.0", - "@napi-rs/canvas": "^0.1.53", + "@napi-rs/canvas": "^0.1.55", "chalk": "^4.1.2", "cron": "^2.4.4", - "discord-api-types": "^0.37.93", + "discord-api-types": "^0.37.100", "discord-giveaways": "^6.0.1", "discord-player": "^6.7.1", - "discord-player-youtubei": "^1.2.6", - "discord.js": "^14.15.3", + "discord-player-youtubei": "1.3.1", + "discord.js": "^14.16.2", "gamedig": "^4.1.0", "i18next": "^21.10.0", "i18next-fs-backend": "^1.2.0", @@ -30,7 +30,7 @@ "node-fetch": "^2.7.0" }, "devDependencies": { - "eslint": "^8.56.0" + "eslint": "^9.10.0" }, "eslintConfig": { "extends": "eslint:recommended", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 788f55df..f85f56ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,14 +15,14 @@ importers: specifier: ^0.9.0 version: 0.9.0 '@discordjs/rest': - specifier: ^2.3.0 - version: 2.3.0 + specifier: ^2.4.0 + version: 2.4.0 '@discordjs/voice': specifier: ^0.17.0 version: 0.17.0(@discordjs/opus@0.9.0) '@napi-rs/canvas': - specifier: ^0.1.53 - version: 0.1.53 + specifier: ^0.1.55 + version: 0.1.55 chalk: specifier: ^4.1.2 version: 4.1.2 @@ -30,20 +30,20 @@ importers: specifier: ^2.4.4 version: 2.4.4 discord-api-types: - specifier: ^0.37.93 - version: 0.37.93 + specifier: ^0.37.100 + version: 0.37.100 discord-giveaways: specifier: ^6.0.1 - version: 6.0.1(discord.js@14.15.3) + version: 6.0.1(discord.js@14.16.2) discord-player: specifier: ^6.7.1 version: 6.7.1(@discord-player/extractor@4.5.1)(@discordjs/opus@0.9.0) discord-player-youtubei: - specifier: ^1.2.6 - version: 1.2.6 + specifier: 1.3.1 + version: 1.3.1 discord.js: - specifier: ^14.15.3 - version: 14.15.3 + specifier: ^14.16.2 + version: 14.16.2 gamedig: specifier: ^4.1.0 version: 4.3.2 @@ -61,7 +61,7 @@ importers: version: 2.30.1 mongoose: specifier: ^7.6.3 - version: 7.8.0 + version: 7.8.1 ms: specifier: ^2.1.3 version: 2.1.3 @@ -70,13 +70,13 @@ importers: version: 2.7.0 devDependencies: eslint: - specifier: ^8.56.0 - version: 8.57.0 + specifier: ^9.10.0 + version: 9.10.0 packages: - '@babel/runtime@7.25.0': - resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} + '@babel/runtime@7.25.6': + resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} '@discord-player/equalizer@0.2.3': @@ -94,21 +94,21 @@ packages: '@discord-player/utils@0.2.2': resolution: {integrity: sha512-UklWUT7BcZEkBgywM9Cmpo2nwj3SQ9Wmhu6ml1uy/YRQnY8IRdZEHD84T2kfjOg4LVZek0ej1VerIqq7a9PAHQ==} - '@discordjs/builders@1.8.2': - resolution: {integrity: sha512-6wvG3QaCjtMu0xnle4SoOIeFB4y6fKMN6WZfy3BMKJdQQtPLik8KGzDwBVL/+wTtcE/ZlFjgEk74GublyEVZ7g==} - engines: {node: '>=16.11.0'} + '@discordjs/builders@1.9.0': + resolution: {integrity: sha512-0zx8DePNVvQibh5ly5kCEei5wtPBIUbSoE9n+91Rlladz4tgtFbJ36PZMxxZrTEOQ7AHMZ/b0crT/0fCy6FTKg==} + engines: {node: '>=18'} '@discordjs/collection@1.5.3': resolution: {integrity: sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==} engines: {node: '>=16.11.0'} - '@discordjs/collection@2.1.0': - resolution: {integrity: sha512-mLcTACtXUuVgutoznkh6hS3UFqYirDYAg5Dc1m8xn6OvPjetnUlf/xjtqnnc47OwWdaoCQnHmHh9KofhD6uRqw==} + '@discordjs/collection@2.1.1': + resolution: {integrity: sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg==} engines: {node: '>=18'} - '@discordjs/formatters@0.4.0': - resolution: {integrity: sha512-fJ06TLC1NiruF35470q3Nr1bi95BdvKFAF+T5bNfZJ4bNdqZ3VZ+Ttg6SThqTxm6qumSG3choxLBHMC69WXNXQ==} - engines: {node: '>=16.11.0'} + '@discordjs/formatters@0.5.0': + resolution: {integrity: sha512-98b3i+Y19RFq1Xke4NkVY46x8KjJQjldHUuEbCqMvp1F5Iq9HgnGpu91jOi/Ufazhty32eRsKnnzS8n4c+L93g==} + engines: {node: '>=18'} '@discordjs/node-pre-gyp@0.4.5': resolution: {integrity: sha512-YJOVVZ545x24mHzANfYoy0BJX5PDyeZlpiJjDkUBM/V/Ao7TFX9lcUvCN4nr0tbr5ubeaXxtEBILUrHtTphVeQ==} @@ -118,13 +118,13 @@ packages: resolution: {integrity: sha512-NEE76A96FtQ5YuoAVlOlB3ryMPrkXbUCTQICHGKb8ShtjXyubGicjRMouHtP1RpuDdm16cDa+oI3aAMo1zQRUQ==} engines: {node: '>=12.0.0'} - '@discordjs/rest@2.3.0': - resolution: {integrity: sha512-C1kAJK8aSYRv3ZwMG8cvrrW4GN0g5eMdP8AuN8ODH5DyOCbHgJspze1my3xHOAgwLJdKUbWNVyAeJ9cEdduqIg==} - engines: {node: '>=16.11.0'} + '@discordjs/rest@2.4.0': + resolution: {integrity: sha512-Xb2irDqNcq+O8F0/k/NaDp7+t091p+acb51iA4bCKfIn+WFWd6HrNvcsSbMMxIR9NjcMZS6NReTKygqiQN+ntw==} + engines: {node: '>=18'} - '@discordjs/util@1.1.0': - resolution: {integrity: sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg==} - engines: {node: '>=16.11.0'} + '@discordjs/util@1.1.1': + resolution: {integrity: sha512-eddz6UnOBEB1oITPinyrB2Pttej49M9FZQY8NxgEvc3tq6ZICZ19m70RsmzRdDHk80O9NoYN/25AqJl8vPVf/g==} + engines: {node: '>=18'} '@discordjs/voice@0.17.0': resolution: {integrity: sha512-hArn9FF5ZYi1IkxdJEVnJi+OxlwLV0NJYWpKXsmNOojtGtAZHxmsELA+MZlu2KW1F/K1/nt7lFOfcMXNYweq9w==} @@ -144,90 +144,97 @@ packages: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.10.0': + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.1.0': + resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.1': resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead - '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@humanwhocodes/retry@0.3.0': + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} - '@mongodb-js/saslprep@1.1.8': - resolution: {integrity: sha512-qKwC/M/nNNaKUBMQ0nuzm47b7ZYWQHN3pcXq4IIcoSBc2hOIrflAxJduIvvqmhoz3gR2TacTAs8vlsCVPkiEdQ==} + '@mongodb-js/saslprep@1.1.9': + resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==} - '@napi-rs/canvas-android-arm64@0.1.53': - resolution: {integrity: sha512-2YhxfVsZguATlRWE0fZdTx35SE9+r5D7HV5GPNDataZOKmHf+zZ5//dspuuBSbOriQdoicaFrgXKCUqI0pK3WQ==} + '@napi-rs/canvas-android-arm64@0.1.55': + resolution: {integrity: sha512-zsc170uSA+mGTXiSpnXaTsBKzi/f2NATKLrCt5qp0ihR0YLSIGsNhNpYLQYSF6qvi2Uzjd9CyKEs+TKdj8oj3w==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@napi-rs/canvas-darwin-arm64@0.1.53': - resolution: {integrity: sha512-ls+CWLMusf4RAGo5BvIIzA6dNcc0elwVp6LKjHfQECHA8KKmvdB58YuE5BQcTlb2rzk0SEKtBC/Th3NI2oNdfg==} + '@napi-rs/canvas-darwin-arm64@0.1.55': + resolution: {integrity: sha512-KMlL+O7viWsZ+c4qDoXUXyVEVXDcGrWuHuvt1VvUBcRjfsz/2of7i2rfClTzltX0nMKxU8JVKVrFSZOpPOZn4g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@napi-rs/canvas-darwin-x64@0.1.53': - resolution: {integrity: sha512-ZAgcoCH5+5OKS2P8Lxx+jbkAPKkyLD2x6OvSrHg1U6ppdxmLA+CkJlRl8w45HCXwuyIiP7OeymECRtiNYTwznQ==} + '@napi-rs/canvas-darwin-x64@0.1.55': + resolution: {integrity: sha512-ZiiK+tOGHD7GxAhq7F+gVYpWDQJ9Lr/eOI9gMXlnavmR14nVf3a8eYk3CX32yelurf6hMaMTjWISO9uAZDyRbA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.53': - resolution: {integrity: sha512-p9km/3C/loDxu3AvA8/vtpIS1BGMd/Ehkl2Iu/v/Gw8N/KUIt3HUvTS7AKApyVE28bxTfq96wJQjtcT8jzDncw==} + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.55': + resolution: {integrity: sha512-HxthhRQoayfjG3Z7bAJ7r9Zq/L0gAxj26xjZTcjBYokr14/gtjL+Q+tsvW5PvH3SuL2sqnNXHy/TqvXcI+iyIw==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@napi-rs/canvas-linux-arm64-gnu@0.1.53': - resolution: {integrity: sha512-QKK+sykEiYwjwd+ogyLcpcnH38DNZ8KViBlnfEpoGA2Wa+21/cWQKfMxnbgb/rbvm5tazJinZcihFvH577WQ5g==} + '@napi-rs/canvas-linux-arm64-gnu@0.1.55': + resolution: {integrity: sha512-b6PSk6923c6kyHMiluPUJVVHc7CJI7SfYb5MZetyeINtYGNIVj8a80pWgiMs3LJDrUePh+WC00zgDCRkFttKlg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/canvas-linux-arm64-musl@0.1.53': - resolution: {integrity: sha512-2N41U0X8RnrTKzpTtPv1ozlYkJtPsUdbfF3uP/KEd/BsULGd8Y8ghkGMS6CM+821au4ex0dPrWOOdT9wC1rSqQ==} + '@napi-rs/canvas-linux-arm64-musl@0.1.55': + resolution: {integrity: sha512-DHPR7F7Th9x0qkfSBojAgh7mPqInrj+IEJHvrKEsq8p0YTLBY8OUw8Va4OI7Z2zpiDsb2HVXq78Ws7KaekouFw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@napi-rs/canvas-linux-x64-gnu@0.1.53': - resolution: {integrity: sha512-7XjuTvDKCODtf/vMwF43VGDrjfgwYKgS91ggdcX3UrJaBYWyWu/+eqNvNj+zdXSe/0x+YOjf5jG4m8xIXdBMQA==} + '@napi-rs/canvas-linux-x64-gnu@0.1.55': + resolution: {integrity: sha512-znEwyWCHtoAIQerxEQ30DRnVJQ1X8a0zQqOuylEPI1AKCH57ZiWQzFam4IUiFNoYhQyzron5v5cEteVbBkYGpg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/canvas-linux-x64-musl@0.1.53': - resolution: {integrity: sha512-970WEvB8vmj+uxvgdBZ+AGFV7uq9GJhXrqG5PGQ5lWciHX0P0d/OhS2F7TITgFR0LsKDQZ7XQgzMxsYOfwZ0FQ==} + '@napi-rs/canvas-linux-x64-musl@0.1.55': + resolution: {integrity: sha512-mNWBiILhykehKlOzmbdTp8Fr25pnkHiC/01Ck9YjNWfV6Z3kBgJPWvG5J+WvkNnsPPu/K0JxTCryngj4h9Denw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@napi-rs/canvas-win32-x64-msvc@0.1.53': - resolution: {integrity: sha512-rLFQCSJaWg/sv54Aap9nAhaodi4Vyb4un50EgW+PNkk8icMziU6KLRKirGBdQr9ZdxnshAPeQXD1g2ArStujKA==} + '@napi-rs/canvas-win32-x64-msvc@0.1.55': + resolution: {integrity: sha512-e6K83IchwQUbG9JSS4QK88qWJpwDbDC+tm1ugjVwSRWBdnicB5TwbUruOGjc1umgfGUq3qnQBs3yO1ZLB6N2uA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@napi-rs/canvas@0.1.53': - resolution: {integrity: sha512-XsEZi97+kKykmAiPpY+IpZoHxJY1srqFZp8jDt1/RySzC0kB0iZYt/VMIFqQKpLCARZjD7SOAz2AULtwYlesCA==} + '@napi-rs/canvas@0.1.55': + resolution: {integrity: sha512-Jw5ewjXboNSrEVXbUrj/l6800Stn1hHeMV4R/HbDkRGSMW3DLMOZAFGbd+d0174OpsjYFqc5SB3Q3wcatWsuMQ==} engines: {node: '>= 10'} '@nodelib/fs.scandir@2.1.5': @@ -246,8 +253,8 @@ packages: resolution: {integrity: sha512-x7zadcfJGxFka1Q3f8gCts1F0xMwCKbZweM85xECGI0hBTeIZJGGCrHgLggihBoprlQ/hBmDR5LKfIPqnmHM3w==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@sapphire/shapeshift@3.9.7': - resolution: {integrity: sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==} + '@sapphire/shapeshift@4.0.0': + resolution: {integrity: sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg==} engines: {node: '>=v16'} '@sapphire/snowflake@3.5.3': @@ -277,8 +284,8 @@ packages: '@types/luxon@3.3.8': resolution: {integrity: sha512-jYvz8UMLDgy3a5SkGJne8H7VA7zPV2Lwohjx0V8V31+SqAjNmurWMkk9cQhfvlcnXWudBpK9xPM1n4rljOcHYQ==} - '@types/node@22.2.0': - resolution: {integrity: sha512-bm6EG6/pCpkxDf/0gDNDdtDILMOHgaQBVOJGdwsqClnxA3xL6jtMv76rLBc006RVMWbmaf0xbmom4Z/5o2nRkQ==} + '@types/node@22.5.5': + resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} '@types/responselike@1.0.3': resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} @@ -292,11 +299,8 @@ packages: '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@vladfrangu/async_event_emitter@2.4.5': - resolution: {integrity: sha512-J7T3gUr3Wz0l7Ni1f9upgBZ7+J22/Q1B7dl0X6fG+fTsD+H+31DIosMHj4Um1dWQwqbcQ3oQf+YS2foYkDc9cQ==} + '@vladfrangu/async_event_emitter@2.4.6': + resolution: {integrity: sha512-RaI5qZo6D2CVS6sTHFKg1v5Ohq/+Bo2LZ5gzUEwZ/WkHhwtGTCB/sVLw8ijOkAUxasZ+WshN/Rzj4ywsABJ5ZA==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} '@web-scrobbler/metadata-filter@3.2.0': @@ -442,8 +446,8 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -473,11 +477,14 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + discord-api-types@0.37.100: + resolution: {integrity: sha512-a8zvUI0GYYwDtScfRd/TtaNBDTXwP5DiDVX7K5OmE+DRT57gBqKnwtOC5Ol8z0mRW8KQfETIgiB8U0YZ9NXiCA==} + discord-api-types@0.37.83: resolution: {integrity: sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==} - discord-api-types@0.37.93: - resolution: {integrity: sha512-M5jn0x3bcXk8EI2c6F6V6LeOWq10B/cJf+YJSyqNmg7z4bdXK+Z7g9zGJwHS0h9Bfgs0nun2LQISFOzwck7G9A==} + discord-api-types@0.37.97: + resolution: {integrity: sha512-No1BXPcVkyVD4ZVmbNgDKaBoqgeQ+FJpzZ8wqHkfmBnTZig1FcH3iPPersiK1TUIAzgClh2IvOuVUYfcWLQAOA==} discord-giveaways@6.0.1: resolution: {integrity: sha512-hs6Vtb62VdlV7NfB93Phaxc8FW0cH4N1Nkb0bXVZ2npgn73yGOFVmdp8bBP5gsC2ady9OAXXI8Gb66t1IddkFw==} @@ -485,8 +492,8 @@ packages: peerDependencies: discord.js: '>=14.0.0' - discord-player-youtubei@1.2.6: - resolution: {integrity: sha512-b2L/I9TP7HCv3EO8mbn070SWJV0eBCjG2YIbFmQhQxe8vRMC5Zs4BisI7JmkNvu4xlbVGeL1NMK9VrC5FR+uqw==} + discord-player-youtubei@1.3.1: + resolution: {integrity: sha512-0JtWAux1SKBMG543PktNKrsydBLBarOvPn9dsu1xNfXQYbUSglOZgGRjcKxK6MgGj5MluSEer5QXE/UJYseIJg==} hasBin: true discord-player@6.7.1: @@ -498,13 +505,9 @@ packages: resolution: {integrity: sha512-9DWY5/BLPXeldVwPr8/ggGjggTYOTw77aGQc3+4n5K54bRbbiJ9DUJc+mJzDiSLoHN3f286eRGACJYtrUu27xA==} engines: {node: '>=16.9.0'} - discord.js@14.15.3: - resolution: {integrity: sha512-/UJDQO10VuU6wQPglA4kz2bw2ngeeSbogiIPx/TsnctfzV/tNf+q+i1HlgtX1OGpeOBpJH9erZQNO5oRM2uAtQ==} - engines: {node: '>=16.11.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + discord.js@14.16.2: + resolution: {integrity: sha512-VGNi9WE2dZIxYM8/r/iatQQ+3LT8STW4hhczJOwm+DBeHq66vsKDCk8trChNCB01sMO9crslYuEMeZl2d7r3xw==} + engines: {node: '>=18'} dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} @@ -546,22 +549,31 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true + eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint@9.10.0: + resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.6.0: resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} @@ -599,9 +611,9 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-type@16.5.4: resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} @@ -611,9 +623,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -665,17 +677,14 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} got@12.1.0: resolution: {integrity: sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==} engines: {node: '>=14.16'} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} @@ -801,11 +810,11 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - libsodium-wrappers@0.7.14: - resolution: {integrity: sha512-300TtsePizhJZ7HjLmWr6hLHAgJUxIGhapSw+EwfCtDuWaEmEdGXSQv6j6qFw0bs9l4vS2NH9BtOHfXAq6h5kQ==} + libsodium-wrappers@0.7.15: + resolution: {integrity: sha512-E4anqJQwcfiC6+Yrl01C1m8p99wEhLmJSs0VQqST66SbQXXBoaJY0pF4BNjRYa/sOQAxx6lXAaAFIlx+15tXJQ==} - libsodium@0.7.14: - resolution: {integrity: sha512-/pOd7eO6oZrfORquRTC4284OUJFcMi8F3Vnc9xtRBT0teLfOUxWIItaBFF3odYjZ7nlJNwnLdUVEUFHxVyX/Sw==} + libsodium@0.7.15: + resolution: {integrity: sha512-sZwRknt/tUpE2AwzHq3jEyUU5uvIZHtSssktXq7owd++3CSgn8RGrv6UZJJBpP7+iBghBqe7Z06/2M31rI2NKw==} locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -906,8 +915,8 @@ packages: snappy: optional: true - mongoose@7.8.0: - resolution: {integrity: sha512-wLAP7xYz+tEnzy4VsZyMJ1mfaSIwfaeoSQ55ZVovFkdh1FVta6VNSVFCpJMzEinMJsRzTbZTcD4pND9J5aDiyA==} + mongoose@7.8.1: + resolution: {integrity: sha512-c3MY8P1mGUGO+0H8rqxMNmAmhP0xb2EPNItfr7tHAHkh52uB0owH4Gu6q1GTUYj8yoHEDG5MN2V1aBBR6aJPuA==} engines: {node: '>=14.20.1'} mpath@0.9.0: @@ -918,9 +927,6 @@ packages: resolution: {integrity: sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==} engines: {node: '>=14.0.0'} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -1039,8 +1045,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} punycode@2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} @@ -1228,33 +1234,22 @@ packages: ts-mixer@6.0.4: resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} - undici@6.13.0: - resolution: {integrity: sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw==} - engines: {node: '>=18.0'} - - undici@6.19.7: - resolution: {integrity: sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==} + undici@6.19.8: + resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} engines: {node: '>=18.17'} unfetch@5.0.0: @@ -1332,12 +1327,12 @@ packages: youtube-sr@4.3.11: resolution: {integrity: sha512-3oHiS2x7PpMiDRW7Cq8nz1bkAIBOJHoOwkPl/oncM/+A9/3xxMDgMLGW2dsBEP1DHFyRXYTVABgfbdwHF8sXXQ==} - youtubei.js@10.3.0: - resolution: {integrity: sha512-tLmeJCECK2xF2hZZtF2nEqirdKVNLFSDpa0LhTaXY3tngtL7doQXyy7M2CLueramDTlmCnFaW+rctHirTPFaRQ==} + youtubei.js@10.4.0: + resolution: {integrity: sha512-FZahkkg5ROyH/FgJ4czy/xDNkqHbJTCUQzumQlnR+2Q7m6HaWghAFWWJUTcexemGuu7t/5EuyQz98eBgKQRMog==} snapshots: - '@babel/runtime@7.25.0': + '@babel/runtime@7.25.6': dependencies: regenerator-runtime: 0.14.1 @@ -1364,23 +1359,23 @@ snapshots: dependencies: '@discordjs/collection': 1.5.3 - '@discordjs/builders@1.8.2': + '@discordjs/builders@1.9.0': dependencies: - '@discordjs/formatters': 0.4.0 - '@discordjs/util': 1.1.0 - '@sapphire/shapeshift': 3.9.7 - discord-api-types: 0.37.83 + '@discordjs/formatters': 0.5.0 + '@discordjs/util': 1.1.1 + '@sapphire/shapeshift': 4.0.0 + discord-api-types: 0.37.97 fast-deep-equal: 3.1.3 ts-mixer: 6.0.4 - tslib: 2.6.2 + tslib: 2.7.0 '@discordjs/collection@1.5.3': {} - '@discordjs/collection@2.1.0': {} + '@discordjs/collection@2.1.1': {} - '@discordjs/formatters@0.4.0': + '@discordjs/formatters@0.5.0': dependencies: - discord-api-types: 0.37.83 + discord-api-types: 0.37.97 '@discordjs/node-pre-gyp@0.4.5': dependencies: @@ -1405,26 +1400,26 @@ snapshots: - encoding - supports-color - '@discordjs/rest@2.3.0': + '@discordjs/rest@2.4.0': dependencies: - '@discordjs/collection': 2.1.0 - '@discordjs/util': 1.1.0 + '@discordjs/collection': 2.1.1 + '@discordjs/util': 1.1.1 '@sapphire/async-queue': 1.5.3 '@sapphire/snowflake': 3.5.3 - '@vladfrangu/async_event_emitter': 2.4.5 - discord-api-types: 0.37.83 + '@vladfrangu/async_event_emitter': 2.4.6 + discord-api-types: 0.37.97 magic-bytes.js: 1.10.0 - tslib: 2.6.3 - undici: 6.13.0 + tslib: 2.7.0 + undici: 6.19.8 - '@discordjs/util@1.1.0': {} + '@discordjs/util@1.1.1': {} '@discordjs/voice@0.17.0(@discordjs/opus@0.9.0)': dependencies: '@types/ws': 8.5.12 discord-api-types: 0.37.83 prism-media: 1.3.5(@discordjs/opus@0.9.0) - tslib: 2.6.3 + tslib: 2.7.0 ws: 8.18.0 transitivePeerDependencies: - '@discordjs/opus' @@ -1436,32 +1431,40 @@ snapshots: '@discordjs/ws@1.1.1': dependencies: - '@discordjs/collection': 2.1.0 - '@discordjs/rest': 2.3.0 - '@discordjs/util': 1.1.0 + '@discordjs/collection': 2.1.1 + '@discordjs/rest': 2.4.0 + '@discordjs/util': 1.1.1 '@sapphire/async-queue': 1.5.3 '@types/ws': 8.5.12 - '@vladfrangu/async_event_emitter': 2.4.5 + '@vladfrangu/async_event_emitter': 2.4.6 discord-api-types: 0.37.83 - tslib: 2.6.2 + tslib: 2.7.0 ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.10.0)': dependencies: - eslint: 8.57.0 + eslint: 9.10.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.11.0': {} - '@eslint/eslintrc@2.1.4': + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/eslintrc@3.1.0': dependencies: ajv: 6.12.6 - debug: 4.3.6 - espree: 9.6.1 - globals: 13.24.0 + debug: 4.3.7 + espree: 10.1.0 + globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -1470,65 +1473,63 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@9.10.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.1.0': + dependencies: + levn: 0.4.1 '@fastify/busboy@2.1.1': {} - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@humanwhocodes/retry@0.3.0': {} - '@mongodb-js/saslprep@1.1.8': + '@mongodb-js/saslprep@1.1.9': dependencies: sparse-bitfield: 3.0.3 optional: true - '@napi-rs/canvas-android-arm64@0.1.53': + '@napi-rs/canvas-android-arm64@0.1.55': optional: true - '@napi-rs/canvas-darwin-arm64@0.1.53': + '@napi-rs/canvas-darwin-arm64@0.1.55': optional: true - '@napi-rs/canvas-darwin-x64@0.1.53': + '@napi-rs/canvas-darwin-x64@0.1.55': optional: true - '@napi-rs/canvas-linux-arm-gnueabihf@0.1.53': + '@napi-rs/canvas-linux-arm-gnueabihf@0.1.55': optional: true - '@napi-rs/canvas-linux-arm64-gnu@0.1.53': + '@napi-rs/canvas-linux-arm64-gnu@0.1.55': optional: true - '@napi-rs/canvas-linux-arm64-musl@0.1.53': + '@napi-rs/canvas-linux-arm64-musl@0.1.55': optional: true - '@napi-rs/canvas-linux-x64-gnu@0.1.53': + '@napi-rs/canvas-linux-x64-gnu@0.1.55': optional: true - '@napi-rs/canvas-linux-x64-musl@0.1.53': + '@napi-rs/canvas-linux-x64-musl@0.1.55': optional: true - '@napi-rs/canvas-win32-x64-msvc@0.1.53': + '@napi-rs/canvas-win32-x64-msvc@0.1.55': optional: true - '@napi-rs/canvas@0.1.53': + '@napi-rs/canvas@0.1.55': optionalDependencies: - '@napi-rs/canvas-android-arm64': 0.1.53 - '@napi-rs/canvas-darwin-arm64': 0.1.53 - '@napi-rs/canvas-darwin-x64': 0.1.53 - '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.53 - '@napi-rs/canvas-linux-arm64-gnu': 0.1.53 - '@napi-rs/canvas-linux-arm64-musl': 0.1.53 - '@napi-rs/canvas-linux-x64-gnu': 0.1.53 - '@napi-rs/canvas-linux-x64-musl': 0.1.53 - '@napi-rs/canvas-win32-x64-msvc': 0.1.53 + '@napi-rs/canvas-android-arm64': 0.1.55 + '@napi-rs/canvas-darwin-arm64': 0.1.55 + '@napi-rs/canvas-darwin-x64': 0.1.55 + '@napi-rs/canvas-linux-arm-gnueabihf': 0.1.55 + '@napi-rs/canvas-linux-arm64-gnu': 0.1.55 + '@napi-rs/canvas-linux-arm64-musl': 0.1.55 + '@napi-rs/canvas-linux-x64-gnu': 0.1.55 + '@napi-rs/canvas-linux-x64-musl': 0.1.55 + '@napi-rs/canvas-win32-x64-msvc': 0.1.55 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -1544,7 +1545,7 @@ snapshots: '@sapphire/async-queue@1.5.3': {} - '@sapphire/shapeshift@3.9.7': + '@sapphire/shapeshift@4.0.0': dependencies: fast-deep-equal: 3.1.3 lodash: 4.17.21 @@ -1563,39 +1564,37 @@ snapshots: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 22.2.0 + '@types/node': 22.5.5 '@types/responselike': 1.0.3 '@types/http-cache-semantics@4.0.4': {} '@types/keyv@3.1.4': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.5.5 '@types/luxon@3.3.8': {} - '@types/node@22.2.0': + '@types/node@22.5.5': dependencies: - undici-types: 6.13.0 + undici-types: 6.19.8 '@types/responselike@1.0.3': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.5.5 '@types/webidl-conversions@7.0.3': {} '@types/whatwg-url@8.2.2': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.5.5 '@types/webidl-conversions': 7.0.3 '@types/ws@8.5.12': dependencies: - '@types/node': 22.2.0 + '@types/node': 22.5.5 - '@ungap/structured-clone@1.2.0': {} - - '@vladfrangu/async_event_emitter@2.4.5': {} + '@vladfrangu/async_event_emitter@2.4.6': {} '@web-scrobbler/metadata-filter@3.2.0': {} @@ -1609,7 +1608,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -1689,7 +1688,7 @@ snapshots: htmlparser2: 6.1.0 parse5: 6.0.1 parse5-htmlparser2-tree-adapter: 6.0.1 - tslib: 2.6.3 + tslib: 2.7.0 chownr@2.0.0: {} @@ -1746,9 +1745,9 @@ snapshots: data-uri-to-buffer@4.0.1: {} - debug@4.3.6: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 decompress-response@6.0.0: dependencies: @@ -1764,20 +1763,22 @@ snapshots: detect-libc@2.0.3: {} + discord-api-types@0.37.100: {} + discord-api-types@0.37.83: {} - discord-api-types@0.37.93: {} + discord-api-types@0.37.97: {} - discord-giveaways@6.0.1(discord.js@14.15.3): + discord-giveaways@6.0.1(discord.js@14.16.2): dependencies: deepmerge-ts: 4.3.0 - discord.js: 14.15.3 + discord.js: 14.16.2 serialize-javascript: 6.0.2 - discord-player-youtubei@1.2.6: + discord-player-youtubei@1.3.1: dependencies: tiny-typed-emitter: 2.1.0 - youtubei.js: 10.3.0 + youtubei.js: 10.4.0 discord-player@6.7.1(@discord-player/extractor@4.5.1)(@discordjs/opus@0.9.0): dependencies: @@ -1787,7 +1788,7 @@ snapshots: '@discord-player/utils': 0.2.2 '@web-scrobbler/metadata-filter': 3.2.0 discord-voip: 0.1.3(@discordjs/opus@0.9.0) - libsodium-wrappers: 0.7.14 + libsodium-wrappers: 0.7.15 transitivePeerDependencies: - '@discordjs/opus' - bufferutil @@ -1801,9 +1802,9 @@ snapshots: '@discord-player/ffmpeg': 0.1.0 '@discord-player/opus': 0.1.2 '@types/ws': 8.5.12 - discord-api-types: 0.37.93 + discord-api-types: 0.37.100 prism-media: 1.3.5(@discordjs/opus@0.9.0) - tslib: 2.6.3 + tslib: 2.7.0 ws: 8.18.0 transitivePeerDependencies: - '@discordjs/opus' @@ -1813,28 +1814,24 @@ snapshots: - opusscript - utf-8-validate - discord.js@14.15.3: + discord.js@14.16.2: dependencies: - '@discordjs/builders': 1.8.2 + '@discordjs/builders': 1.9.0 '@discordjs/collection': 1.5.3 - '@discordjs/formatters': 0.4.0 - '@discordjs/rest': 2.3.0 - '@discordjs/util': 1.1.0 + '@discordjs/formatters': 0.5.0 + '@discordjs/rest': 2.4.0 + '@discordjs/util': 1.1.1 '@discordjs/ws': 1.1.1 '@sapphire/snowflake': 3.5.3 - discord-api-types: 0.37.83 + discord-api-types: 0.37.97 fast-deep-equal: 3.1.3 lodash.snakecase: 4.1.1 - tslib: 2.6.2 - undici: 6.13.0 + tslib: 2.7.0 + undici: 6.19.8 transitivePeerDependencies: - bufferutil - utf-8-validate - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 @@ -1881,47 +1878,45 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-scope@7.2.2: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint-visitor-keys@4.0.0: {} + + eslint@9.10.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.18.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.10.0 + '@eslint/plugin-kit': 0.1.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.6 - doctrine: 3.0.0 + debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 @@ -1931,11 +1926,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@9.6.1: + espree@10.1.0: dependencies: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 esquery@1.6.0: dependencies: @@ -1966,9 +1961,9 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 - file-entry-cache@6.0.1: + file-entry-cache@8.0.0: dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 file-type@16.5.4: dependencies: @@ -1981,11 +1976,10 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 - flat-cache@3.2.0: + flat-cache@4.0.1: dependencies: flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 flatted@3.3.1: {} @@ -2036,11 +2030,11 @@ snapshots: genius-lyrics@4.4.7: dependencies: node-html-parser: 6.1.13 - undici: 6.19.7 + undici: 6.19.8 get-stream@5.2.0: dependencies: - pump: 3.0.0 + pump: 3.0.2 get-stream@6.0.1: {} @@ -2057,9 +2051,7 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 + globals@14.0.0: {} got@12.1.0: dependencies: @@ -2077,8 +2069,6 @@ snapshots: p-cancelable: 3.0.0 responselike: 2.0.1 - graphemer@1.4.0: {} - has-flag@4.0.0: {} has-unicode@2.0.1: {} @@ -2104,7 +2094,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -2112,7 +2102,7 @@ snapshots: i18next@21.10.0: dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.6 iconv-lite@0.6.3: dependencies: @@ -2191,11 +2181,11 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libsodium-wrappers@0.7.14: + libsodium-wrappers@0.7.15: dependencies: - libsodium: 0.7.14 + libsodium: 0.7.15 - libsodium@0.7.14: {} + libsodium@0.7.15: {} locate-path@6.0.0: dependencies: @@ -2266,9 +2256,9 @@ snapshots: mongodb-connection-string-url: 2.6.0 socks: 2.8.3 optionalDependencies: - '@mongodb-js/saslprep': 1.1.8 + '@mongodb-js/saslprep': 1.1.9 - mongoose@7.8.0: + mongoose@7.8.1: dependencies: bson: 5.5.1 kareem: 2.5.1 @@ -2289,12 +2279,10 @@ snapshots: mquery@5.0.0: dependencies: - debug: 4.3.6 + debug: 4.3.7 transitivePeerDependencies: - supports-color - ms@2.1.2: {} - ms@2.1.3: {} natural-compare@1.4.0: {} @@ -2386,7 +2374,7 @@ snapshots: process-nextick-args@2.0.1: {} - pump@3.0.0: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -2497,7 +2485,7 @@ snapshots: soundcloud.ts@0.5.5: dependencies: - undici: 6.19.7 + undici: 6.19.8 sparse-bitfield@3.0.3: dependencies: @@ -2575,25 +2563,19 @@ snapshots: ts-mixer@6.0.4: {} - tslib@2.6.2: {} - - tslib@2.6.3: {} + tslib@2.7.0: {} type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - - undici-types@6.13.0: {} + undici-types@6.19.8: {} undici@5.28.4: dependencies: '@fastify/busboy': 2.1.1 - undici@6.13.0: {} - - undici@6.19.7: {} + undici@6.19.8: {} unfetch@5.0.0: {} @@ -2648,8 +2630,8 @@ snapshots: youtube-sr@4.3.11: {} - youtubei.js@10.3.0: + youtubei.js@10.4.0: dependencies: jintr: 2.1.1 - tslib: 2.6.3 + tslib: 2.7.0 undici: 5.28.4