Estoy haciendo un bot con Discord.js y este es mi código:
const { CommandInteraction, Interaction } = require("discord.js"); module.exports = { name: "test", description: "Tests the bot.", ephemeral: "false", permission: "SEND_MESSAGES", /** * * @param {CommandInteraction} interaction */ execute(interaction) { interaction.reply({content: "Testing..."}) .then(interaction => { setTimeout(function(){ interaction.editReply("Test Successful ✔") }, 3000) }) } }Pero recibo un error en la terminal cuando intento iniciar el bot. Este es el error que me sale:
C:\Users\Manuel\Desktop\Manuel\Programs\Programming\Visual Studio Code\Helix32 (Discord)\Commands\Developer\test.js:16 interaction.editReply("Test Successful ✔") ^ TypeError: Cannot read properties of undefined (reading 'editReply') at Timeout._onTimeout (C:\Users\Manuel\Desktop\Manuel\Programs\Programming\Visual Studio Code\Helix32 (Discord)\Commands\Developer\test.js:16:29) at listOnTimeout (node:internal/timers:557:17) at processTimers (node:internal/timers:500:7) Node.js v17.2.0 [nodemon] app crashed - waiting for file changes before starting...Debe establecer fetchReply en true para devolver el mensaje, pero realmente no es necesario... solo use la interacción original
interaction.reply({content: "Testing..."}) .then(() => { //no "interaction" declaration setTimeout(function(){ interaction.editReply("Test Successful ✔") //use original interaction object }, 3000) })Creo que está viendo esto porque no está recuperando la interacción de la llamada anterior. Si usa esto (incluida la bandera), debería ayudar:
interaction.reply({ content: 'Pong!', fetchReply: true })¡salud!