我想为服务器中的每个角色禁用mention_everyone 权限。 我尝试了两件事:
@client.command()
async def removeper(ctx):
roles=ctx.guild.roles
perms=discord.Permissions()
perms.update(mention_everyone=False)
for role in roles:
print(role)
try:
await role.edit(permissions=perms)
except:
print("can't")
continue
这里的问题是,它不仅禁用了mention_everyone 权限,还禁用了所有权限。
@client.command()
async def removeper(ctx):
roles=ctx.guild.roles
perms=discord.PermissionOverwrite(mention_everyone=False)
for role in roles:
print(role)
try:
await role.edit(overwrite=perms)
except:
print("can't")
continue
我并不真正了解 PermissionOverwrite() 的作用,显然我也不了解 Permissions()。因此,此代码甚至不会更改一项权限。
有没有办法只禁用一个权限?
答案 0 :(得分:0)
您可以获取当前角色的权限,然后更新这些权限并进行设置。
@client.command()
async def removeper(ctx):
roles=ctx.guild.roles
for role in roles:
perms=role.permissions
perms.update(mention_everyone=False)
print(role)
try:
await role.edit(permissions=perms)
except:
print("can't")
continue