Discord.js 超时计时器不工作并立即删除

Discord.js timeout timer not working and delete right away

我试图发送一个嵌入,然后在 5 秒后 ins 将被删除。这个我试过了。

 client.on('messageCreate', async (message) => {
    if (message.content === '&unlock') {
        await message.channel
            .permissionOverwrites.edit(message.guild.id, { SEND_MESSAGES: true })
        message.channel.send({ embeds: [unlockembed] }).then(message => message.delete({setTimeout: 5000}))
    }
})

但是定时器不工作,消息被立即删除。

在 v13 之前,消息有一个 timeout 选项用于 .delete(),但是您现在需要使用 setTimeout() 函数。

setTimeout(message.delete, 5000);

此代码将为您工作,并采用延迟 message.delete()

的新方法
 client.on('messageCreate', async (message) => {
    if (message.content === '&unlock') {
        const channel = message.channel;
        channel.permissionOverwrites.edit(message.guild.id, { SEND_MESSAGES: true })
        message.channel.send({ 
            embeds: [unlockembed] 
        }).then(msg => {
            setTimeout(() => {
                msg.delete()
            }, 5000);
        })
    }
})