为了账号安全,请及时绑定邮箱和手机立即绑定

TypeError:servguild.roles.find 不是函数

TypeError:servguild.roles.find 不是函数

Qyouu 2022-05-14 14:40:36
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。


查看完整回答
反对 回复 2022-05-14
?
慕仙森

TA贡献1827条经验 获得超7个赞

如果您使用的是 discord.js v12,则必须传递一个函数。在 v12 中现在不推荐使用旧的 find (我相信)

servguild.roles.find(r => r.name === ‘Business Owners✔”)

否则,请确保您的公会已定义且可用。


查看完整回答
反对 回复 2022-05-14
  • 2 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信