删除discord.py中的邮件Discord bot

时间:2018-02-13 23:02:53

标签: python discord discord.py

我使用Python 3.6 IDLE编写了一个机器人,我想添加一个purge命令,但我不知道如何添加它。你们中的一些人可以帮我提供任何例子或建议我会很高兴谢谢。

3 个答案:

答案 0 :(得分:1)

@bot.command(pass_context=True)
async def purge(ctx, amount):
    await bot.purge_from(ctx.message.channel, limit=amount)

非常确定这会奏效。

答案 1 :(得分:0)

@client.command(pass_context = True, aliases=['Clear'])
async def clear(ctx, number):
    mgs = [] #Empty list to put all the messages in the log
    number = int(number) #Converting the amount of messages to delete to an 
    integer
    async for x in client.logs_from(ctx.message.channel, limit = number):
        mgs.append(x)
    await client.delete_messages(mgs)

答案 2 :(得分:0)

我自己创建了这个命令,并与您分享。

首先我会添加代码然后解释。

代码:

@MyBot.command(pass_context=True)
@commands.has_permissions(administrator=True)
async def clear(ctx, limit):
    await ctx.message.delete()
    limit = int(limit)
    deleted = await ctx.channel.purge(limit=limit)
    cofirmdelete_embed = discord.Embed(title='Delete Successfull!', description=f'Deleted {len(deleted)} messages in #{ctx.channel}', color=0x4fff4d)
    await ctx.channel.send(embed=cofirmdelete_embed, delete_after=4.0)

说明:

    添加
  • @command.has_permissions(administrator=True) 以便此命令只能由管理员使用。您可以在此处使用任何不和谐权限,并根据需要将它们设置为 TrueFalse。例如:manage_messages=True

  • async def clear(ctx, limit) 中,limit 是您要删除的邮件数量。

  • ctx.message.delete() 删除您输入要清除的命令。也就是说,当你给bot命令:!clear它会先删除这条命令,然后执行后者。

  • deleted 是我用来获取已删除邮件数量的变量。

  • await ctx.channel.purge(limit=limit)。这里,purge 是 discord.py 库中的一个协程。它删除了用户添加的限制的消息。

  • confirmdelete_embed 中,我在添加 len(delete) 的地方添加了说明。这会计算已删除邮件的数量,然后将其添加到嵌入中。


这就是我能解释的全部。如果有什么事情发生或者你有任何疑问,我仍然在这里。随时问我。