public void OnShutdown() { foreach (Player player in Players.Values) { if (serverData.ContainsKey("OfflinePlayers", player.SteamID)) { OfflinePlayer op = serverData.Get("OfflinePlayers", player.SteamID) as OfflinePlayer; op.Update(player); OfflinePlayers[player.GameID] = op; } else { OfflinePlayer op = new OfflinePlayer(player); OfflinePlayers.Add(player.GameID, op); } } foreach (OfflinePlayer op2 in OfflinePlayers.Values) { serverData.Add("OfflinePlayers", op2.SteamID, op2); } serverData.Save(); Util.GetInstance().SaveZones(); Util.GetInstance().ZoneStore.Save(); }
// BasePlayer.OnDisconnected() public static void On_PlayerDisconnected(BasePlayer player) { var p = Server.GetPlayer(player); if (Server.GetInstance().serverData.ContainsKey("OfflinePlayers", p.SteamID)) { OfflinePlayer op = (Server.GetInstance().serverData.Get("OfflinePlayers", p.SteamID) as OfflinePlayer); op.Update(p); Server.GetInstance().OfflinePlayers[player.userID] = op; } else { OfflinePlayer op = new OfflinePlayer(p); Server.GetInstance().OfflinePlayers.Add(player.userID, op); } if (Server.GetInstance().Players.ContainsKey(player.userID)) { Server.GetInstance().Players.Remove(player.userID); } OnNext("On_PlayerDisconnected", p); }