private static void LeafCustomDataTo(Leaf leaf, TCPPacketReader packet) { if (leaf.LoginPhase != LinkLogin.Ready) { leaf.SendPacket(HubOutbound.LinkError(LinkError.BadProtocol)); leaf.Disconnect(); return; } uint leaf_ident = packet; Leaf l = LeafPool.Leaves.Find(x => x.Ident == leaf_ident && x.LoginPhase == LinkLogin.Ready); if (l != null) { String sender = packet.ReadString(leaf); String target = packet.ReadString(leaf); String ident = packet.ReadString(leaf); byte[] data = packet; l.SendPacket(HubOutbound.HubCustomDataTo(l, sender, target, ident, data)); } }