Python 如何创建将角色赋予上述用户的bot命令| Discord.py

Python 如何创建将角色赋予上述用户的bot命令| Discord.py,python,python-3.x,discord,discord.py,Python,Python 3.x,Discord,Discord.py,我想创建一个Discord bot命令 例如,我想创建一个警告命令。因此管理员将输入以下命令: ?Warn @user "<A warning message>" 然后机器人用文本和消息对用户进行DMs。这是一个WSER: 异步定义警告(ctx,args1:discord.Member,args2=“无原因”): 成员=args1 Role=ctx.guild.get\u角色(角色ID) 对于Member.roles中的角色: 如果是角色!=角色:或如果角色=

我想创建一个Discord bot命令

例如,我想创建一个警告命令。因此管理员将输入以下命令:

?Warn @user "<A warning message>"
然后机器人用文本和消息对用户进行DMs。

这是一个WSER:

  • 异步定义警告(ctx,args1:discord.Member,args2=“无原因”):

  • 成员=args1

  • Role=ctx.guild.get\u角色(角色ID)

  • 对于Member.roles中的角色:

  • 如果是角色!=角色:或如果角色==角色:

  • 等待成员。添加_角色(角色)


  • 一个用户可以有多个角色,所以您不能只检查user.role,而是类似于user.roles中的
    role\u对象,那么我如何才能做到这一点呢?然而,我如何将提到的用户归因于变量?我不能将用户角色归于临时列表吗?第5行有一个常见的Python gotcha(必须在逻辑运算符的两侧都有完整的说明),至少有人会告诉我如何将所提到的用户分配给变量?我希望每个人都能理解!
    
    #Warning
    @bot.command(name="Warn", pass_context=True)
    @commands.has_role("Staff Team")
    async def addrole(ctx,arg):
        user = arg
        if user.role.name != "Warning 1" or "Warning 2" or "Warning 3":
            role = get(user.server.roles, name="Warning 1")
            await bot.add_roles(user, role)
        elif user.role.name == "Warning 1":
            role = get(user.server.roles, name="Warning 2")
            role_last = get(user.server.roles, name="Warning 1")
            await bot.add_roles(user, role)
            await bot.remove_roles(user,role_last)
        elif user.role.name == "Warning 2":
            role = get(user.server.roles, name="Warning 3")
            role_last = get(user.server.roles, name="Warning 2")
            await bot.add_roles(user, role)
            await bot.remove_roles(user,role_last)
    
                      ^                         ^
                 User Mention              Optional