Нигде не могу найти функцию, чтобы возвращала в первоначальный вид меню после выбора. Либо я слепой, либо лыжи не едут. Где эта функция находится. Либо если нет функции, то можете подсказать что делать?
Вот мой код. Выскакивает это меню с выбором игры. После выбора, появляется сообщение с новым меню где нужно выбрать категорию игры, ну а там дальше происходят свои функции. После этого второе меню с сообщением удаляется. И по идеи должно быть так чтобы первая меню сбрасывало твой выбор. Но никак не могу придумать как это сделать. Если использую edit_original_response то выводит ошибку.
class DropdownMenu(disnake.ui.StringSelect):
def __init__ (self):
options = [
disnake.SelectOption(label = "Starcraft 2"),
disnake.SelectOption(label = "Overwatch 2"),
disnake.SelectOption(label = "League of Legends"),
disnake.SelectOption(label = "Counter-Strike"),
disnake.SelectOption(label = "Dota 2"),
disnake.SelectOption(label = "Другое")
]
super().__init__(
placeholder = "Игры",
min_values = 0,
max_values = 1,
options = options
)
async def callback(self, inter: disnake.MessageInteraction):
if self.values[0] == "Starcraft 2":
await inter.response.send_message(f"Выберите категорию {self.values[0]}", view = DropdownView(1))
elif self.values[0] == "Overwatch 2":
await inter.response.send_message(f"Выберите категорию {self.values[0]}", view = DropdownView(2))
elif self.values[0] == "League of Legends":
await inter.response.send_message(f"Выберите категорию {self.values[0]}", view = DropdownView(3))
elif self.values[0] == "Counter-Strike":
await inter.response.send_message(f"Выберите категорию {self.values[0]}", view = DropdownView(4))
elif self.values[0] == "Dota 2":
await inter.response.send_message(f"Выберите категорию {self.values[0]}", view = DropdownView(5))
elif self.values[0] == "Другое":
await inter.response.send_message(f"Выберите категорию {self.values[0]}", view = DropdownView(6))
class DropdownViewMenu(disnake.ui.View):
def __init__(self):
super().__init__(timeout = None)
self.add_item(DropdownMenu())
class DropdownView(disnake.ui.View):
def __init__(self, count):
super().__init__(timeout = 120)
if count == 1:
self.add_item(DropdownStarCraft())
elif count == 2:
self.add_item(DropdownOverwatch())
elif count == 3:
self.add_item(DropdownLoL())
elif count == 4:
self.add_item(DropdownCS())
elif count == 5:
self.add_item(DropdownDota())
elif count == 6:
self.add_item(DropdownOther())
@bot.slash_command(name = "setting", description = "Для настройки голосового канала")
async def setting(inter: disnake.CommandInter):
await inter.send("Настройка канала", delete_after = 3)
await inter.send("Выберите игру в которую хотите пойти", view=DropdownViewMenu())