发送后如何删除消息 discord.js

时间:2021-07-03 19:05:41

标签: javascript discord.js

开始

大家好,这听起来/看起来好像之前已经在堆栈溢出时问过这个问题,但事实并非如此。我已经环顾了一段时间并阅读了文档,但我仍然不理解/不知道如何在我的代码中实现我正在谈论的事情。

问题

我有一个问题,在不和谐的情况下,我试图查看用户是否发送了一条包含 m!verify 的消息,并且在他们在 0.5 秒内发送该消息后(即,该消息被删除)。我环顾四周,看到过类似的问题,但没有一个能解决我的问题。

代码

module.exports = class VerifyCommand extends BaseCommand {
  constructor() {
    super('verify', 'tools', []);
  }

  async run(client, message, args) {
    if (!message.guild.me.hasPermission("MANAGE_ROLES")) return message.channel.send("I require the \`MANAGE_ROLES\` permission to execute this command!")

    const roleMember = message.guild.roles.cache.get("860636844618154034");
    const roleVerified = message.guild.roles.cache.get("860636743564918844");

    await message.member.roles.add(roleMember).catch(err => console.log(err));
    await message.member.roles.add(roleVerified).catch(err => console.log(err));
  }
}

我想要的是这样的(伪代码)

if(user sent this message m!verify) {
setTimeout({
   message.bulkDelete("m!verify")
}, 1000)
}

注意:链接任何与我正在寻找的答案完全相同的文档或教程(在评论中而不是作为答案)将非常有用。 (我保证我看过很多文档):)。我也在使用 slappey 来生成我的命令。

2 个答案:

答案 0 :(得分:1)

您要查找的方法是 <message>.delete,找到的文档为 here。这样做的好处是它的可选 options 参数有一个内置的 setTimeout,用于在删除消息之前等待多长时间。

在半秒后删除启动命令的消息对象的特定情况下,您可以简单地使用 message.delete({ timeout: 500 })

答案 1 :(得分:0)

如果您希望它在特定时间内被删除:message.delete({ timeout: 500})