diff --git a/redbot/cogs/audio/core/abc.py b/redbot/cogs/audio/core/abc.py index 13c601df1..0e3d4e357 100644 --- a/redbot/cogs/audio/core/abc.py +++ b/redbot/cogs/audio/core/abc.py @@ -352,7 +352,7 @@ class MixinMeta(ABC): @abstractmethod async def _maybe_update_playlist( - self, ctx: commands.Context, player: lavalink.player_manager.Player, playlist: "Playlist" + self, ctx: commands.Context, player: lavalink.player.Player, playlist: "Playlist" ) -> Tuple[List[lavalink.Track], List[lavalink.Track], "Playlist"]: raise NotImplementedError() @@ -424,7 +424,7 @@ class MixinMeta(ABC): @abstractmethod async def get_localtrack_folder_tracks( - self, ctx, player: lavalink.player_manager.Player, query: "Query" + self, ctx, player: lavalink.player.Player, query: "Query" ) -> List[lavalink.rest_api.Track]: raise NotImplementedError() @@ -475,7 +475,7 @@ class MixinMeta(ABC): self, ctx: commands.Context, queue: list, - player: lavalink.player_manager.Player, + player: lavalink.player.Player, page_num: int, ) -> discord.Embed: raise NotImplementedError() @@ -500,7 +500,7 @@ class MixinMeta(ABC): async def fetch_playlist_tracks( self, ctx: commands.Context, - player: lavalink.player_manager.Player, + player: lavalink.player.Player, query: "Query", skip_cache: bool = False, ) -> Union[discord.Message, None, List[MutableMapping]]: @@ -534,7 +534,7 @@ class MixinMeta(ABC): self, ctx: commands.Context, uploaded_track_list, - player: lavalink.player_manager.Player, + player: lavalink.player.Player, playlist_url: str, uploaded_playlist_name: str, scope: str, diff --git a/redbot/cogs/audio/core/events/cog.py b/redbot/cogs/audio/core/events/cog.py index 0638dbc1a..48dca0ffb 100644 --- a/redbot/cogs/audio/core/events/cog.py +++ b/redbot/cogs/audio/core/events/cog.py @@ -208,7 +208,7 @@ class AudioEvents(MixinMeta, metaclass=CompositeMetaClass): if notify_channel and has_perms and not player.fetch("autoplay_notified", False): if ( - len(player.manager.players) < 10 + len(player.node.players) < 10 or not player._last_resume and player._last_resume + datetime.timedelta(seconds=60) > datetime.datetime.now(tz=datetime.timezone.utc) diff --git a/redbot/cogs/audio/core/events/lavalink.py b/redbot/cogs/audio/core/events/lavalink.py index 022d60be4..04d50a3c7 100644 --- a/redbot/cogs/audio/core/events/lavalink.py +++ b/redbot/cogs/audio/core/events/lavalink.py @@ -7,7 +7,6 @@ from typing import Dict import discord import lavalink from discord.backoff import ExponentialBackoff -from discord.gateway import DiscordWebSocket from red_commons.logging import getLogger from redbot.core.i18n import Translator, set_contextual_locales_from_guild @@ -100,7 +99,7 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass): exc_info=exc, ) return - if not player.manager.node.ready: + if not player.node.ready: log.debug("Player node is not ready discarding event") log.verbose( "Received a new discard lavalink event for %s: %s: %r", guild_id, event_type, extra @@ -340,14 +339,13 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass): disconnect: bool, ) -> None: guild_id = guild.id + shard = self.bot.shards[guild.shard_id] event_channel_id = extra.get("channelID") try: if not self._ws_resume[guild_id].is_set(): await self._ws_resume[guild_id].wait() else: self._ws_resume[guild_id].clear() - node = player.node - voice_ws: DiscordWebSocket = node.get_voice_ws(guild_id) code = extra.get("code") by_remote = extra.get("byRemote", "") reason = extra.get("reason", "No Specified Reason").strip() @@ -387,7 +385,7 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass): self._ws_op_codes[guild_id]._init(self._ws_op_codes[guild_id]._maxsize) return - if voice_ws.socket._closing or voice_ws.socket.closed or not voice_ws.open: + if shard.is_closed(): if player._con_delay: delay = player._con_delay.delay() else: @@ -399,7 +397,7 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass): "Socket Closed %s. " "Code: %s -- Remote: %s -- %s, %r", guild_id, - voice_ws.socket._closing or voice_ws.socket.closed, + shard.is_closed(), code, by_remote, reason, @@ -412,8 +410,7 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass): delay, ) await asyncio.sleep(delay) - while voice_ws.socket._closing or voice_ws.socket.closed or not voice_ws.open: - voice_ws = node.get_voice_ws(guild_id) + while shard.is_closed(): await asyncio.sleep(0.1) if has_perm and player.current and player.is_playing: diff --git a/redbot/cogs/audio/core/tasks/lavalink.py b/redbot/cogs/audio/core/tasks/lavalink.py index 57deb084d..d3c961030 100644 --- a/redbot/cogs/audio/core/tasks/lavalink.py +++ b/redbot/cogs/audio/core/tasks/lavalink.py @@ -106,7 +106,7 @@ class LavalinkTasks(MixinMeta, metaclass=CompositeMetaClass): bot=self.bot, host=host, password=password, - ws_port=port, + port=port, timeout=timeout, resume_key=f"Red-Core-Audio-{self.bot.user.id}-{data_manager.instance_name}", secured=secured, diff --git a/redbot/cogs/audio/core/utilities/local_tracks.py b/redbot/cogs/audio/core/utilities/local_tracks.py index 51e64f6d6..f4a42bae2 100644 --- a/redbot/cogs/audio/core/utilities/local_tracks.py +++ b/redbot/cogs/audio/core/utilities/local_tracks.py @@ -51,7 +51,7 @@ class LocalTrackUtilities(MixinMeta, metaclass=CompositeMetaClass): ) async def get_localtrack_folder_tracks( - self, ctx, player: lavalink.player_manager.Player, query: Query + self, ctx, player: lavalink.player.Player, query: Query ) -> List[lavalink.rest_api.Track]: """Return a list of tracks per the provided query.""" if not await self.localtracks_folder_exists(ctx) or self.api_interface is None: diff --git a/redbot/cogs/audio/core/utilities/playlists.py b/redbot/cogs/audio/core/utilities/playlists.py index 4a5302a3b..f8a94a5f6 100644 --- a/redbot/cogs/audio/core/utilities/playlists.py +++ b/redbot/cogs/audio/core/utilities/playlists.py @@ -399,7 +399,7 @@ class PlaylistUtilities(MixinMeta, metaclass=CompositeMetaClass): self, ctx: commands.Context, uploaded_track_list, - player: lavalink.player_manager.Player, + player: lavalink.player.Player, playlist_url: str, uploaded_playlist_name: str, scope: str, @@ -481,7 +481,7 @@ class PlaylistUtilities(MixinMeta, metaclass=CompositeMetaClass): await playlist_msg.edit(embed=embed3) async def _maybe_update_playlist( - self, ctx: commands.Context, player: lavalink.player_manager.Player, playlist: Playlist + self, ctx: commands.Context, player: lavalink.player.Player, playlist: Playlist ) -> Tuple[List[lavalink.Track], List[lavalink.Track], Playlist]: if getattr(playlist, "id", 0) == 42069: _, updated_tracks = await self._get_bundled_playlist_tracks() @@ -580,7 +580,7 @@ class PlaylistUtilities(MixinMeta, metaclass=CompositeMetaClass): async def fetch_playlist_tracks( self, ctx: commands.Context, - player: lavalink.player_manager.Player, + player: lavalink.player.Player, query: Query, skip_cache: bool = False, ) -> Union[discord.Message, None, List[MutableMapping]]: diff --git a/redbot/cogs/audio/core/utilities/queue.py b/redbot/cogs/audio/core/utilities/queue.py index db710931a..0024a56b0 100644 --- a/redbot/cogs/audio/core/utilities/queue.py +++ b/redbot/cogs/audio/core/utilities/queue.py @@ -26,7 +26,7 @@ class QueueUtilities(MixinMeta, metaclass=CompositeMetaClass): self, ctx: commands.Context, queue: list, - player: lavalink.player_manager.Player, + player: lavalink.player.Player, page_num: int, ) -> discord.Embed: shuffle = await self.config.guild(ctx.guild).shuffle() diff --git a/setup.cfg b/setup.cfg index 8dfaae98b..7016d0064 100644 --- a/setup.cfg +++ b/setup.cfg @@ -67,7 +67,7 @@ install_requires = pytz==2021.1 PyYAML==5.4.1 Red-Commons==1.0.0 - Red-Lavalink==0.10.0 + Red-Lavalink==0.11.0rc0 rich==10.9.0 schema==0.7.4 six==1.16.0