void saveAll() {
        YamlConfiguration dc = new YamlConfiguration();
        File sv = new File(getDataFolder(), "dragons.sav");
        if (!sv.exists()) {
            getDataFolder().mkdirs();
            try {
                sv.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        for (Entry<String, LivingEntity> e : dragons.entrySet()) {
            String p = e.getKey();
            V10Dragon d = (V10Dragon) ((CraftLivingEntity) e.getValue()).getHandle();
            dc.set(p + ".world", d.world.getWorld().getName());
            dc.set(p + ".x", d.locX);
            dc.set(p + ".y", d.locY);
            dc.set(p + ".z", d.locZ);
            dc.set(p + ".yaw", d.yaw);
            dc.set(p + ".lived", d.ticksLived);
            dc.set(p + ".food", d.fl);

        }
        try {
            dc.save(sv);
        } catch (IOException e) {
            getLogger().info("WARNING: Couldn't save!");
            e.printStackTrace();
        }
        if (!saveChanged) {
            return;
        }
        for (Entry<String, Integer> e : mh.entrySet()) {
            config.set("heights." + e.getKey(), e.getValue());
        }
        ArrayList<String> sg = new ArrayList<>(stopGrief);
        config.set("FullProtect", sg);
        config.set("Factions", factions);
        config.set("RideSpeed", rideSpeed);
        config.set("Lifetime", lifetime);
        if (economy != null) {
            config.set("DragonCost", price);
        }
        config.set("Silence", silence);
        saveConfig();
        config.set("heights", null);
        saveChanged = false;
    }