Adding pages to songs queue to move between all queue, adding buttons to queue embed to better user experience

This commit is contained in:
Rafael Vargas
2022-08-02 21:52:54 -04:00
parent 6ba7734a36
commit 2627f95a6d
22 changed files with 192 additions and 27 deletions

View File

@@ -18,5 +18,7 @@ class BackButton(Button):
handler = PrevHandler(interaction, self.__bot)
response = await handler.run()
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

26
UI/Buttons/EmptyButton.py Normal file
View File

@@ -0,0 +1,26 @@
from typing import Awaitable
from discord import ButtonStyle, Interaction
from discord.ui import Button
from Handlers.HandlerResponse import HandlerResponse
from Music.VulkanBot import VulkanBot
class EmptyButton(Button):
def __init__(self, bot: VulkanBot, cb: Awaitable, emoji, label=None, *args, **kwargs):
super().__init__(label=label, style=ButtonStyle.secondary, emoji=emoji)
self.__bot = bot
self.__args = args
self.__kwargs = kwargs
self.__callback = cb
async def callback(self, interaction: Interaction) -> None:
"""Callback to when Button is clicked"""
# Return to Discord that this command is being processed
await interaction.response.defer()
response: HandlerResponse = await self.__callback(*self.__args, **self.__kwargs)
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class LoopAllButton(Button):
handler = LoopHandler(interaction, self.__bot)
response = await handler.run('all')
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class LoopOffButton(Button):
handler = LoopHandler(interaction, self.__bot)
response = await handler.run('off')
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class LoopOneButton(Button):
handler = LoopHandler(interaction, self.__bot)
response = await handler.run('one')
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class PauseButton(Button):
handler = PauseHandler(interaction, self.__bot)
response = await handler.run()
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class PlayButton(Button):
handler = ResumeHandler(interaction, self.__bot)
response = await handler.run()
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class SkipButton(Button):
handler = SkipHandler(interaction, self.__bot)
response = await handler.run()
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class SongsButton(Button):
handler = QueueHandler(interaction, self.__bot)
response = await handler.run()
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)

View File

@@ -16,5 +16,7 @@ class StopButton(Button):
handler = StopHandler(interaction, self.__bot)
response = await handler.run()
if response.embed:
if response and response.view is not None:
await interaction.followup.send(embed=response.embed, view=response.view)
elif response:
await interaction.followup.send(embed=response.embed)