Discord.py从列表中创建角色
我看过一些关于如何将角色赋予用户的示例,但这些示例都是将角色硬编码到add_role函数中。我想帮助您编写一个命令,允许用户根据列表自行分配角色Discord.py从列表中创建角色,discord.py,Discord.py,我看过一些关于如何将角色赋予用户的示例,但这些示例都是将角色硬编码到add_role函数中。我想帮助您编写一个命令,允许用户根据列表自行分配角色 @client.command(pass_context = True) async def assign(ctx, role): member = ctx.message.author role = discord.utils.get(member.server.roles, name = role) await client
@client.command(pass_context = True)
async def assign(ctx, role):
member = ctx.message.author
role = discord.utils.get(member.server.roles, name = role)
await client.add_roles(member, role)
await client.say("Role added! {}".format(member.mention))
这是我得到的代码,但这会分配服务器中的任何角色,因为这就是我分配的角色。我玩过其他东西,但遇到了一个错误,“str”对象没有属性“id”错误。您可以定义角色名称的白名单,然后在分配角色之前对照该名单进行检查。在下面的示例中,我也使用了,但您也可以查找名称
roles_whitelist = ['librarian', 'treasurer', 'secretary']
@client.command(pass_context = True)
async def assign(ctx, role: discord.Role):
member = ctx.message.author
if role.name.lower() in roles_whitelist:
await client.add_roles(member, role)
await client.say("Role added! {}".format(member.mention))
else:
await client.say("Cannot add that role")