如何创建赋予所提及用户角色的bo​​t命令。不和谐

时间:2020-03-26 15:34:00

标签: python python-3.x discord discord.py

我想创建Discord机器人命令。

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

?Warn @user "<A warning message>"

然后,该命令将检查目标用户(@user)是否具有某些角色(例如,“ A”,“ B”,“ C”和“ D”)。如果他没有扮演“ A”角色,那么他将得到它;如果他拥有A,则他将得到B,依此类推。

管理员必须具有“职员团队”角色才能使用该命令。

我尝试了一下,但是没有用:

#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)

然后,漫游器会先向用户DM发送文本,然后再显示消息。

1 个答案:

答案 0 :(得分:2)

这是答案:

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

                      ^                         ^
                 User Mention              Optional
    
  2. 成员= args1

  3. 角色= ctx.guild.get_role(角色ID)

  4. 用于Member.roles中的角色:

  5. 如果角色!=角色:或如果角色==角色:

  6. 等待Member.add_roles(角色)