public virtual void Send(uint packetId, object packet) { var cancel = SendHandler.HandlePacket(packetId, packet)?.Cancel ?? false; if (cancel) { return; } var ds = new DataStream { IsLittleEndian = false }; var ok = PacketsRegistry.Serialize(packetId, ds, packet); if (ok) { Send(packetId, ds); SendCompleteHandler.HandlePacket(packetId, packet); } else { Log.Error("Try to send unknown packet {0}", packetId); } }