目标:
创建一个只有一个命令的机器人,!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 秒左右输入一次消息。
如何实现我的目标并允许多个用户同时使用该机器人?