【问题标题】:replacement for guild.roles.find() in newer versions of discord.js在较新版本的 discord.js 中替换 guild.roles.find()
【发布时间】:2020-04-24 09:17:45
【问题描述】:

我一直在 discord.js 中编写一个不和谐机器人,我需要一种通过名称识别角色的方法,所以我在文档中查找了如何做到这一点,但找不到我的确切身份寻找(我对 javascript 很陌生,所以我可能已经看到了我正在寻找的东西,但只是不理解它。这也是代码可能会让你畏缩的原因。)我在网上查找了如何做到这一点,每个人说要使用 guild.roles.find() 函数,所以我把它放到我的代码中,当它不起作用时。然后我在文档中查找 guild.roles.find() 函数,它根本不存在,让我相信它已被删除。如果有人知道这个问题的解决方案,将不胜感激。

let role = message.guild.roles.find(role => role.name === stringSplit[i]);

stringSplit[i]是用户输入的角色名称。)

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    如果你想获得某个公会的所有角色,你可以这样做

    const roles = message.guild.roles.cache.array();
    

    现在您可以使用 name 属性过滤这些角色以获得您想要的角色。

    message.guild.roles.cache 返回一个集合:您可以在这里查看所有可用的方法:https://discord.js.org/#/docs/collection/master/class/Collection?scrollTo=find

    【讨论】:

    • 谢谢,成功了!您介意向新的脚本编码员解释这是如何工作的吗?我正在制作 discord 机器人来改进我的 Javscript,以便我可以为其他应用程序制作更复杂的基于 API 的机器人。
    • @tuxfrog 好吧,没有太多解释要做,但如果是关于学习,我真的建议仔细阅读文档。如果你看一下文档,你可以看到所有的类。并且每个方法或属性都会为您提供另一种类型的类或集合,...此外,如果您想更好地了解 js,我会阅读 MDN 文档并尝试自己构建某种应用程序。就我个人而言,我最好从阅读文档中学习,如果有什么不清楚的地方,我会观看视频或阅读博客文章。成功!
    【解决方案2】:

    您可以使用cache 访问roles 集合。

    您的解决方案是:

    let role = message.guild.roles.cache.find(role => role.name === stringSplit[i]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      相关资源
      最近更新 更多