client.on('message', message => { var parts = message.content.split(" "); if (message.content.startsWith("sr")) { const servguild = message.guild; const member = message.mentions.members.first(); const role = servguild.roles.find('name', 'Business Owners✔'); member.addRole(role); }});我有下一个错误。TypeError:servguild.roles.find 不是函数
2 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
在 Discord.js 的 v12 中,已经实现了管理器,兼作缓存和 API 接口。经理(例如RoleManager )具有保存实际数据的属性cache
。这个集合是 v11 中的属性,而不是新的 Manager。
此外,您的使用已Collection#find()
被弃用并已正式删除。请改用谓词/“搜索”功能。请参阅超链接文档。
因此,您的代码将是...
servguild.roles.cache.find(r => r.name === 'Business Owners✔')
RoleManager#fetch()
或者,如果你想确保你的缓存是最新的,你会想要使用。它会这样做:
(await servguild.roles.fetch()).cache.find(r => r.name === 'Business Owners✔')
请参阅本指南以将所有代码从 v11 更新到 v12。
慕仙森
TA贡献1827条经验 获得超7个赞
如果您使用的是 discord.js v12,则必须传递一个函数。在 v12 中现在不推荐使用旧的 find (我相信)
servguild.roles.find(r => r.name === ‘Business Owners✔”)
否则,请确保您的公会已定义且可用。
添加回答
举报
0/150
提交
取消