Discord py 接受回复,直到按下按钮

问题描述 投票:0回答:0

目标:

创建一个只有一个命令的机器人,!numbers 在按下按钮之前可以接受回复。该命令最初发送一个嵌入,然后等待用户键入一个数字,然后用键入的数字更新嵌入。用户可以继续发送消息直到完成,然后他们在嵌入“完成”上按下按钮,完成后,包含所有值的嵌入将发送给用户 DMs

方法:

我正在为我的按钮使用持久视图,它们工作得很好。

我到目前为止所做的工作,但我使用 while 循环和像这样的短超时来完成它

while stillscanning:

            try:
                msg = await self.bot.wait_for('message', check=package_scan, timeout = 0.000005)
                await channel.purge(limit=2, check=lambda x: (x.author.id == id))
                numbers.append(str(msg.content))
                embed = discord.Embed(title="numbers input", description="")
                for pid in numbers:
                    embed.add_field(name='number', value=pid, inline = True)
                await channel.send(embed=embed, view=PersistentView2())
            except:
                pass

它的超时时间很短,因此它会不断检查消息,但这种方法很糟糕。这使得我的程序不是异步的,也很慢,用户只能每 3 秒左右输入一次消息。

如何实现我的目标并允许多个用户同时使用该机器人?

python asynchronous discord reply
© www.soinside.com 2019 - 2024. All rights reserved.