猿问

TypeError:servguild.roles.find 不是函数

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 不是函数


Qyouu
浏览 88回答 2
2回答

摇曳的蔷薇

在 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。

慕仙森

如果您使用的是 discord.js v12,则必须传递一个函数。在 v12 中现在不推荐使用旧的 find (我相信)servguild.roles.find(r => r.name === ‘Business Owners✔”)否则,请确保您的公会已定义且可用。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答