Bot Discord python只删除一个人的消息

时间:2018-05-28 22:49:42

标签: python bots discord messages

我正在编写一个机器人用于不和并试图删除邮件,但只是其中一个机器人,因为我正在做一些让他发垃圾邮件的命令。 所以我发现批量删除效果很好

    @bot.command(pass_context = True)
async def purge(ctx,msglimit : int):
    deleted = await bot.purge_from(ctx.message.channel, limit=msglimit)
    await bot.say("Cleared **{}** Messages".format(len(deleted)))

但是文档显示了这个命令

def is_me(m):
    return m.author == client.user

    deleted = await client.purge_from(channel, limit=100, check=is_me)
    await client.send_message(channel, 'Deleted {} message(s)'.format(len(deleted)))

但如果有人有想法,我无法真正开始工作

1 个答案:

答案 0 :(得分:0)

def is_me(m):
    return m.author == bot.user

@bot.command(pass_context = True)
async def purge(ctx):
    deleted = await bot.purge_from(ctx.message.channel, check=is_me)
    await bot.say("Cleared **{}** Messages".format(len(deleted)))

这会删除一定数量的消息(默认为100)。

purge_from方法接受一个名为check的参数,该参数是一个接收消息并返回是否应删除该消息的函数。

如果消息作者是机器人,is_me函数将返回true。

这意味着调用purge将删除拾取此命令的机器人。如果您需要机器人删除其他用户的消息,则需要更改条件。