discord.py — как отследить view timeout и отключить кнопки?
Мне нужно, чтобы по прошествии времени в моём view отключались кнопки.
Как я могу это реализовать?
class test(commands.Cog):
@app_commands.command(name='test', description='timeout test')
async def test(self, interaction: discord.Interaction):
testBTN = Button(label="test", style=discord.ButtonStyle.green)
view = View(timeout=120)
view.add_item(testBTN)
view.on_timeout = print('Time is out')
await interaction.response.send_message('text', view=view,ephemeral=True)
Ответы (1 шт):
Автор решения: web developer
→ Ссылка
Вы можете использовать on_timeout в коде своего представления, чтобы удалить кнопки:
def __init__(self, ctx, summary, ranked, matches):
super().__init__(timeout=600)
self.summary = summary
async def on_timeout(self):
await self.message.edit(embed=self.summary, view=None)
Но вам также нужно немного отредактировать код команды:
view = ViewSwitch(ctx, summary, ranked, matches)
view.message = await ctx.send(embed=summary, view=view)