feat: delete queued songs on message delete

This commit is contained in:
Ryan 2025-01-05 17:26:36 -05:00
parent d5623502b0
commit 17bcdc687d
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3
2 changed files with 26 additions and 0 deletions

View File

@ -328,6 +328,17 @@ async def volume(message):
await utils.add_check_reaction(message) await utils.add_check_reaction(message)
def delete_queued(messages):
found = []
for message in messages:
for queued in players[message.guild.id].queue:
if queued.trigger_message.id == message.id:
found.append(queued)
for queued in found:
if queued in players[messages[0].guild.id].queue:
players[messages[0].guild.id].queue.remove(queued)
def play_after_callback(e, message, once): def play_after_callback(e, message, once):
if e: if e:
print(f"player error: {e}") print(f"player error: {e}")

View File

@ -1,3 +1,4 @@
import commands
import core import core
import events import events
from state import client from state import client
@ -31,6 +32,18 @@ async def on_message_edit(before, after):
await core.on_message(after, edited=True) await core.on_message(after, edited=True)
async def on_message_delete(message):
await events.trigger_dynamic_handlers("on_bulk_delete", message)
commands.voice.delete_queued([message])
async def on_bulk_message_delete(messages):
await events.trigger_dynamic_handlers("on_bulk_message_delete", messages)
commands.voice.delete_queued(messages)
async def on_voice_state_update(member, before, after): async def on_voice_state_update(member, before, after):
await events.trigger_dynamic_handlers( await events.trigger_dynamic_handlers(
"on_voice_state_update", member, before, after "on_voice_state_update", member, before, after
@ -42,6 +55,8 @@ async def on_voice_state_update(member, before, after):
for k, v in client.get_listeners().items(): for k, v in client.get_listeners().items():
for f in v: for f in v:
client.remove_listener(f, k) client.remove_listener(f, k)
client.add_listener(on_bulk_message_delete, "on_bulk_message_delete")
client.add_listener(on_message, "on_message") client.add_listener(on_message, "on_message")
client.add_listener(on_message_delete, "on_message_delete")
client.add_listener(on_message_edit, "on_message_edit") client.add_listener(on_message_edit, "on_message_edit")
client.add_listener(on_voice_state_update, "on_voice_state_update") client.add_listener(on_voice_state_update, "on_voice_state_update")