diff --git a/src-server/Server/Communication/Handler.hs b/src-server/Server/Communication/Handler.hs index e806841..7e1095f 100644 --- a/src-server/Server/Communication/Handler.hs +++ b/src-server/Server/Communication/Handler.hs @@ -67,8 +67,11 @@ handleMessage stateContainer readerContainer msg = do currentPlayers <- STM.atomically $ STM.readTMVar (scPlayers stateContainer) let newPlayers = filter (\p -> playerId p /= clientId) currentPlayers void $ STM.atomically $ STM.swapTMVar (scPlayers stateContainer) newPlayers - let client = find (\a -> csUUID a == Just clientId) socks - dropClient curLevel socketList queueList (csSocket $ fromJust client) + let mclient = find (\a -> csUUID a == Just clientId) socks + maybe + (logPrintIO curLevel Warning $ "unknown client: " <> show clientId) + (dropClient curLevel socketList queueList . csSocket) + mclient logPrintIO curLevel Info $ "client has quit the game: " <> show clientId ClientRequestWizard -> do let arena = rcMap readerContainer