Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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;
            }
        }
Example #4
0
		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;
			}
		}
Example #5
0
 private bool GetRequestFlag(WebStatsRequestFlags flag)
 {
     return(RequestFlags.HasFlag(flag));
 }
Example #6
0
        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);
        }
Example #7
0
		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;
		}
Example #8
0
		private bool GetRequestFlag(WebStatsRequestFlags flag)
		{
			return RequestFlags.HasFlag(flag);
		}
Example #9
0
        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);
        }
Example #10
0
		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;
		}
Example #11
0
		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;
		}