Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建角色并将其置于首位?discord.py_Python_Discord_Discord.py_Bots - Fatal编程技术网

Python 如何创建角色并将其置于首位?discord.py

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

我的机器人有一个名为mute的命令,基本上,它创建了一个角色并将其交给人,但问题是当它这样做时,角色更高的ppl仍然能够说话。如何将静音角色置于服务器中每个角色之上?我的意思是,在每台服务器上,而不仅仅是一台服务器上,如果要将角色更改为低于顶部的位置,我建议使用role.edit方法,传递位置值

但是,对于您的问题,即创建此角色后将角色置于顶部,您应该使用

至于实际创建角色:

如果你在重写,用这个

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中为它举例——很抱歉,我不知道,因为我主要使用重写