diff --git a/commands/voice.py b/commands/voice.py index 9c8d86e..c920041 100644 --- a/commands/voice.py +++ b/commands/voice.py @@ -328,6 +328,17 @@ async def volume(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): if e: print(f"player error: {e}") diff --git a/events.py b/events.py index 3655075..572e7d5 100644 --- a/events.py +++ b/events.py @@ -1,3 +1,4 @@ +import commands import core import events from state import client @@ -31,6 +32,18 @@ async def on_message_edit(before, after): 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): await events.trigger_dynamic_handlers( "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 f in v: 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_delete, "on_message_delete") client.add_listener(on_message_edit, "on_message_edit") client.add_listener(on_voice_state_update, "on_voice_state_update")