From 5312a729e911147423628a01fbdde04c2bbae0ea Mon Sep 17 00:00:00 2001 From: Rafael Vargas Date: Thu, 24 Feb 2022 16:09:45 -0400 Subject: [PATCH] Stability Commit with connections to Discord user --- vulkan/commands/Music.py | 15 +++++++++++++-- vulkan/music/Player.py | 11 ++++++++++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/vulkan/commands/Music.py b/vulkan/commands/Music.py index cf949d5..41b9c2a 100644 --- a/vulkan/commands/Music.py +++ b/vulkan/commands/Music.py @@ -16,7 +16,10 @@ class Music(commands.Cog): async def on_ready(self) -> None: """Load a player for each guild that the Bot are""" for guild in self.__bot.guilds: - self.__guilds[guild] = Player(self.__bot, guild) + player = Player(self.__bot, guild) + await player.force_stop() + self.__guilds[guild] = player + print(f'Player for guild {guild.name} created') @commands.Cog.listener() @@ -175,10 +178,18 @@ class Music(commands.Cog): @commands.command(name='reset', help=help.HELP_RESET, description=help.HELP_RESET_LONG, aliases=['resetar']) async def reset(self, ctx) -> None: player = self.__get_player(ctx) - if player != None: + try: + await player.force_stop() await player.stop() + self.__guilds[ctx.guild] = Player(self.__bot, ctx.guild) + player = self.__get_player(ctx) + player.force_stop() + except Exception as e: + print('Reset Error: {e}') self.__guilds[ctx.guild] = Player(self.__bot, ctx.guild) + player = self.__get_player(ctx) + print(f'Player for guild {ctx.guild} created') async def __send_embed(self, ctx, title='', description='', colour='grey') -> None: try: diff --git a/vulkan/music/Player.py b/vulkan/music/Player.py index 21536d2..c429166 100644 --- a/vulkan/music/Player.py +++ b/vulkan/music/Player.py @@ -244,6 +244,15 @@ class Player(commands.Cog): await self.__guild.voice_client.disconnect() return True + async def force_stop(self) -> None: + try: + self.__guild.voice_client.stop() + await self.__guild.voice_client.disconnect() + self.__playlist.clear() + self.__playlist.loop_off() + except Exception as e: + print(f'Force Stop Error: {e}') + async def pause(self) -> bool: if self.__guild.voice_client == None: return False @@ -339,7 +348,7 @@ class Player(commands.Cog): result = self.__playlist.remove_song(position) return result - def __format_embed(self, info=dict, title='', position='Playing Now') -> discord.Embed: + def __format_embed(self, info: dict, title='', position='Playing Now') -> discord.Embed: """Configure the embed to show the song information""" embedvc = discord.Embed( title=title,