docs: async def disconnect(self, requested=True):
          """
          Disconnects this player from it's voice channel.
          """
          if self.state == PlayerState.DISCONNECTING:
              return
  
          await self.update_state(PlayerState.DISCONNECTING)
          if not requested:
              log.debug(
                  f"Forcing player disconnect for guild {self.channel.guild.id}"
                  f" due to player manager request."
              )
  
          guild_id = self.channel.guild.id
          voice_ws = self.node.get_voice_ws(guild_id)
  
          if not voice_ws.closed:
              await voice_ws.voice_state(guild_id, None)
  
          await self.node.destroy_guild(guild_id)
          await self.close()
  
          self.manager.remove_player(self)