Estoy viendo un tutorial de YouTube para intentar crear un bot para mi servidor de Discord. Creo que tengo un problema con 'KICK_MEMBERS' porque, aunque tengo ese permiso, me devuelve 'No tienes permiso para usar ese comando'. . Anteriormente, el error era que (hasPermission) no es una función. Menciono esto porque tal vez el video tutorial estaba desactualizado. No estoy seguro ya que está devolviendo el mensaje 'No tienes permiso para usar ese comando'. Tal vez me estoy perdiendo algo. ¿Qué hacer?
require('dotenv').config(); const {Client} = require('discord.js'); const client = new Client({ intents: ["GUILDS", "GUILD_MESSAGES"] }); const PREFIX = "y!"; client.on('ready', () => { console.log(`${client.user.tag} has logged in.`); }); client.on('messageCreate', (message) => { if (message.author.bot) return; console.log(`[${message.author.tag}]: ${message.content}`); if (message.content === 'hello') { message.reply('konnichiwa'); message.channel.send('mata konnichiwa'); message.channel.send('konnichiwa'); } if (message.content.startsWith(PREFIX)) { const [CMD_NAME, ...args] = message.content .trim() .substring(PREFIX.length) .split(/\s+/); console.log(CMD_NAME); console.log(args); if (CMD_NAME === 'kick') { if (message.member.permissions.has('KICK_MEMBERS')) return message.reply('You do not have permission to use that command'); if (args.length === 0) return message.reply('Please provide an ID.'); const member = message.guild.members.cache.get(args[0]); if (member) { member .kick() .then((member) => message.channel.send(`${member} was kicked`)) .catch((err) => message.channel.send('I do not have permissions...')); } else { message.channel.send('That member was not found...'); } } else if (CMD_NAME === 'ban') { if (message.member.permissions.has('BAN_MEMBERS')) return message.reply('You do not have permission to use that command'); if (args.length === 0) return message.reply('Please provide an ID.'); message.guild.members.ban(args[0]); } } }) client.login(process.env.DISCORDJS_BOT_TOKEN);Su bot dice You don't permission to use this command porque usa:
if (message.member.permissions.has('KICK_MEMBERS')) return message.reply('You do not have permission to use that command'); ¡Que solo regresará si TIENE este permiso, por lo que debe agregar ! antes de message.member.permissions.has , así:
if (!message.member.permissions.has('KICK_MEMBERS')) return message.reply('You do not have permission to use that command');