fix(commands/voice): handle edge case where player dies

This commit is contained in:
Ryan 2025-01-01 16:52:15 -05:00
parent 642d4aef81
commit 409373ee27
Signed by: ErrorNoInternet
GPG Key ID: 2486BFB7B1E6A4A3

View File

@ -1,11 +1,10 @@
import math import math
import arguments import arguments
import youtubedl
from state import client, players
import commands import commands
import utils import utils
import youtubedl
from state import client, players
async def queue_or_play(message): async def queue_or_play(message):
@ -213,6 +212,11 @@ async def skip(message):
else: else:
message.guild.voice_client.stop() message.guild.voice_client.stop()
await utils.add_check_reaction(message) await utils.add_check_reaction(message)
if (
not message.guild.voice_client.is_playing()
and not message.guild.voice_client.is_paused()
):
play_next(message)
async def join(message): async def join(message):
@ -303,9 +307,15 @@ def play_next(message, once=False):
message.guild.voice_client.stop() message.guild.voice_client.stop()
if players[message.guild.id].queue: if players[message.guild.id].queue:
queued = players[message.guild.id].queue_pop() queued = players[message.guild.id].queue_pop()
message.guild.voice_client.play( try:
queued.player, after=lambda e: play_after_callback(e, message, once) message.guild.voice_client.play(
) queued.player, after=lambda e: play_after_callback(e, message, once)
)
except Exception as e:
client.loop.create_task(
message.channel.send(f"error while trying to play: `{e}`")
)
return
client.loop.create_task(message.channel.send(f"**0.** {queued.format()}")) client.loop.create_task(message.channel.send(f"**0.** {queued.format()}"))