【问题标题】:why is my discord.py command not working or sending messages为什么我的 discord.py 命令不起作用或无法发送消息
【发布时间】:2021-04-21 03:48:48
【问题描述】:

我有这个编辑狙击命令和事件,如果用户编辑消息它会狙击它。该事件运行良好,并将编辑后的消息发送到私人日志管理频道。但是,当我尝试将其变成命令并将嵌入发送到给定的命令通道中时,消息和命令根本不起作用


    @commands.command()
    async def es(self,message_before, message_after):
        embed=discord.Embed(description=f"????**Message sent by** {author} **edited in** {channel}")
        embed.set_author(name= f" ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ {message_before.author.name}#{message_before.author.discriminator}")
        embed.add_field(name="Old message", value=message_before.content, inline=False)
        embed.add_field(name="New message", value=message_after.content, inline=False)
        await message_before.channel.send(embed=embed)
        return

【问题讨论】:

    标签: python python-3.x discord discord.py


    【解决方案1】:

    您混淆了 commandevent

    @Cohen 在您的other post 中的上一个回答中,他告诉您使用on_message_edit 事件。此事件 (and many others) 已由 discord.py 库定义,因此它们已提供输入参数。

    如果您希望每次在用户编辑消息时发送嵌入,请不要在单独的函数中执行此操作,请将您的代码添加到 on_message_edit 中的代码段中。另一方面,如果您希望能够调用命令 ("!es"),例如,谁将检索 last 编辑的消息,您将需要创建一个数据库并保存已编辑消息的日志(具有 old_messagenew_message 列的单个表。

    您可以使用DB Browser for SQLite 来创建和手动检查您的数据库,我建议使用异步库,例如aiosqlite,它可以很好地与discord.py

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 2021-03-16
      • 1970-01-01
      • 2020-12-02
      • 2021-07-27
      相关资源
      最近更新 更多