首页 > 解决方案 > 使用后删除命令用法

问题描述

我刚使用后试图删除.ping,而答案“pong”仍然存在。

下面的代码是我能想到的,但它似乎不起作用,谁能纠正我的错误?

client.on('message', msg => {
  if (msg.content === '.ping') {
 message.delete(1000);
    msg.reply('pong!');
  }
});

标签: discord.js

解决方案


就像评论中提到的@NullDev 一样,您应该使用msg而不是message因为那是您声明变量的内容。

其次,是你如何设置timeout功能。在您的代码中,您将其设置为:

message.delete(1000);

但是,如果您参考discord.js文档,它会向您展示删除超时消息的正确方法,如下所示:

message.delete({ timeout: 1000 });

这是因为超时是options参数的一个属性,因此您必须使用花括号。


但是为了更好的衡量,我建议您添加一个catch方法以避免您的代码崩溃,如下所示:

message.delete({ timeout: 1000 })
    .catch(console.error);

笔记:

discord.jsv13 及更高版本开始,该delete方法将不接受任何options,因此您必须改为:

setTimeout(() => message.delete(), 1000);

推荐阅读