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

Discord机器人开发:如何在消息转发至其他频道后删除原消息

实现方案

你只需要调用Discord.js中消息对象自带的异步delete()方法即可实现删除原触发消息的需求,同时你现有代码还有几处小问题需要修正,完整可运行代码如下:

bot.on("message", async (message) => {
  if (message.content.startsWith("t!logout")) {
    // 修正原有slice的错误用法,截取命令之后的内容
    const str = message.content.slice('t!logout'.length).trim();
    // 先发送到目标频道,注意你填写的频道ID多了1位,替换成自己的18位正确频道ID
    await bot.channels.cache
      .get("替换为你的目标频道ID")
      .send(
        `New Message from: ${message.author.username}#${message.author.discriminator} ` +
          str
      );
    // 删除原触发消息,添加异常捕获避免无权限时报错崩溃
    await message.delete().catch(err => console.log("删除消息失败,请检查机器人权限:", err));
  }
});

注意事项

  • 必须给机器人开启对应服务器的「删除消息」权限,否则删除操作会执行失败
  • 如果你使用的是Discord.js v14及以上版本,需要把事件名message替换为messageCreate,否则逻辑不会触发

内容的提问来源于stack exchange,提问作者I need Help

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:39:01