首页 > 解决方案 > 如何让你的机器人发送动画消息(如 dank memer 的 Hack 命令)

问题描述

大家好。我一直在编写一个代码,其中机器人通过快速编辑来发送动画消息(如 dank memer 的 hack 命令)。这是代码,但不幸的是它没有响应它并说“无法编辑由另一个人撰写的消息用户'

这是代码

     async def virus(self, ctx, user: discord.Member = None, *, virus: str = "trojan"):
      user54 = user or ctx.author
      list = (
          f"``[▓▓▓                    ] / {virus}-virus.exe Packing files.``",
          f"``[▓▓▓▓▓▓▓                ] - {virus}-virus.exe Packing files..``",
          f"``[▓▓▓▓▓▓▓▓▓▓▓▓           ] \ {virus}-virus.exe Packing files..``",
          f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓         ] | {virus}-virus.exe Packing files..``",
          f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓      ] / {virus}-virus.exe Packing files..``",
          f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   ] - {virus}-virus.exe Packing files..``",
          f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] \ {virus}-virus.exe Packing files..``",
          f"``Successfully downloaded {virus}-virus.exe``",
          "``Injecting virus.   |``",
          "``Injecting virus..  /``",
          "``Injecting virus... -``",
          f"``Successfully Injected {virus}-virus.exe into {user54.name}``",
      )
      for i in list:
          await asyncio.sleep(1.5)
          await ctx.message.edit(content=i)

标签: animationdiscord.py

解决方案


正如它在错误中所说,您无法编辑其他用户消息,ctx.message指的是调用该命令的消息。您需要先发送消息,然后对其进行编辑。

这应该有效:

    async def virus(self, ctx, user: discord.Member = None, *, virus: str = "trojan"):
        user54 = user or ctx.author
        initial_message = await ctx.send(f"``[▓                    ] / {virus}-virus.exe Packing files.``")
        list = (
            f"``[▓▓▓                    ] / {virus}-virus.exe Packing files.``",
            f"``[▓▓▓▓▓▓▓                ] - {virus}-virus.exe Packing files..``",
            f"``[▓▓▓▓▓▓▓▓▓▓▓▓           ] \ {virus}-virus.exe Packing files..``",
            f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓         ] | {virus}-virus.exe Packing files..``",
            f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓      ] / {virus}-virus.exe Packing files..``",
            f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   ] - {virus}-virus.exe Packing files..``",
            f"``[▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ] \ {virus}-virus.exe Packing files..``",
            f"``Successfully downloaded {virus}-virus.exe``",
            "``Injecting virus.   |``",
            "``Injecting virus..  /``",
            "``Injecting virus... -``",
            f"``Successfully Injected {virus}-virus.exe into {user54.name}``",
            )
        for i in list:
            await asyncio.sleep(1.5)
            await initial_message.edit(content=i)

推荐阅读