Refactor controller UI and bump version

Refactor interactive controller components and tweak command signatures.

- Make lyrics command accept keyword-only args (adds a leading * for title/artist).
- Bump version to v2.7.3b3.
- Import dispatch_message and add send_embed helper to ControlButton for embed responses.
- Introduce ControlSelect (base for selects) and refactor Tracks/Effects to inherit it, pass player explicitly and fix placeholder/player usage.
- Namespace localization keys (e.g. player.controls.forward/rewind) and defer interaction responses where appropriate.
- Replace direct send_localized_message calls with ControlSelect/ControlButton send wrappers to honor controller message settings.
- Add additional on_error handling for VoicelinkException and ensure non-ephemeral message deletion behavior follows controller settings.

These changes improve consistency for UI components, interaction handling, and localization usage.
This commit is contained in:
Choco
2026-04-15 11:57:08 +08:00
parent 629eb041f6
commit 47ec3d212a
3 changed files with 60 additions and 26 deletions

View File

@@ -790,7 +790,7 @@ class Basic(commands.Cog):
@commands.hybrid_command(name="lyrics", aliases=get_aliases("lyrics"))
@app_commands.describe(title="Searches for your query and displays the reutned lyrics.")
@commands.dynamic_cooldown(cooldown_check, commands.BucketType.guild)
async def lyrics(self, ctx: commands.Context, title: str = "", artist: str = ""):
async def lyrics(self, ctx: commands.Context, *, title: str = "", artist: str = ""):
"Displays lyrics for the playing track."
if not title:
player: voicelink.Player = ctx.guild.voice_client