internal void RegisterDefaultPacketHandler(IPacket packet, PacketHandler handler) { if (packet == null) { throw new ArgumentNullException("packet"); } if (handler == null) { throw new ArgumentNullException("handler"); } DefaultPacketHandlers.Add(packet.ID, handler); }
private void Dispose(bool disposing) { if (m_Disposed) { return; } if (disposing) { KeepAliveManager.Dispose(); NetworkManager.Dispose(); PluginManager.Dispose(); PacketHandlers.Clear(); DefaultPacketHandlers.Clear(); } m_Disposed = true; }
private void OnPacketReceived(object sender, PacketReceivedEventArgs e) { if (e.Exception == null) { PacketLog.LogData(e.Packet, PacketDirection.Client); var defaultHandler = (PacketHandler)null; var handler = (PacketHandler)null; if (DefaultPacketHandlers.TryGetValue(e.Packet.ID, out defaultHandler)) { defaultHandler(this, e.Packet); // use default handler } if (PacketHandlers.TryGetValue(e.Packet.ID, out handler)) { handler(this, e.Packet); // use custom handler } } else { Console.WriteLine("Failed to read packet: {0}", e.Exception.Message); } }