diff --git a/redbot/cogs/audio/core/commands/queue.py b/redbot/cogs/audio/core/commands/queue.py index bc4405cd200..98bd70d2e15 100644 --- a/redbot/cogs/audio/core/commands/queue.py +++ b/redbot/cogs/audio/core/commands/queue.py @@ -9,6 +9,7 @@ import discord import lavalink +from lavalink import NodeNotFound, PlayerNotFound from redbot.core import commands from redbot.core.i18n import Translator @@ -179,7 +180,7 @@ async def command_queue_clear(self, ctx: commands.Context): """Clears the queue.""" try: player = lavalink.get_player(ctx.guild.id) - except KeyError: + except (NodeNotFound, PlayerNotFound): return await self.send_embed_msg(ctx, title=_("There's nothing in the queue.")) dj_enabled = self._dj_status_cache.setdefault( ctx.guild.id, await self.config.guild(ctx.guild).dj_enabled() @@ -210,7 +211,7 @@ async def command_queue_clean(self, ctx: commands.Context): """Removes songs from the queue if the requester is not in the voice channel.""" try: player = lavalink.get_player(ctx.guild.id) - except KeyError: + except (NodeNotFound, PlayerNotFound): return await self.send_embed_msg(ctx, title=_("There's nothing in the queue.")) dj_enabled = self._dj_status_cache.setdefault( ctx.guild.id, await self.config.guild(ctx.guild).dj_enabled() @@ -257,7 +258,7 @@ async def command_queue_cleanself(self, ctx: commands.Context): try: player = lavalink.get_player(ctx.guild.id) - except KeyError: + except (NodeNotFound, PlayerNotFound): return await self.send_embed_msg(ctx, title=_("There's nothing in the queue.")) if not self._player_check(ctx) or not player.queue: return await self.send_embed_msg(ctx, title=_("There's nothing in the queue.")) @@ -289,7 +290,7 @@ async def command_queue_search(self, ctx: commands.Context, *, search_words: str """Search the queue.""" try: player = lavalink.get_player(ctx.guild.id) - except KeyError: + except (NodeNotFound, PlayerNotFound): return await self.send_embed_msg(ctx, title=_("There's nothing in the queue.")) if not self._player_check(ctx) or not player.queue: return await self.send_embed_msg(ctx, title=_("There's nothing in the queue.")) diff --git a/redbot/cogs/audio/core/events/dpy.py b/redbot/cogs/audio/core/events/dpy.py index d2a9a5d986e..bbf942045c6 100644 --- a/redbot/cogs/audio/core/events/dpy.py +++ b/redbot/cogs/audio/core/events/dpy.py @@ -14,6 +14,8 @@ from aiohttp import ClientConnectorError from discord.ext.commands import CheckFailure +from lavalink import NodeNotFound, PlayerNotFound + from redbot.core import commands from redbot.core.i18n import Translator from redbot.core.utils.antispam import AntiSpam @@ -313,7 +315,7 @@ async def on_voice_state_update( ): try: player = lavalink.get_player(channel.guild.id) - except (KeyError, AttributeError): + except (NodeNotFound, PlayerNotFound, AttributeError): pass else: if player.channel.id == channel.id: diff --git a/redbot/cogs/audio/core/tasks/lavalink.py b/redbot/cogs/audio/core/tasks/lavalink.py index 373d0361049..b24877e2edc 100644 --- a/redbot/cogs/audio/core/tasks/lavalink.py +++ b/redbot/cogs/audio/core/tasks/lavalink.py @@ -114,7 +114,7 @@ async def lavalink_attempt_connect(self, timeout: int = 50, manual: bool = False resume_key=f"Red-Core-Audio-{self.bot.user.id}-{data_manager.instance_name}", secured=secured, ) - except lavalink.enums.AbortingConnectionException: + except lavalink.AbortingNodeConnectionException: await lavalink.close(self.bot) log.warning("Connection attempt to Lavalink node aborted") return diff --git a/redbot/cogs/audio/core/tasks/startup.py b/redbot/cogs/audio/core/tasks/startup.py index 7c3ac3aa8d4..13841581c37 100644 --- a/redbot/cogs/audio/core/tasks/startup.py +++ b/redbot/cogs/audio/core/tasks/startup.py @@ -7,6 +7,7 @@ from typing import Optional import lavalink +from lavalink import NodeNotFound, PlayerNotFound from redbot.core.data_manager import cog_data_path from redbot.core.i18n import Translator @@ -112,9 +113,7 @@ async def restore_players(self): else: try: player = lavalink.get_player(guild_id) - except IndexError: - player = None - except KeyError: + except (NodeNotFound, PlayerNotFound): player = None vc = 0 guild_data = await self.config.guild_from_id(guild.id).all() @@ -185,9 +184,7 @@ async def restore_players(self): else: try: player = lavalink.get_player(guild_id) - except IndexError: - player = None - except KeyError: + except (NodeNotFound, PlayerNotFound): player = None if player is None: guild_data = await self.config.guild_from_id(guild.id).all() diff --git a/redbot/cogs/audio/core/utilities/equalizer.py b/redbot/cogs/audio/core/utilities/equalizer.py index 6c77d2a7871..86dff22fefa 100644 --- a/redbot/cogs/audio/core/utilities/equalizer.py +++ b/redbot/cogs/audio/core/utilities/equalizer.py @@ -6,6 +6,7 @@ import discord import lavalink +from lavalink import NodeNotFound, PlayerNotFound from redbot.core import commands from redbot.core.utils.chat_formatting import box @@ -27,7 +28,7 @@ async def _apply_gain(self, guild_id: int, band: int, gain: float) -> None: try: await lavalink.get_player(guild_id).node.send({**const}) - except (KeyError, IndexError): + except (NodeNotFound, PlayerNotFound): pass async def _apply_gains(self, guild_id: int, gains: List[float]) -> None: @@ -39,7 +40,7 @@ async def _apply_gains(self, guild_id: int, gains: List[float]) -> None: try: await lavalink.get_player(guild_id).node.send({**const}) - except (KeyError, IndexError): + except (NodeNotFound, PlayerNotFound): pass async def _eq_check(self, ctx: commands.Context, player: lavalink.Player) -> None: diff --git a/redbot/cogs/audio/core/utilities/player.py b/redbot/cogs/audio/core/utilities/player.py index 2dc4e00d69f..fc5be22cd51 100644 --- a/redbot/cogs/audio/core/utilities/player.py +++ b/redbot/cogs/audio/core/utilities/player.py @@ -9,6 +9,8 @@ import lavalink from discord.embeds import EmptyEmbed +from lavalink import NodeNotFound, PlayerNotFound + from redbot.core import commands from redbot.core.i18n import Translator from redbot.core.utils import AsyncIter @@ -209,7 +211,7 @@ def _player_check(self, ctx: commands.Context) -> bool: try: lavalink.get_player(ctx.guild.id) return True - except (IndexError, KeyError): + except (NodeNotFound, PlayerNotFound): return False async def self_deafen(self, player: lavalink.Player) -> None: @@ -690,7 +692,7 @@ async def set_player_settings(self, ctx: commands.Context) -> None: async def maybe_move_player(self, ctx: commands.Context) -> bool: try: player = lavalink.get_player(ctx.guild.id) - except KeyError: + except PlayerNotFound: return False try: in_channel = sum(