public static void OnReceive(NetState state, PacketReader pvSrc) { byte cmd = pvSrc.ReadByte(); if (cmd == 0x02) { Authenticate(state, pvSrc); } else if (cmd == 0xFF) { string statStr = String.Format(", Name={0}, Age={1}, Clients={2}, Items={3}, Chars={4}, Mem={5}K", Server.Misc.ServerList.ServerName, (int)(DateTime.Now - Server.Items.Clock.ServerStart).TotalHours, NetState.Instances.Count, World.Items.Count, World.Mobiles.Count, (int)(System.GC.GetTotalMemory(false) / 1024)); state.Send(new UOGInfo(statStr)); state.Dispose(); } else if (!IsAuth(state)) { Console.WriteLine("ADMIN: Unauthorized packet from {0}, disconnecting", state); Disconnect(state); } else { if (!RemoteAdminHandlers.Handle(cmd, state, pvSrc)) { Disconnect(state); } } }
private static void StaffChat(NetState state, PacketReader pvSrc) // 0x0B { Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); string message = pvSrc.ReadUnicodeString(); if (from != null && message.Length > 0) { CommandHandlers.StaffChat(from, message); } }
private static void Broadcast(NetState state, PacketReader pvSrc) // 0x0A { Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); string message = pvSrc.ReadUnicodeString(); if (from != null && message.Length > 0) { World.Broadcast(0x482, true, String.Format("Staff message from {0}:", from.Name)); World.Broadcast(0x482, true, message); } }
private static void Pages(NetState state, PacketReader pvSrc) // 0x08 { ArrayList list = PageQueue.List; int identifier = pvSrc.ReadInt32(); byte subID = pvSrc.ReadByte(); Mobile sender = World.FindMobile(identifier); if (sender == null) { return; } PageEntry e = PageQueue.GetEntry(sender); if (e == null) // no such page { return; } switch (subID) { case 0x01: // Handle { bool handle = pvSrc.ReadBoolean(); Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); if (from != null && (e.Handler == null || e.Handler == from)) { e.Handler = handle ? from : null; } //Console.WriteLine( "Handle: {0} handler: {1}", handle, from != null ? from.Name : "none" ); break; } case 0x02: // Remove { PageQueue.Remove(e); break; } case 0x03: // Predefined { byte messageIndex = pvSrc.ReadByte(); Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); ArrayList preresp = PredefinedResponse.List; if (from != null && messageIndex >= 0 && messageIndex < preresp.Count) { e.Sender.SendGump(new MessageSentGump(e.Sender, from.Name, ((PredefinedResponse)preresp[messageIndex]).Message)); } break; } case 0x04: // Answer { Mobile from = RemoteAdminHandlers.ConfirmMobile((Account)state.Account, pvSrc.ReadInt32()); string message = pvSrc.ReadString(); if (from != null) { e.Sender.SendGump(new MessageSentGump(e.Sender, from.Name, message)); } break; } } }