Python Discord bot-尝试踢所有用户

时间:2019-08-24 22:47:44

标签: python node.js bots discord

我有一个不和谐的服务器,因为所有者帐户长时间不活动,因此遭受了政变。

我希望在替换机器人之前对其进行修改,以允许我发出命令来踢所有成员,并将邀请发送给替换服务器,首先检查该成员是否具有可以踢的角色。

我对python最不熟悉,但是只发现了使用python进行类似步骤的线索。

我使用的kickem python示例存在权限问题。 调用该命令时,控制台会报告权限问题。

  

discord.errors.Forbidden: 403 FORBIDDEN (error code: 50013): Missing Permissions

我绝对有踢腿的权限。所以我的猜测是,它首先击中了层次结构中比我自己更高的成员,从而导致了错误。因为我不能踢新主人等等。

因此,我尝试添加针对特定角色的搜索,但无法使其与变量列表配合使用。它一直抱怨没有被定义,等等。我不知道python将如何处理它。

# KICKEM

@bot.command(pass_context=True)
async def kickem(ctx):
        guild=ctx.message.guild
        for member in tuple(guild.members):
                ## Try to find the role and skip those higher
                role = discord.utils.find(lambda r: r.name == 'leader', ctx.message.guild.roles)
                if role in member.roles:   
                        print("Kickem skip leader")
                ## Not sure how to check other roles before moving on.
                else:
                        await member.kick()

1 个答案:

答案 0 :(得分:0)

您的权限不是问题,因为机器人是踢人的机器人。检查它的角色,并确保它具有管理员和/或踢踢特权。