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

Discord.js如何实现批量封禁用户名含指定关键词的成员?

报错原因

fetchedMembers.filter()返回的是discord.js的Collection集合类型,本身没有ban方法,只有集合内存储的单个GuildMember成员实例才支持调用ban方法执行封禁操作,因此直接对集合调用ban会抛出类型错误。

正确批量封禁逻辑
  • 遍历筛选得到的目标成员集合,取出每一个成员实例
  • 对单个成员逐一调用ban方法,推荐用Promise.all管理批量异步请求,也可以根据服务器规模调整为串行执行避免触发Discord API速率限制
修正后的核心代码片段
let target_word = args[0];
// 注意提前定义reason变量存储封禁原因
message.guild.members.fetch().then(fetchedMembers => {
    const target_users = fetchedMembers.filter(member => member.user.username.includes(target_word))
    // 批量执行封禁
    Promise.all(target_users.map(member => member.ban({ reason: reason })))
        .then(() => console.log(`成功封禁 ${target_users.size} 个匹配关键词的用户`))
        .catch(err => console.error('批量封禁过程出现错误:', err))
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 21:06:00