public final void broadcast(final byte[] packet, final int exceptionId, final FCOp bcop, List<Integer> cids) {
        //passing null to cids will ensure all
        buildNotifications();
        if (members.size() < 2) {
            bDirty = true;
            return;
        }
        for (MapleFamilyCharacter mgc : members.values()) {
            if (cids == null || cids.contains(mgc.getId())) {
                if (bcop == FCOp.DISBAND) {
                    if (mgc.isOnline()) {
                        World.Family.setFamily(0, 0, 0, 0, mgc.getCurrentRep(), mgc.getTotalRep(), mgc.getId());
                    } else {
                        setOfflineFamilyStatus(0, 0, 0, 0, mgc.getCurrentRep(), mgc.getTotalRep(), mgc.getId());
                    }
                } else if (mgc.isOnline() && mgc.getId() != exceptionId) {
                    World.Broadcast.sendFamilyPacket(mgc.getId(), packet, exceptionId, id);
                }
            }
        }

    }