Skip to content

Commit d4829d6

Browse files
committed
seems like we have to call the callback ourself
1 parent 81f8fee commit d4829d6

File tree

4 files changed

+51
-28
lines changed

4 files changed

+51
-28
lines changed

nameless/custom/player/__init__.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,2 @@
11
from .custom_player import *
2-
from .settings import *
32
from .track_dropdown import *

nameless/custom/player/custom_player.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from wavelink import Player
44

5-
from .settings import SponsorBlockSettings
5+
from .settings.sponsorblock_settings import SponsorBlockSettings
66

77
__all__ = ["CustomPlayer"]
88

nameless/custom/player/settings/karaoke_settings.py

+47-26
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
# pyright: reportCallIssue=false
2+
13
import logging
24
from enum import Enum
35
from typing import TypedDict, cast, override
46

57
import discord
8+
import wavelink
69
from discord.ext import commands
710

811
from nameless import Nameless
@@ -31,6 +34,20 @@ def __init__(self, title: str):
3134
)
3235
)
3336

37+
@override
38+
async def on_submit(self, interaction: discord.Interaction[discord.Client]):
39+
assert interaction.guild
40+
41+
await super().on_submit(interaction)
42+
await interaction.followup.send(f"Level set to {self.value}", ephemeral=True)
43+
44+
voice_client = cast(wavelink.Player, interaction.guild.voice_client)
45+
filters = wavelink.Filters()
46+
filters.karaoke.set(
47+
level=self.value, mono_level=0, filter_band=0, filter_width=0
48+
)
49+
await voice_client.set_filters(filters)
50+
3451

3552
class MonoLevelView(CustomModalT):
3653
def __init__(self, title: str):
@@ -134,7 +151,7 @@ def output_message(self) -> str:
134151
@property
135152
def input_value(self):
136153
if not self._modal:
137-
return None
154+
return 0
138155
return self._modal.value
139156

140157
@override
@@ -169,33 +186,37 @@ def get_dropdown(self) -> KaraokeSettingDropdown:
169186

170187

171188
async def make(ctx: commands.Context[Nameless], message: discord.Message):
172-
embed = (
173-
discord.Embed(
174-
title="Karaoke Settings",
175-
description="Select a setting to change",
176-
color=discord.Color.blurple(),
177-
)
178-
.add_field(
179-
name="Level", value="Change the level of the karaoke effect", inline=False
180-
)
181-
.add_field(
182-
name="Mono Level",
183-
value="Change the mono level of the karaoke effect",
184-
inline=False,
185-
)
186-
.add_field(
187-
name="Filter Band",
188-
value="Change the filter band of the karaoke effect",
189-
inline=False,
190-
)
191-
.add_field(
192-
name="Filter Width",
193-
value="Change the filter width of the karaoke effect",
194-
inline=False,
195-
)
196-
)
189+
voice_client = cast(wavelink.Player, ctx.voice_client)
190+
karaoke = voice_client.filters.karaoke
197191

198192
while True:
193+
embed = (
194+
discord.Embed(
195+
title="Karaoke Settings",
196+
description="Select a setting to change",
197+
color=discord.Color.blurple(),
198+
)
199+
.add_field(
200+
name=f"Level {karaoke.payload.get('level', 0)}",
201+
value="Change the level of the karaoke effect",
202+
inline=False,
203+
)
204+
.add_field(
205+
name=f"Mono Level {karaoke.payload.get('mono_level', 0)}",
206+
value="Change the mono level of the karaoke effect",
207+
inline=False,
208+
)
209+
.add_field(
210+
name=f"Filter Band {karaoke.payload.get('filter_band', 0)}",
211+
value="Change the filter band of the karaoke effect",
212+
inline=False,
213+
)
214+
.add_field(
215+
name=f"Filter Width {karaoke.payload.get('filter_width', 0)}",
216+
value="Change the filter width of the karaoke effect",
217+
inline=False,
218+
)
219+
)
199220
view = KaraokeSettingView(ctx.author, message)
200221
await message.edit(view=view, embed=embed)
201222

nameless/custom/ui/modal/custom_modal.py

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ def __init__(self, title: str) -> None:
1414
@override
1515
async def on_submit(self, interaction: discord.Interaction[discord.Client]) -> None:
1616
await interaction.response.defer()
17+
for child in self.children:
18+
if isinstance(child, CustomInput):
19+
await child.callback(interaction)
1720
self.stop()
1821

1922
def get_input(self) -> CustomInput[V]:

0 commit comments

Comments
 (0)