Estaba haciendo un comando de purga para eliminar todos los canales y terminé encontrándome con el error:
C:\Users\zaned\Desktop\bot\main.js:13 message.guild.channels.forEach(channel => channel.delete()) ^ ReferenceError: message is not defined at Client.<anonymous> (C:\Users\zaned\Desktop\bot\main.js:13:5) at Client.emit (node:events:390:28) at MessageCreateAction.handle (C:\Users\zaned\node_modules\discord.js\src\client\actions\MessageCreate.js:25:14) at Object.module.exports [as MESSAGE_CREATE] (C:\Users\zaned\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) at WebSocketManager.handlePacket (C:\Users\zaned\node_modules\discord.js\src\client\websocket\WebSocketManager.js:350:31) at WebSocketShard.onPacket (C:\Users\zaned\node_modules\discord.js\src\client\websocket\WebSocketShard.js:443:22) at WebSocketShard.onMessage (C:\Users\zaned\node_modules\discord.js\src\client\websocket\WebSocketShard.js:300:10) at WebSocket.onMessage (C:\Users\zaned\node_modules\ws\lib\event-target.js:199:18) at WebSocket.emit (node:events:390:28) at Receiver.receiverOnMessage (C:\Users\zaned\node_modules\ws\lib\websocket.js:1022:20)Aquí está mi código:
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); client.on("ready", () => { console.log(`Logged in as ${client.user.tag}!`) }) client.on("messageCreate", (msg) => { if (msg.content === "!test") { msg.reply("Hello world!"); } if (msg.content === "!purgec") { message.guild.channels.forEach(channel => channel.delete()) msg.reply("Deleting all channels..."); } })¿Puede alguien ayudarme con esto?
Esto puede limitar fácilmente la tasa de su bot y está peligrosamente cerca de ser un bot "nuclear" que, en algunos casos, puede considerarse un abuso de la API y hacer que su cuenta de Discord y el bot sean prohibidos.
En la devolución de llamada de su evento, la variable del mensaje se define como msg y no message . Edite su código para reflejar esto.
Junto con esto, la clase GuildChannelManager no tiene una función #forEach , para esto necesita almacenar en caché los canales.
client.on("messageCreate", (msg) => { if (msg.content === "!test") { msg.reply("Hello world!"); } if (msg.content === "!purgec") { msg.guild.channels.cache.forEach(channel => channel.delete()) msg.reply("Deleting all channels..."); } })Otro posible error futuro es: si ha eliminado todos los canales, ¿cómo responderá el bot al mensaje en la última línea?