public final void broadcastSmegaPacket(final MaplePacket data) {
        mutex.lock();
        try {
            final Iterator<MapleCharacter> itr = nameToChar.values().iterator();
            MapleCharacter chr;
            while (itr.hasNext()) {
                chr = itr.next();
                if (chr.getClient().isLoggedIn()
                        && !chr.isPsmega()
                        && !chr.isfake
                        && !chr.inCS()) {
                    chr.getClient().getSession().write(data);
                }
            }
        } finally {
            mutex.unlock();
        }
    }