así que conozco el problema, simplemente no sé una solución para esto. El archivo console.log dice: TypeError: msg.delete no es una función
Sé que msg es un vacío, por eso no funciona.
¡Estoy agradecido por cada ayuda!
Mi código se ve así:
message.channel.bulkDelete(messages); message.channel.send("Messages getting purged...") .then((sentMessage) => setTimeout(function () { sentMessage.edit(` **${amount}** messages were purged!`) })) .then((msg) => setTimeout(function () { msg.delete() }, 6000)El problema es que msg no es el mensaje que envió, sino el ID de tiempo de espera que devuelve aquí: (sentMessage) => setTimeout() .
Intente devolver el sentMessage para que pueda tomarlo en su próximo then() :
message.channel .send('Messages getting purged...') .then(sentMessage => { setTimeout(function () { sentMessage.edit(` **${amount}** messages were purged!`); }); return sentMessage; }) .then(msg => setTimeout(function () { msg.delete(); }, 6000), );Sin embargo, probablemente sería mejor usar async/await aquí (solo asegúrese de estar dentro de una función asíncrona):
try { // send a message that messages are being deleted const sentMessage = await message.channel.send('Messages getting purged...'); // delete the messages and wait for them to be deleted const deletedMessages = await message.channel.bulkDelete(messages); // edit the sent message when finished await sentMessage.edit(`**${deletedMessages.size}** messages were purged!`); // delete the message after 6 seconds setTimeout(() => sentMessage.delete(), 6000); } catch (err) { message.channel.send(`Oops, there was an error`); console.log(err); }message.channel.bulkDelete(messages); message.channel.send("Messages getting purged...") .then((sentMessage) => setTimeout(function () { sentMessage.edit(`**${amount}** messages were purged!`).then((msg) => setTimeout(function () { msg.delete() }, 6000) }))