diff --git a/backend/api/websocket.go b/backend/api/websocket.go index b239a87..21659ea 100644 --- a/backend/api/websocket.go +++ b/backend/api/websocket.go @@ -64,6 +64,10 @@ func unpackData(datas []any, target interface{}) bool { } func verifyPlayerIsActivePlayer(room *types.Room, target *types.Player) bool { + if target.Connection.Socket == nil { + return false + } + if room.GameState != types.StateRunning { target.Connection.Socket.Emit("Status", types.S2C_Status{ IsError: true, diff --git a/backend/game/game.go b/backend/game/game.go index f8582d7..b17a4b2 100644 --- a/backend/game/game.go +++ b/backend/game/game.go @@ -141,6 +141,9 @@ func OnPlayerStateUpdate(room *types.Room, player *types.Player, skipDBUpdate bo if !skipDBUpdate { db.Conn.UpdateRoom(room) } + if player.Connection.Socket == nil { + return + } player.Connection.Socket.Emit("OwnCards", types.BuildOwnCardsPacket(room, player)) BroadcastInRoom(room, "PlayerState", types.BuildPlayerStatePacket(room, player)) }