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

Discord.js中用Role Name替代Role ID统计角色成员数报错求解

错误原因
  • GuildRoleManager.cache.get() 方法仅接受角色ID作为查询参数,你传入角色名称无法匹配到结果,返回undefined,访问undefined.members就触发了对应的类型错误。
  • 你已经通过find()方法按名称匹配到了目标角色对象,不需要二次查询角色缓存,属于冗余操作。
修复后代码
else if(parts[0] == 't!Verified') {
    // 按角色名称匹配目标角色
    const verifiedRole = message.guild.roles.cache.find(role => role.name === "Verified");
    // 先判空,避免服务器不存在对应角色时触发报错
    if (!verifiedRole) return message.channel.send("当前服务器未配置Verified角色");
    // 直接调用已获取的角色对象的成员计数属性
    message.channel.send(`当前Discord服务器共有 ${verifiedRole.members.size} 名已验证成员`);
}
多服务器统计适配说明

如果需要统计两个不同服务器的持有指定角色的总人数,分别获取两个服务器的Guild实例,各自执行上述角色查询逻辑后对计数做累加即可,注意确认两个服务器的目标角色名称完全一致,也可以单独配置不同服务器对应的目标角色名称,避免名称不匹配导致查询失败。

内容的提问来源于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.05 13:36:01