【问题标题】:How to has role in another guild and give rank in new guild Discord.js v.12如何在另一个公会中扮演角色并在新公会 Discord.js v.12 中获得排名
【发布时间】:2021-08-14 00:29:27
【问题描述】:
run: async (client, message, args) => {
    let rolemember = message.guild.roles.cache.get("846761815899111460");
    const supportGuild = message.client.guilds.cache.get('830488981518942319')
    console.log(`supportGuild : ${supportGuild}`)
    const usermember = supportGuild.members.cache.get(message.author.id)
    console.log(`usermember : ${usermember}`)

    if(usermember.roles.has("831476829126393887")) {
      message.member.roles.add(rolemember);
      console.error();
      return message.channel.send(`${message.author} You already have this role`);
    }
    else{
      return message.channel.send(`${message.author} You don't have this role!`);
    }
  }
}

在日志中写着usermember : undefined

错误是:

(node:3696) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'roles' of undefined

感谢 Zsolt Meszaros

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    尝试fetch用户而不是依赖缓存,并检查该用户是否存在于其他公会中:

    run: async (client, message, args) => {
      const rolemember = message.guild.roles.cache.get('846761815899111460');
      const supportGuild = message.client.guilds.cache.get('830488981518942319');
      const usermember = await supportGuild.members.fetch(message.author.id);
    
      if (!usermember)
        return message.channel.send(`${message.author} is not found on the ${supportGuild.name} server`);
    
      if (!usermember.roles.cache.has('831476829126393887'))
        return message.channel.send(`${message.author} You don't have this role!`);
    
      message.member.roles.add(rolemember);
      return message.channel.send(`${message.author} You already have this role`);
    },
    

    【讨论】:

      【解决方案2】:

      主要问题:.has()function 不是 #GuildMemberRoleManager 类中的函数。

      试试:

      usermember.roles.cache.get("831476829126393887")
      

      if 语句内部

      另外你没有指出哪一行给出了错误,所以我假设用户是问题所在。下次再清楚一点。

      【讨论】:

      • 它再次说用户成员:未定义(节点:16652)UnhandledPromiseRejectionWarning:TypeError:无法读取 Object.run 未定义的属性“角色”(C:\Users\###\###\# ##\##\commands\rank.js:15:19)
      • 你为什么不试试这个usermemberconst usermember = message.author
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 2022-01-13
      • 2023-03-25
      • 2023-01-20
      • 2020-11-13
      • 2020-01-25
      • 2021-10-06
      相关资源
      最近更新 更多