private static string GetJson(WebStatsRequestFlags flags, bool forceUpdate) { if (UpdateJson(forceUpdate)) { if (flags != WebStatsRequestFlags.None && flags != WebStatsRequestFlags.All) { var root = new Dictionary <string, object>(); if (flags.HasFlag(WebStatsRequestFlags.Server)) { root["server"] = _Json.GetValue("server"); } if (flags.HasFlag(WebStatsRequestFlags.Stats)) { root["stats"] = _Json.GetValue("stats"); } if (flags.HasFlag(WebStatsRequestFlags.Players)) { root["players"] = _Json.GetValue("players"); } var response = Json.Encode(root); root.Clear(); return(response); } } return(flags == WebStatsRequestFlags.None ? String.Empty : JsonResponse); }
private static Dictionary <string, object> GetJson(WebStatsRequestFlags flags, bool forceUpdate) { var root = new Dictionary <string, object>(); if (UpdateJson(forceUpdate)) { if (flags != WebStatsRequestFlags.None && flags != WebStatsRequestFlags.All) { if (flags.HasFlag(WebStatsRequestFlags.Server)) { root["server"] = _Json.GetValue("server"); } if (flags.HasFlag(WebStatsRequestFlags.Stats)) { root["stats"] = _Json.GetValue("stats"); } } } return(root); }
private void SetRequestFlag(WebStatsRequestFlags flag, bool value) { if (flag == WebStatsRequestFlags.None) { RequestFlags = value ? flag : WebStatsRequestFlags.All; return; } if (flag == WebStatsRequestFlags.All) { RequestFlags = value ? flag : WebStatsRequestFlags.None; return; } if (value) { RequestFlags |= flag; } else { RequestFlags &= ~flag; } }
private bool GetRequestFlag(WebStatsRequestFlags flag) { return(RequestFlags.HasFlag(flag)); }
public static bool UpdateStats(bool forceUpdate) { if (!forceUpdate && _LastFlags == CMOptions.RequestFlags && DateTime.UtcNow - _LastUpdate < CMOptions.UpdateInterval) { return(false); } _LastUpdate = DateTime.UtcNow; _LastFlags = CMOptions.RequestFlags; var states = NetState.Instances.Where(ns => ns != null && ns.Socket != null && ns.Mobile != null).ToArray(); Snapshot.Clear(); foreach (var ns in states) { IPEndPoint ep = (IPEndPoint)ns.Socket.RemoteEndPoint; if (!Snapshot.ContainsKey(ep.Address)) { Snapshot.Add(ep.Address, new List <NetState>()); } Snapshot[ep.Address].Add(ns); } #region Uptime TimeSpan uptime = DateTime.UtcNow - Clock.ServerStart; Stats["uptime"].Value = uptime; if (Stats["uptime_peak"].Cast <TimeSpan>() < uptime) { Stats["uptime_peak"].Value = uptime; } #endregion #region Online int connected = states.Length; Stats["online"].Value = connected; if (Stats["online_max"].Cast <int>() < connected) { Stats["online_max"].Value = connected; } if (Stats["online_peak"].Cast <int>() < connected) { Stats["online_peak"].Value = connected; } #endregion #region Unique int unique = Snapshot.Count; Stats["unique"].Value = unique; if (Stats["unique_max"].Cast <int>() < unique) { Stats["unique_max"].Value = unique; } if (Stats["unique_peak"].Cast <int>() < unique) { Stats["unique_peak"].Value = unique; } #endregion #region Items int items = World.Items.Count; Stats["items"].Value = items; if (Stats["items_max"].Cast <int>() < items) { Stats["items_max"].Value = items; } if (Stats["items_peak"].Cast <int>() < items) { Stats["items_peak"].Value = items; } #endregion #region Mobiles int mobiles = World.Mobiles.Count; Stats["mobiles"].Value = mobiles; if (Stats["mobiles_max"].Cast <int>() < mobiles) { Stats["mobiles_max"].Value = mobiles; } if (Stats["mobiles_peak"].Cast <int>() < mobiles) { Stats["mobiles_peak"].Value = mobiles; } #endregion #region Guilds int guilds = BaseGuild.List.Count; Stats["guilds"].Value = guilds; if (Stats["guilds_max"].Cast <int>() < guilds) { Stats["guilds_max"].Value = guilds; } if (Stats["guilds_peak"].Cast <int>() < guilds) { Stats["guilds_peak"].Value = guilds; } #endregion return(true); }
public static bool UpdateStats(bool forceUpdate) { if (!forceUpdate && _LastFlags == CMOptions.RequestFlags && DateTime.UtcNow - _LastUpdate < CMOptions.UpdateInterval) { return false; } _LastUpdate = DateTime.UtcNow; _LastFlags = CMOptions.RequestFlags; var states = NetState.Instances.Where(ns => ns != null && ns.Socket != null && ns.Mobile != null).ToArray(); Snapshot.Clear(); foreach (var ns in states) { IPEndPoint ep = (IPEndPoint)ns.Socket.RemoteEndPoint; if (!Snapshot.ContainsKey(ep.Address)) { Snapshot.Add(ep.Address, new List<NetState>()); } Snapshot[ep.Address].Add(ns); } #region Uptime TimeSpan uptime = DateTime.UtcNow - Clock.ServerStart; Stats["uptime"].Value = uptime; if (Stats["uptime_peak"].Cast<TimeSpan>() < uptime) { Stats["uptime_peak"].Value = uptime; } #endregion #region Online int connected = states.Length; Stats["online"].Value = connected; if (Stats["online_max"].Cast<int>() < connected) { Stats["online_max"].Value = connected; } if (Stats["online_peak"].Cast<int>() < connected) { Stats["online_peak"].Value = connected; } #endregion #region Unique int unique = Snapshot.Count; Stats["unique"].Value = unique; if (Stats["unique_max"].Cast<int>() < unique) { Stats["unique_max"].Value = unique; } if (Stats["unique_peak"].Cast<int>() < unique) { Stats["unique_peak"].Value = unique; } #endregion #region Items int items = World.Items.Count; Stats["items"].Value = items; if (Stats["items_max"].Cast<int>() < items) { Stats["items_max"].Value = items; } if (Stats["items_peak"].Cast<int>() < items) { Stats["items_peak"].Value = items; } #endregion #region Mobiles int mobiles = World.Mobiles.Count; Stats["mobiles"].Value = mobiles; if (Stats["mobiles_max"].Cast<int>() < mobiles) { Stats["mobiles_max"].Value = mobiles; } if (Stats["mobiles_peak"].Cast<int>() < mobiles) { Stats["mobiles_peak"].Value = mobiles; } #endregion #region Guilds int guilds = BaseGuild.List.Count; Stats["guilds"].Value = guilds; if (Stats["guilds_max"].Cast<int>() < guilds) { Stats["guilds_max"].Value = guilds; } if (Stats["guilds_peak"].Cast<int>() < guilds) { Stats["guilds_peak"].Value = guilds; } #endregion return true; }
private bool GetRequestFlag(WebStatsRequestFlags flag) { return RequestFlags.HasFlag(flag); }
public static bool UpdateStats(bool forceUpdate) { if (_Updating) { return(false); } if (!forceUpdate && _LastFlags == CMOptions.RequestFlags && DateTime.UtcNow - _LastUpdate < CMOptions.UpdateInterval) { return(false); } _Updating = true; _LastUpdate = DateTime.UtcNow; _LastFlags = CMOptions.RequestFlags; var states = NetState.Instances.Where(ns => ns != null && ns.Socket != null && ns.Mobile != null).ToArray(); Snapshot.Clear(); foreach (var ns in states) { var ep = (IPEndPoint)ns.Socket.RemoteEndPoint; List <Mobile> ch; if (!Snapshot.TryGetValue(ep.Address, out ch) || ch == null) { Snapshot[ep.Address] = ch = new List <Mobile>(); } ch.Add(ns.Mobile); } TimeSpan time; long lnum; int num; #region Uptime var uptime = DateTime.UtcNow - Clock.ServerStart; Stats["uptime"].Value = uptime; Stats["uptime_peak"].Value = Stats["uptime_peak"].TryCast(out time) ? TimeSpan.FromSeconds(Math.Max(time.TotalSeconds, uptime.TotalSeconds)) : uptime; #endregion #region Online var connected = states.Length; Stats["online"].Value = connected; Stats["online_max"].Value = Stats["online_max"].TryCast(out num) ? Math.Max(num, connected) : connected; Stats["online_peak"].Value = Stats["online_peak"].TryCast(out num) ? Math.Max(num, connected) : connected; #endregion #region Unique var unique = Snapshot.Count; Stats["unique"].Value = unique; Stats["unique_max"].Value = Stats["unique_max"].TryCast(out num) ? Math.Max(num, unique) : unique; Stats["unique_peak"].Value = Stats["unique_peak"].TryCast(out num) ? Math.Max(num, unique) : unique; #endregion #region Items var items = World.Items.Count; Stats["items"].Value = items; Stats["items_max"].Value = Stats["items_max"].TryCast(out num) ? Math.Max(num, items) : items; Stats["items_peak"].Value = Stats["items_peak"].TryCast(out num) ? Math.Max(num, items) : items; #endregion #region Mobiles var mobiles = World.Mobiles.Count; Stats["mobiles"].Value = mobiles; Stats["mobiles_max"].Value = Stats["mobiles_max"].TryCast(out num) ? Math.Max(num, mobiles) : mobiles; Stats["mobiles_peak"].Value = Stats["mobiles_peak"].TryCast(out num) ? Math.Max(num, mobiles) : mobiles; #endregion #region Guilds var guilds = BaseGuild.List.Count; Stats["guilds"].Value = guilds; Stats["guilds_max"].Value = Stats["guilds_max"].TryCast(out num) ? Math.Max(num, guilds) : guilds; Stats["guilds_peak"].Value = Stats["guilds_peak"].TryCast(out num) ? Math.Max(num, guilds) : guilds; #endregion #region Misc var ram = GC.GetTotalMemory(false); Stats["memory"].Value = ram; Stats["memory_max"].Value = Stats["memory_max"].TryCast(out lnum) ? Math.Max(lnum, ram) : ram; Stats["memory_peak"].Value = Stats["memory_peak"].TryCast(out lnum) ? Math.Max(lnum, ram) : ram; #endregion _Updating = false; return(true); }
private static string GetJson(WebStatsRequestFlags flags, bool forceUpdate) { if (UpdateJson(forceUpdate)) { if (flags != WebStatsRequestFlags.None && flags != WebStatsRequestFlags.All) { var root = new Dictionary<string, object>(); if (flags.HasFlag(WebStatsRequestFlags.Server)) { root["server"] = _Json.GetValue("server"); } if (flags.HasFlag(WebStatsRequestFlags.Stats)) { root["stats"] = _Json.GetValue("stats"); } if (flags.HasFlag(WebStatsRequestFlags.Players)) { root["players"] = _Json.GetValue("players"); } var response = Json.Encode(root); root.Clear(); return response; } } return flags == WebStatsRequestFlags.None ? String.Empty : JsonResponse; }
public static bool UpdateStats(bool forceUpdate) { if (_Updating) { return false; } if (!forceUpdate && _LastFlags == CMOptions.RequestFlags && DateTime.UtcNow - _LastUpdate < CMOptions.UpdateInterval) { return false; } _Updating = true; _LastUpdate = DateTime.UtcNow; _LastFlags = CMOptions.RequestFlags; var states = NetState.Instances.Where(ns => ns != null && ns.Socket != null && ns.Mobile != null).ToArray(); Snapshot.Clear(); foreach (var ns in states) { var ep = (IPEndPoint)ns.Socket.RemoteEndPoint; List<Mobile> ch; if (!Snapshot.TryGetValue(ep.Address, out ch) || ch == null) { Snapshot[ep.Address] = ch = new List<Mobile>(); } ch.Add(ns.Mobile); } TimeSpan time; long lnum; int num; #region Uptime var uptime = DateTime.UtcNow - Clock.ServerStart; Stats["uptime"].Value = uptime; Stats["uptime_peak"].Value = Stats["uptime_peak"].TryCast(out time) ? TimeSpan.FromSeconds(Math.Max(time.TotalSeconds, uptime.TotalSeconds)) : uptime; #endregion #region Online var connected = states.Length; Stats["online"].Value = connected; Stats["online_max"].Value = Stats["online_max"].TryCast(out num) ? Math.Max(num, connected) : connected; Stats["online_peak"].Value = Stats["online_peak"].TryCast(out num) ? Math.Max(num, connected) : connected; #endregion #region Unique var unique = Snapshot.Count; Stats["unique"].Value = unique; Stats["unique_max"].Value = Stats["unique_max"].TryCast(out num) ? Math.Max(num, unique) : unique; Stats["unique_peak"].Value = Stats["unique_peak"].TryCast(out num) ? Math.Max(num, unique) : unique; #endregion #region Items var items = World.Items.Count; Stats["items"].Value = items; Stats["items_max"].Value = Stats["items_max"].TryCast(out num) ? Math.Max(num, items) : items; Stats["items_peak"].Value = Stats["items_peak"].TryCast(out num) ? Math.Max(num, items) : items; #endregion #region Mobiles var mobiles = World.Mobiles.Count; Stats["mobiles"].Value = mobiles; Stats["mobiles_max"].Value = Stats["mobiles_max"].TryCast(out num) ? Math.Max(num, mobiles) : mobiles; Stats["mobiles_peak"].Value = Stats["mobiles_peak"].TryCast(out num) ? Math.Max(num, mobiles) : mobiles; #endregion #region Guilds var guilds = BaseGuild.List.Count; Stats["guilds"].Value = guilds; Stats["guilds_max"].Value = Stats["guilds_max"].TryCast(out num) ? Math.Max(num, guilds) : guilds; Stats["guilds_peak"].Value = Stats["guilds_peak"].TryCast(out num) ? Math.Max(num, guilds) : guilds; #endregion #region Misc var ram = GC.GetTotalMemory(false); Stats["memory"].Value = ram; Stats["memory_max"].Value = Stats["memory_max"].TryCast(out lnum) ? Math.Max(lnum, ram) : ram; Stats["memory_peak"].Value = Stats["memory_peak"].TryCast(out lnum) ? Math.Max(lnum, ram) : ram; #endregion _Updating = false; return true; }