From: Marcel van der Veldt Date: Fri, 19 Dec 2025 16:29:00 +0000 (+0100) Subject: Fix player removal event sent when player only temporary unavailable (#2856) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=73d4650c70cfda9b230e1eef4348521c4ae93834;p=music-assistant-server.git Fix player removal event sent when player only temporary unavailable (#2856) --- diff --git a/music_assistant/controllers/players/player_controller.py b/music_assistant/controllers/players/player_controller.py index 40a6da6a..263976a7 100644 --- a/music_assistant/controllers/players/player_controller.py +++ b/music_assistant/controllers/players/player_controller.py @@ -1412,12 +1412,22 @@ class PlayerController(CoreController): return await self._cleanup_player_memberships(player_id) del self._players[player_id] - self.logger.info("Player removed: %s", player.name) self.mass.player_queues.on_player_remove(player_id, permanent=permanent) await player.on_unload() if permanent: + # player permanent removal: delete its config + # and signal PLAYER_REMOVED event self.delete_player_config(player_id) - self.mass.signal_event(EventType.PLAYER_REMOVED, player_id) + self.logger.info("Player removed: %s", player.name) + self.mass.signal_event(EventType.PLAYER_REMOVED, player_id) + else: + # temporary unavailable: mark player as unavailable + # note: the player will be re-registered later if it comes back online + player.state.available = False + self.logger.info("Player unavailable: %s", player.name) + self.mass.signal_event( + EventType.PLAYER_UPDATED, object_id=player.player_id, data=player.state + ) @api_command("players/remove", required_role="admin") async def remove(self, player_id: str) -> None: