private static void LeafAdmin(Leaf leaf, TCPPacketReader packet) { if (leaf.LoginPhase != LinkLogin.Ready) { leaf.SendPacket(HubOutbound.LinkError(LinkError.BadProtocol)); leaf.Disconnect(); return; } uint target_ident = packet; Leaf l = LeafPool.Leaves.Find(x => x.Ident == target_ident && x.LoginPhase == LinkLogin.Ready); if (l != null) { String sender_name = packet.ReadString(leaf); LinkUser admin = leaf.Users.Find(x => x.Name == sender_name); String target_name = packet.ReadString(leaf); LinkUser target = l.Users.Find(x => x.Name == target_name); if (admin != null && target_name != null) { String command = packet.ReadString(leaf); String args = packet.ReadString(leaf); l.SendPacket(HubOutbound.HubAdmin(l, admin, command, target, args)); } } }