I am getting an error (Cannot read property 'delete' of undefined
). It’s probably an easy fix but I can’t seem to figure out how to fix it.
The error:
message.delete({timeout: 1000}) TypeError: Cannot read property 'delete' of undefined
My code:
const client = new Client(); let count = 0; let timeout; client.on('message', ({ channel, content, member, message }) => { if (channel.id === '933939208102494270') { if (member.user.bot) return; if (Number(content) === count + 1) { count++; if (timeout) clearTimeout(timeout); timeout = setTimeout( () => channel.send(++count).catch(console.error), 100 ); } else if (member.id !== client.user.id) { message.delete({ timeout: 1000, }); channel.send(`${member} messed up!`).catch(console.error); message.delete({ timeout: 1000, }); // count = 0 if (timeout) clearTimeout(timeout); } } });
Advertisement
Answer
The problem is that you try to destructure the first parameter of the callback, which is a Message
object, and a Message
doesn’t have a message
property. If you need the message
, you can destructure it inside the function.
So instead of
client.on('message', ({ channel, content, member, message }) => { // ...
it should be
client.on('message', (message) => { let { channel, content, member } = message // ...
This way you can use any other property and method of the message
.