编辑机器人';s消息,就像您滑动页面时一样,discord.py

编辑机器人';s消息,就像您滑动页面时一样,discord.py,discord.py,message,editing,Discord.py,Message,Editing,我想用另一个命令编辑机器人的旧消息trought,例如: user: !cmds bot: *commands list* user: !next bot: *edits old message into a new one* 我自己尝试过很多次,但每次都失败了,有人能帮我吗 我是如何做到的: @client.command 异步定义测试(): 嵌入=不协调。嵌入(title=“Page1”) 等待ctx.send(嵌入=嵌入) @客户端事件 异步def on_命令(消息): embed2=

我想用另一个命令编辑机器人的旧消息trought,例如:

user: !cmds
bot: *commands list*

user: !next
bot: *edits old message into a new one*
我自己尝试过很多次,但每次都失败了,有人能帮我吗

我是如何做到的:

@client.command
异步定义测试():
嵌入=不协调。嵌入(title=“Page1”)
等待ctx.send(嵌入=嵌入)
@客户端事件
异步def on_命令(消息):
embed2=discord.Embed(title=“Page2”)
等待客户端处理命令(消息)
如果message.content==“$next”:
等待消息。编辑(content=embed2)

每当调用命令时,都会调用
on_命令
事件,您没有注册
下一个
命令,这是所有
on_命令
中的第二个不接受
消息
参数,它接受
上下文
ctx

要实现您的要求,可以使用一个cog和一个引用上一条消息的实例变量,然后在调用
next
命令时对其进行编辑

class SomeCog(commands.Cog):
定义初始化(自我,客户机):
self.client=client
self.\u上一条消息=无
@commands.command()
异步def测试(自身、ctx):
message=wait ctx.send(“当您键入“$next”时,我将编辑此消息”)
self.\u上一条消息=消息
@commands.command()
异步def next(自身、ctx):
如果self._previous_消息为None:#如果之前未调用'test'命令,即消息为NoneType,则退出
return wait ctx.send(“您需要调用第一个`$test`”)
等待自我。\u上一条消息。编辑(content=“编辑消息”)
客户。添加_cog(SomeCog(客户))

我猜你可以使用全局变量或bot变量,但我认为这是最好的方法。

请添加一个,如果我们为其他人编写代码,那么就不是一个站点。对不起,我试着这样做:
@client.command async def test():embed=discord.embed(title=“Page1”)等待ctx.send(embed=embed)@client.event async def on_命令(message):embed2=discord.Embed(title=“Page2”)等待客户端。如果message.content='$next',则处理_命令(message):等待消息。编辑(content=embed2)