Discord.js v12 中的 role.setPosition()
Posted
技术标签:
【中文标题】Discord.js v12 中的 role.setPosition()【英文标题】:role.setPosition() in Discord.js v12 【发布时间】: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。
【问题讨论】:
【参考方案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(),我在几天前问了一个关于它的问题。你可以在这里找到它:***.com/questions/64201709/… 这是不可能的,因为机器人无法将角色的位置设置为高于自身。 是的,你是对的,但我希望管理员角色出现在机器人之后。所以这是...位置2?然后静音角色将是 3,等等。但这似乎不起作用并给出错误。如果我提高数字,它只会打乱顺序。我不知道该怎么办了。 :(以上是关于Discord.js v12 中的 role.setPosition()的主要内容,如果未能解决你的问题,请参考以下文章
如何检查 discord.js v12 中的第二个参数是不是为空
如何添加 ID 保存在 JSON 文件 discord.js v12 中的角色?