代码之家  ›  专栏  ›  技术社区  ›  Persik

不一致js问题“.addRole”

  •  1
  • Persik  · 技术社区  · 6 年前

    因此,我在设置一个机器人时遇到了一些问题,该机器人将用户角色设置为包含表情符号的角色。示例:

        const guildMember = message.member;
        guildMember.addRole('<@&439191493169643521>');
    

    我也尝试过:

        // content.js
        const guildMember = message.member;
        guildMember.addRole(config.n);
    
        // config.json
        {
            "n": "🦊Fox"
        }
    

    而且我也试过不用配置。json,只需输入原始的排名名称,但它总是不起作用。

    这是控制台:

          (node:15600) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Supplied parameter was neither a Role nor a Snowflake.
          (node:15600) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
    
    1 回复  |  直到 6 年前
        1
  •  7
  •   André stev-e    6 年前

    UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Supplied parameter was neither a Role nor a Snowflake.

    🦊Fox 不是角色对象,也不是雪花(ID)。
    添加所需的角色、对象或ID。

    如果要使用ID,需要使角色可提及,然后避免提及 \@MyRole ,然后只需复制ID(只是数字)并使用它:

    guildMember.addRole('439191493169643521');  
    

    如果仍要使用角色的名称,可以执行以下操作:

    const role = message.guild.roles.find('name', 'MyRole');
    guildMember.addRole(role);