问题描述
import discord
client = discord.Client()
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith(":?glizzyonmymind"):
try:
members = message.guild.members
print("Got the members")
for member in members:
await member.edit(nick="New nick")
print(f"Set {member.id} nick")
except Exception as error:
return error
client.run(token)
我正在尝试进行测试,并在服务器中设置每个人的昵称(可以)。当我将漫游器角色放在所有其他角色之上时,它可以正常工作,但是当它甚至是第二高的角色(具有管理员权限)时,则无法正常工作。我要这样做,以便它设置可能的人员的昵称(或它下面的角色。)谢谢!
解决方法
您可以使用top_role
属性。
@client.event
async def on_message(message):
if message.content.startswith(":?glizzyonmymind"):
for members in message.guild.members:
print("Got the members")
if members.top_role < message.author.top_role:
await members.edit(nick="test")
print(f"Set {members.id} nick")
else:
print("Can't edit roles above me")