按名称查找角色ID不和谐重写

问题描述

现在,我正在为Discord机器人编写命令,在该命令中,我创建了一个以用户命名的角色,然后自动将其分配给该用户。我遇到的唯一问题是尝试在不知道其ID的情况下分配角色 给所提到的人。 到目前为止,我的命令:

@client.command(aliases = ["cmr","CMR"])
@commands.has_permissions(manage_roles=True)
async def creatememberrole(ctx,*,member:discord.Member):
    author = ctx.message.author
    guild = ctx.guild
    print(author.display_name)
    await guild.create_role(name=str(member.display_name))
    await member.add_roles()
          #need help here ^

解决方法

您可以浏览所有角色的列表,找到您创建的角色并分配此角色。这是一个示例:

for role in message.channel.guild.roles:
    if role.name == str(member.display_name):
        await member.add_roles(role)
,

interface Name { name: string; info: string; } 可以轻松完成,无需for循环

utils.get

在您的情况下,不需要任何for loop / utils.get,只需将role = discord.utils.get(ctx.guild.roles,name=member.display_name) await member.add_roles(role) 方法分配给变量并使用该变量

create_role()

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...