public void OnLeavePlayer(LeavePlayer packet) { if (Player == null) { return; } lock (Sessions) { Sessions.Remove(this); if (Sessions.Count > 0) { Sessions.Broadcast(new LeavePlayer() { RootPlayerId = Sessions.First().Player.PlayerId, Player = Player }); } Console.Title = $"GSF.Ez, {Sessions.Count} user(s) online"; } var json = JsonConvert.SerializeObject(Player); File.WriteAllText("players\\" + Player.PlayerId, json); Player = null; }
private void ProcessLeavePlayer(LeavePlayer packet) { rootPlayerId = packet.RootPlayerId; isRootPlayer = packet.RootPlayerId == player.PlayerId; lock (players) players.Remove(packet.Player); if (onLeavePlayer != null) { AddTask(() => onLeavePlayer.Invoke(packet)); } if (onDesignatedRootPlayer != null && alreadyDesignated == false && player.PlayerId == rootPlayerId) { onDesignatedRootPlayer(); alreadyDesignated = true; } }