using FSO.Server.Protocol.Voltron.Packets; using System; using System.Collections.Generic; namespace FSO.Server.Protocol.Voltron { public class VoltronPackets { public static Dictionary VOLTRON_PACKET_BY_TYPEID; public static Type[] VOLTRON_PACKETS = new Type[] { typeof(ClientOnlinePDU), typeof(HostOnlinePDU), typeof(SetIgnoreListPDU), typeof(SetIgnoreListResponsePDU), typeof(SetInvinciblePDU), typeof(RSGZWrapperPDU), typeof(TransmitCreateAvatarNotificationPDU), typeof(DataServiceWrapperPDU), typeof(DBRequestWrapperPDU), typeof(OccupantArrivedPDU), typeof(ClientByePDU), typeof(ServerByePDU), typeof(FindPlayerPDU), typeof(FindPlayerResponsePDU), typeof(ChatMsgPDU), typeof(AnnouncementMsgPDU) }; static VoltronPackets() { VOLTRON_PACKET_BY_TYPEID = new Dictionary(); foreach (Type packetType in VOLTRON_PACKETS) { IVoltronPacket packet = (IVoltronPacket)Activator.CreateInstance(packetType); VOLTRON_PACKET_BY_TYPEID.Add(packet.GetPacketType().GetPacketCode(), packetType); } } public static Type GetByPacketCode(ushort code) { if (VOLTRON_PACKET_BY_TYPEID.ContainsKey(code)) { return VOLTRON_PACKET_BY_TYPEID[code]; } else { return null; } } } }