Discord机器人获取服务器用户数触发MESSAGE_CONTENT_TYPE错误如何解决
报错原因
- 核心问题是
msg.reply()方法仅支持接收字符串类型的消息内容,你代码中msg.guild.memberCount返回的是数字类型,直接传入触发类型校验失败,对应报错信息里的Message content must be a non-empty string提示。 - 调用
name命令时msg.guild.name本身是字符串类型,符合参数要求,所以运行正常。
修复方案
只需要将memberCount的数字类型转换为字符串类型即可,有两种常用实现方式:
- 使用模板字符串拼接转换
if (cmd === `users`) { msg.reply(`${msg.guild.memberCount}`) }
- 调用
toString()方法显式转换
if (cmd === `users`) { msg.reply(msg.guild.memberCount.toString()) }
如果后续出现成员数量统计不准确的问题,需要检查你初始化机器人时是否开启了GUILD_MEMBERS权限意图,该权限是获取服务器完整成员数据的必要条件。
内容的提问来源于stack exchange,提问作者QuentinDeMontegris
相关产品推荐
相关产品推荐

