我想创建一个discord bot,在收到管理员的消息后,将所有服务器成员(不包括admin)的角色从@everyone更改为@newrole。
我尝试了此代码,但出现错误:
role = discord.utils.get(server.roles,name =“ newrole”)
AttributeError:“ NoneType”对象没有属性“角色”
我使用最新版本的discord和Python 3.6。
server = client.get_guild(int(server-id))
@client.event
async def on_message(message):
if message.content.startswith('change role'):
await message.author.send("Change the role from @everyone to @newrole")
role = discord.utils.get(server.roles, name="newrole")
for member in server.members:
await member.add_roles(role)
答案 0 :(得分:0)
所有成员始终具有everyone
角色。但是,成员可以具有多个角色,因此您也可以为他们分配新角色。没有协程可用于批量分配角色,因此您必须逐个成员地进行:
@client.event
async def on_message(message):
if message.content.startswith('change role'):
await message.author.send("Change the role from @everyone to @newrole")
role = discord.utils.get(message.guild.roles, name="newrole")
for member in message.guild.members:
await member.add_roles(role)