You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js中如何在用户发送m!verify指令后自动删除对应触发消息

你可以直接在现有run方法的最开头补充删除触发消息的逻辑,修改后的完整代码如下:

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

  async run(client, message, args) {
    // 先判断机器人有没有管理消息的权限,避免删除失败报错
    if (!message.guild.me.hasPermission("MANAGE_MESSAGES")) {
      return message.channel.send("我需要`MANAGE_MESSAGES`权限才能删除触发指令的消息");
    }
    // 延迟500毫秒后删除触发消息
    setTimeout(() => {
      message.delete().catch(err => console.log(err));
    }, 500);

    if (!message.guild.me.hasPermission("MANAGE_ROLES")) return message.channel.send("我需要`MANAGE_ROLES`权限才能执行该指令!")

    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));
  }
}

你原来伪代码里用的bulkDelete是批量删除多条消息的接口,单条消息直接调用message.delete()方法即可,不需要额外匹配内容,因为当前message对象本身就是用户发送的m!verify触发消息。

内容的提问来源于stack exchange,提问作者TahaHaza00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 03:51:03