我想创建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发送文本,然后再显示消息。
答案 0 :(得分:2)
这是答案:
异步定义警告(ctx,args1:discord.Member,args2 =“无原因”):
^ ^
User Mention Optional
成员= args1
角色= ctx.guild.get_role(角色ID)
用于Member.roles中的角色:
如果角色!=角色:或如果角色==角色:
等待Member.add_roles(角色)