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)
Disconnects this player from it's voice channel.