【问题标题】:DELETING messages in discord.py Discord bot删除 discord.py 中的消息 Discord bot
【发布时间】:2018-07-24 10:20:54
【问题描述】:

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

【问题讨论】:

  • 有一个Client.delete_message 协程。你到底在纠结什么?
  • 调用purge 命令后会删除哪些消息?该频道中的所有消息,或该服务器上的所有消息,来自特定用户的所有消息?

标签: python discord discord.py


【解决方案1】:
@bot.command(pass_context=True)
async def purge(ctx, amount):
    await bot.purge_from(ctx.message.channel, limit=amount)

很确定这会奏效。

【讨论】:

    【解决方案2】:
    @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(number)
        async for x in ctx.logs_from(ctx.message.channel, limit = number):
            mgs.append(x)
        await ctx.delete_messages(mgs)
    

    【讨论】:

      【解决方案3】:

      我自己创建了这个命令,我正在与你分享。

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

      代码:

      @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) 的位置添加了描述。这会计算已删除消息的数量,然后将其添加到嵌入中。


      这就是我能解释的全部了。如果出现问题或您有任何疑问,我仍然在这里。随时问我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-28
        • 2020-12-03
        • 2017-10-25
        • 2020-08-25
        • 1970-01-01
        • 2020-10-01
        • 2019-02-20
        • 2021-10-18
        相关资源
        最近更新 更多