如果您要将角色更改为低于顶部的位置,我建议使用 role.edit 方法,传递一个位置值。
但是,至于您的问题,即在创建此角色后将角色置于顶部,您应该使用discord.Client.move_role()
至于实际创建角色:
如果你正在重写,使用这个
guild = ctx.guild
await guild.create_role(name="role name")
并将“角色名称”更改为您要创建的角色的名称。如果你想根据用户所说的来扮演角色,你可以这样做:
@client.command()
async def rolecreate(ctx, arg):
guild = ctx.guild
await guild.create_role(name=arg)
在这里,您必须这样做(假设您的前缀是!):“!rolecreate Moderator”,它只会创建一个角色。
对于异步分支:
author = ctx.message.author
await client.create_role(author.server, name="role name")
以防万一您希望机器人有一个添加角色的命令,您可以:
对于重写分支
role = discord.utils.get(ctx.guild.roles, name="role to add name")
user = ctx.message.author
await user.add_roles(role)
如果要添加命令中提到的角色,例如:
@client.command()
async def addrole(ctx, arg):
role = discord.utils.get(ctx.guild.roles, name=arg)
user = ctx.message.author
await user.add_roles(role)
对于异步分支:
user = ctx.message.author
role = discord.utils.get(user.server.roles, name="role to add name")
await client.add_roles(user, role)
希望这有帮助!