En mi bot de discordia, estoy haciendo un comando de "apodo". Mi código en el nickname.js:
const Discord = require("discord.js"); const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] }); module.exports = { name: 'nick', description: 'This command with change a users nickname.', execute(message, args){ const memberToEdit = message.mentions.members.first(); const newNickname = message.content.replace(`${prefix}changenick`, '').split(' ').pop().trim(); memberToEdit.setNickname(newNickname); } }El error que recibo al intentar ejecutar el comando:
TypeError: Cannot read properties of undefined (reading 'execute') at Client.<anonymous> (C:\Users\Admin\Desktop\DiscordBot\main.js:79:36) at Client.emit (node:events:520:28) at MessageCreateAction.handle (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\actions\MessageCreate.js:26:14) at Object.module.exports [as MESSAGE_CREATE] (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:351:31) at WebSocketShard.onPacket (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22) at WebSocketShard.onMessage (C:\Users\Admin\Desktop\DiscordBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10) at WebSocket.onMessage (C:\Users\Admin\Desktop\DiscordBot\node_modules\ws\lib\event-target.js:199:18) at WebSocket.emit (node:events:520:28) at Receiver.receiverOnMessage (C:\Users\Admin\Desktop\DiscordBot\node_modules\ws\lib\websocket.js:1137:20) Node.js v17.4.0Mi archivo main.js es el mismo que el resto de los comandos que funcionan bien...
if(command === 'nick'){ client.commands.get('nickname').execute(message, args) }Parece que no puedo entender por qué este comando específicamente no funciona.
Como dijo @PLASMA chicken , el comando que creaste se llama nick, no nick name . Así que cambia el nickname por el nick donde llamas a la función de execute . Por ejemplo, algo como esto:
if (command === 'nick') { client.commands.get('nick').execute(message, args); }¡Esperaba que esto ayudara!