Discord.js运行warns命令触发RangeError [EMBED_DESCRIPTION]报错求助
问题原因
Discord.js的MessageEmbed.setDescription()方法仅接收字符串类型的参数,你当前传入的是data.content.map()执行后返回的数组对象,类型不匹配触发了RangeError [EMBED_DESCRIPTION]报错。
解决方案
只需要把map返回的数组用join('\n')拼接为完整字符串即可,修改对应代码行如下:
.setDescription(data.content.map((w, i) =>`\`${i + 1}\` | Moderator : ${message.guild.members.cache.get(w.moderator).user.tag}\nReason : ${w.reason}`).join('\n'))
补充注意事项
- Discord embed的description有4096字符的长度限制,如果用户警告条数过多导致总字符超过上限,可以做分页展示处理。
- 你可以提前判断
data.content是否为空,避免空数组拼接后传空字符串的异常情况。
内容的提问来源于stack exchange,提问作者Vasilis
相关产品推荐
相关产品推荐

