public static void UOGQuery(NetState state, PacketReader pvSrc) { byte cmd = pvSrc.ReadByte(); if (cmd != 0xFF) { return; } Console.WriteLine("Client {0} querying UOG status", state); string name = Core.Config.ServerName; if (name == null) { name = "SunUO Login"; } int age = 0; int clients = NetState.Instances.Count; int items = 0; int chars = 0; GameServerListConfig gsl = Core.Config.GameServerListConfig; if (gsl != null) { /* add values from game servers */ foreach (GameServerConfig gs in gsl.GameServers) { ServerStatus status = ServerQueryTimer.GetStatus(gs); if (status != null) { age += status.age; clients += status.clients; items += status.items; chars += status.chars; } } } string statStr = String.Format(", Name={0}, Age={1}, Clients={2}, Items={3}, Chars={4}, Mem={5}K", name, age, clients, items, chars, (int)(System.GC.GetTotalMemory(false) / 1024)); state.Send(new UOGInfo(statStr)); state.Dispose(); }
protected override void OnTick() { GameServerListConfig gsl = Core.Config.GameServerListConfig; if (gsl == null) { return; } Console.WriteLine("Querying game servers"); foreach (GameServerConfig gs in gsl.GameServers) { if (!gs.Query) { continue; } new ServerQuery(gs); } }