public static void Init() { if (Initialized) { return; } ReqOplParent = PacketHandlers.GetExtendedHandler(0x10); PacketHandlers.RegisterExtended(ReqOplParent.PacketID, ReqOplParent.Ingame, OnQueryProperties); ReqBatchOplParent = PacketHandlers.GetHandler(0xD6); PacketHandlers.Register( ReqBatchOplParent.PacketID, ReqBatchOplParent.Length, ReqBatchOplParent.Ingame, OnBatchQueryProperties); PacketHandlers.Register6017( ReqBatchOplParent.PacketID, ReqBatchOplParent.Length, ReqBatchOplParent.Ingame, OnBatchQueryProperties); OutParent0xD6 = OutgoingPacketOverrides.GetHandler(0xD6); OutgoingPacketOverrides.Register(0xD6, OnEncode0xD6); Initialized = true; }
public static void RegisterExtended(int packetID, OutgoingPacketOverrideHandler handler) { if (packetID >= 0 && packetID < 0x100) _ExtendedHandlersLow[packetID] = handler; else _ExtendedHandlersHigh[packetID] = handler; }
public void EncodeOutgoingPacket(NetState to, ref byte[] packetBuffer, ref int packetLength) { byte[] buffer; int bufferLength = 0; byte packetID; if (to.CompressionEnabled) { var firstByte = Decompressor.DecompressFirstByte(packetBuffer, packetLength); if (!firstByte.HasValue) { Utility.PushColor(ConsoleColor.Yellow); Console.WriteLine("Outgoing Packet Override: Unable to decompress packet!"); Utility.PopColor(); return; } packetID = firstByte.Value; } else { packetID = packetBuffer[0]; } OutgoingPacketOverrideHandler handler = GetHandler(packetID); if (handler == null) { handler = GetExtendedHandler(packetID); } if (handler != null) { if (to.CompressionEnabled) { Decompressor.DecompressAll(packetBuffer, packetLength, _UnpackBuffer, ref bufferLength); buffer = new byte[bufferLength]; Buffer.BlockCopy(_UnpackBuffer, 0, buffer, 0, bufferLength); } else { buffer = packetBuffer; bufferLength = packetLength; } handler(to, new PacketReader(buffer, packetLength, true), ref packetBuffer, ref packetLength); } if (_Successor != null) { _Successor.EncodeOutgoingPacket(to, ref packetBuffer, ref packetLength); } }
public static void RegisterExtended(int packetID, OutgoingPacketOverrideHandler handler) { if (packetID >= 0 && packetID < 0x100) { _ExtendedHandlersLow[packetID] = handler; } else { _ExtendedHandlersHigh[packetID] = handler; } }
public static void Register(int packetID, OutgoingPacketOverrideHandler handler) { _Handlers[packetID] = handler; }