【问题标题】:role.setPosition() in Discord.js v12Discord.js v12 中的 role.setPosition()
【发布时间】:2021-01-24 23:43:56
【问题描述】:

在 Discord.js v11 中,您可以使用 guild.setRolePosition({ role: '123456789012345678', position: 1 }); 设置特定角色的位置。如何使用新的role.setPosition() 方法指定角色(例如“静音”)?它似乎只接受一个职位编号和几个选项,如options.relative。我想要的是在roleCreate() 事件中为角色管理员、朋友、静音分配一个角色位置。我知道 roleCreate 事件仅在创建角色时运行,但不知何故 'position' 参数不适用于guild.roles.create

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    GuildRoleManager.create() 实际上可以与position 参数配合使用,您只需将其作为属性添加到数据对象。

    guild.roles.create({
      data: {
        name: 'Role Name',
        // any other options...
        position: 1
      },
    });
    

    如果您仍想使用role.setPosition(),则必须事先获取角色对象,然后调用该对象的方法。

    // <guild> is a placeholder for the guild object
    
    // get the role by id
    const role = <guild>.roles.cache.get('Role ID');
    
    // get role by name (or other property)
    const role = <guild>.roles.cache.find((role) => role.name === 'Role Name');
    
    role.setPosition(1);
    

    【讨论】:

    • 感谢您的回答。但是,我尝试了这个,但它仍然给我一个错误。这与我在 GuildManager.create() 中使用位置参数时遇到的错误相同。所以我猜 roleCreate 方法也不起作用。如果你想知道我如何使用 GuildManager.create(),我在几天前问了一个关于它的问题。你可以在这里找到它:stackoverflow.com/questions/64201709/…
    • 这是不可能的,因为机器人无法将角色的位置设置为高于自身。
    • 是的,你是对的,但我希望管理员角色出现在机器人之后。所以这是...位置2?然后静音角色将是 3,等等。但这似乎不起作用并给出错误。如果我提高数字,它只会打乱顺序。我不知道该怎么办了。 :(
    猜你喜欢
    • 2020-12-03
    • 2020-10-19
    • 2021-08-04
    • 2020-12-22
    • 2021-03-26
    • 2021-11-24
    • 2021-01-01
    • 2021-02-18
    • 1970-01-01
    相关资源
    最近更新 更多