【问题标题】:Discord.js Issue with rolesDiscord.js 角色问题
【发布时间】:2020-12-31 02:24:17
【问题描述】:

我正在尝试创建一个命令,为消息作者提供特定角色(按名称)。我现在的代码是

client.on('message', message =>{
      if(!message.content.startsWith(prefix) || message.author.bot) return;
      const args = message.content.slice(prefix.length).split(/ +/);
      const command = args.shift().toLowerCase();
      const user = message.mentions.users.first();
      if(command === "mod"){
        let role = message.guild.roles.find(r => r.name === "test");
        let member = message.mentions.members.first();
        member.roles.add(role)
      }
  });

但我收到的是TypeError

let role = message.guild.roles.find(r => r.name === "test");
                                   ^
TypeError: message.guild.roles.find is not a function

【问题讨论】:

标签: discord.js


【解决方案1】:

Discord JS v12 引入了 ma​​nagers 的概念,您将无法再直接在 Client#users 这样的数据结构上使用 Collection 等方法,如 Collection#get。在尝试使用收集方法之前,您现在必须直接请求管理器上的缓存。


let role = message.guild.roles.cache.find(r => r.name === "test");

【讨论】:

    【解决方案2】:

    错误是在discord.js 12版本中,你需要使用cache,所以你的代码会是

    let role = message.guild.roles.cache.find(r => r.name === `test`);
    let member = message.mentions.members.first();
    member.roles.add(role)
    

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2021-06-21
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 2020-10-12
      • 2020-07-21
      • 2021-08-28
      相关资源
      最近更新 更多