Slight organization changes. Decided to use new message for score input.

This commit is contained in:
alwayscompiling
2022-07-07 22:57:38 -04:00
parent f9800677cc
commit 6a7207d710
+12 -8
View File
@@ -1,4 +1,4 @@
"""Views used in highscores bot.""" """Views used for submission process."""
from typing import Optional from typing import Optional
@@ -23,7 +23,9 @@ class SubmissionButton(nextcord.ui.View):
boss_name = highscores_message_map[str(interaction.message.id)] boss_name = highscores_message_map[str(interaction.message.id)]
await interaction.channel.send( await interaction.channel.send(
f"<@{interaction.user.id}> Submitting score for {boss_name}", f"<@{interaction.user.id}> Submitting score for {boss_name}",
view=SubmissionView(interaction, await self._category_select_options(boss_name)), view=SubmissionDropdownView(
interaction, await self._category_select_options(boss_name)
),
) )
async def _category_select_options(self, boss_name: str) -> "list[nextcord.SelectOption]": async def _category_select_options(self, boss_name: str) -> "list[nextcord.SelectOption]":
@@ -44,22 +46,24 @@ class SubmissionDropdown(nextcord.ui.Select):
) )
async def callback(self, interaction: nextcord.Interaction): async def callback(self, interaction: nextcord.Interaction):
await interaction.response.edit_message(content=f"submitting for {self.values[0]}") await interaction.message.edit(
content=f"submitting for {self.values[0]}",
) # TODO create embed and then wait for response message.
class SubmissionView(nextcord.ui.View): class SubmissionDropdownView(nextcord.ui.View):
"""Defines entire submission process view""" """Defines submission dropdown process view"""
def __init__( def __init__(
self, self,
button_interaction: nextcord.Interaction, prev_interaction: nextcord.Interaction,
options: "list[nextcord.SelectOption]", options: "list[nextcord.SelectOption]",
*, *,
timeout: Optional[float] = 180, timeout: Optional[float] = 180,
): ):
super().__init__(timeout=timeout) super().__init__(timeout=timeout)
self.add_item(SubmissionDropdown(options)) self.add_item(SubmissionDropdown(options))
self._button_interaction = button_interaction self._prev_interaction = prev_interaction
async def interaction_check(self, interaction: nextcord.Interaction) -> bool: async def interaction_check(self, interaction: nextcord.Interaction) -> bool:
return self._button_interaction.user == interaction.user return self._prev_interaction.user == interaction.user