Дискорд бот на Disnake. Как сделать кнопку неактивной, после нажатия?
Пишу бота дискорд на Disnake. Как правильно будет добавить disabled в код, чтобы кнопки были неактивными, после нажатия на них?
@bot.slash_command()
async def buttons(inter: disnake.ApplicationCommandInteraction):
await inter.response.send_message(
embed = disnake.Embed( title="Заголовок", description="Описание", color=0x992d22),
components=[
disnake.ui.Button(label="Кнопка1", style=disnake.ButtonStyle.secondary, custom_id="button1"),
disnake.ui.Button(label="Кнопка2", style=disnake.ButtonStyle.secondary, custom_id="button2"),
disnake.ui.Button(label="Кнопка3", style=disnake.ButtonStyle.secondary, custom_id="button3"),
],
)
@bot.listen("on_button_click")
async def help_listener(inter: disnake.MessageInteraction):
if inter.component.custom_id == "button1":
embed = disnake.Embed(title="Заголовок Кнопки1", description="Описание Кнопки1", color=0x992d22)
await inter.response.edit_message(embed=embed)
elif inter.component.custom_id == "button2":
embed = disnake.Embed(title="Заголовок Кнопки2", description="Описание Кнопки2", color=0x992d22)
await inter.response.edit_message(embed=embed)
elif inter.component.custom_id == "button3":
embed = disnake.Embed(title="Заголовок Кнопки3", description="Описание Кнопки3", color=0x992d22)
await inter.response.edit_message(embed=embed)
Ответы (2 шт):
Автор решения: tesstee
→ Ссылка
каждый калл бек переписать пример :
if inter.component.custom_id == "button1":
embed = disnake.Embed(title="Заголовок Кнопки1", description="Описание Кнопки1", color=0x992d22)
components=[
disnake.ui.Button(label="Кнопка1",disabled = True, style=disnake.ButtonStyle.secondary, custom_id="button1"),
disnake.ui.Button(label="Кнопка2", style=disnake.ButtonStyle.secondary, custom_id="button2"),
disnake.ui.Button(label="Кнопка3", style=disnake.ButtonStyle.secondary, custom_id="button3"),
]
await inter.response.edit_message(embed=embed, components = components)
если что то не понятно пиши мне в дискорд( maloletka777 )
Автор решения: Иван Play
→ Ссылка
Я не уверен в правильности того, что я сейчас напишу, но попробуйте так. (При изменении сообщения, изменяется только то, что мы укажем.)
components = [
disnake.ui.Button(label="Название кнопки", style=disnake.ButtonStyle.secondary, disabled=True, custom_id="Польз ид")
]
await inter.response.edit_message(components=components)
