public static boolean warpStartDojo(final MapleCharacter c, final boolean party, final MapleMap currentmap) {
        int stage = 1;
        if (party || stage <= -1 || stage > 38) {
            stage = 1;
        }
        int mapid = currentmap.getId();//925020000 + (stage * 100);
        boolean canenter = false;
        final ChannelServer ch = c.getClient().getChannelServer();
        for (int x = 0; x < 10; x++) { //15 maps each stage
            boolean canenterr = true;
            for (int i = 1; i <= 47; i++) { //only 40 stages, but 47 maps
                MapleMap map = ch.getMapFactory().getMap(925020000 + 100 * i + x);//normal mode
                if (map.getCharactersSize() > 0) {
                    canenterr = false;
                    break;
                } else {
                    clearMap(map, false);
                }
            }
            if (canenterr) {
                canenter = true;
                mapid += x;
                break;
            }
        }
        for (int x = 0; x < 10; x++) { //15 maps each stage // make this better.....
            boolean canenterr = true;
            for (int i = 1; i <= 47; i++) { //only 40 stages, but 47 maps
                MapleMap map = ch.getMapFactory().getMap(925030000 + 100 * i + x);//hard mode
                if (map.getCharactersSize() > 0) {
                    canenterr = false;
                    break;
                } else {
                    clearMap(map, false);
                }
            }
            if (canenterr) {
                canenter = true;
                mapid += x;
                break;
            }
        }
        final MapleMap map = ch.getMapFactory().getMap(mapid);
        final MapleMap mapidd = c.getMap();
        if (canenter) {
            if (party && c.getParty() != null) {
                for (MaplePartyCharacter mem : c.getParty().getMembers()) {
                    MapleCharacter chr = mapidd.getCharacterById(mem.getId());
                    if (chr != null && chr.isAlive()) {
                        chr.changeMap(map, map.getPortal(0));
                    }
                }
            } else {
                c.changeMap(map, map.getPortal(0));
            }
            spawnMonster(map, stage);
        }
        return canenter;
    }