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

使用Discord.js v12如何在指定频道删除指定用户的固定数量消息

Discord.js v12 批量删除指定用户消息解决方案

以下代码完全适配Discord.js v12.22.4版本,无过时语法

实现逻辑

先拉取频道内的近期消息,筛选出对应用户ID的消息后再执行批量删除,示例代码如下:

// 示例:删除指定用户最近3条消息
message.channel.messages.fetch({ limit: 100 }).then(fetchedMsgs => {
  // 替换为你要删除的目标用户ID
  const TARGET_USER_ID = '替换为目标用户的数字ID';
  // 筛选目标用户消息,取前3条
  const toDeleteMsgs = fetchedMsgs.filter(msg => msg.author.id === TARGET_USER_ID).first(3);
  // 执行批量删除,第二个参数设为true自动过滤14天以上无法删除的消息,避免报错
  message.channel.bulkDelete(toDeleteMsgs, true)
    .then(deletedCount => console.log(`已删除${deletedCount.size}条目标用户消息`))
    .catch(err => console.error('删除失败:', err));
});

注意事项

  • 机器人账号必须拥有对应频道的管理消息权限,否则会触发权限报错
  • Discord API限制bulkDelete仅支持删除14天以内的消息,超出时间范围的消息无法通过该方法批量删除
  • 拉取消息的limit参数最大可设为100,如果目标用户发言频率较低,可以调高拉取的消息数量,避免筛选不出足够的目标消息
  • 修改.first(3)的数值即可调整删除的目标消息数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:48:04