Python 如何创建角色并将其置于首位?discord.py
我的机器人有一个名为mute的命令,基本上,它创建了一个角色并将其交给人,但问题是当它这样做时,角色更高的ppl仍然能够说话。如何将静音角色置于服务器中每个角色之上?我的意思是,在每台服务器上,而不仅仅是一台服务器上,如果要将角色更改为低于顶部的位置,我建议使用role.edit方法,传递位置值 但是,对于您的问题,即创建此角色后将角色置于顶部,您应该使用 至于实际创建角色: 如果你在重写,用这个Python 如何创建角色并将其置于首位?discord.py,python,discord,discord.py,bots,Python,Discord,Discord.py,Bots,我的机器人有一个名为mute的命令,基本上,它创建了一个角色并将其交给人,但问题是当它这样做时,角色更高的ppl仍然能够说话。如何将静音角色置于服务器中每个角色之上?我的意思是,在每台服务器上,而不仅仅是一台服务器上,如果要将角色更改为低于顶部的位置,我建议使用role.edit方法,传递位置值 但是,对于您的问题,即创建此角色后将角色置于顶部,您应该使用 至于实际创建角色: 如果你在重写,用这个 guild = ctx.guild await guild.create_role(name=&q
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版主”,它只会创建一个角色。 对于异步分支:
author = ctx.message.author
await client.create_role(author.server, name="role name")
user = ctx.message.author
role = discord.utils.get(user.server.roles, name="role to add name")
await client.add_roles(user, role)
以防您希望bot拥有一个命令,在此处添加角色: 对于重写分支
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)
对于异步分支:
author = ctx.message.author
await client.create_role(author.server, name="role name")
user = ctx.message.author
role = discord.utils.get(user.server.roles, name="role to add name")
await client.add_roles(user, role)
希望这有帮助 因此您不能将
静音
角色置于bot角色之上,但以下内容应该会有所帮助:
@commands.command()
异步def静音(self、ctx、成员:discord.member):
guild=ctx.guild
角色=等待公会。创建_角色(name='muted',chift=True)
所有角色=等待公会。获取角色()
num_roles=len(所有_角色)
打印(f'服务器有{num_roles}个角色')
等待角色。编辑(原因=None,位置=num_角色-2)
打印('已创建新角色!')
等待成员。添加_角色(角色)
wait ctx.send(f'{member}已被禁用。)
因此,我们所做的是检查服务器有多少个角色,创建一个新角色并将其置于bot角色的顶部/下方。这是否回答了您的问题?异步分支不再受支持,它甚至不工作,没有必要在@ŁukaszKwieciński oop中为它举例——很抱歉,我不知道,因为我主要使用重写