public void save() {
		if (datacfg != null) {
			for (String key : datacfg.getKeys(false)) {
				datacfg.set(key, null);
			}
		}
		for (SellSign sign : mh.getSellSigns()) {
			Block b = sign.getBlock();
			String key = "SellSigns." + b.getWorld().getName() + "." + sign.getRegion().getId();
			datacfg.set(key + ".Type", sign.getType());
			datacfg.set(key + ".Account", sign.getOwner());
			datacfg.set(key + ".Price", sign.getPrice());
			datacfg.set(key + ".GP", sign.getGp().getID());
			datacfg.set(key + ".X", b.getX());
			datacfg.set(key + ".Y", b.getY());
			datacfg.set(key + ".Z", b.getZ());
		}
		for (RentSign sign : mh.getRentSigns()) {
			Block b = sign.getBlock();
			String key = "RentSigns." + b.getWorld().getName() + "." + sign.getRegion().getId();
			datacfg.set(key + ".Type", sign.getType());
			datacfg.set(key + ".Account", sign.getOwner());
			datacfg.set(key + ".Price", sign.getPrice());
			datacfg.set(key + ".Renter", sign.getRenter());
			datacfg.set(key + ".GP", sign.getGp().getID());
			datacfg.set(key + ".Intervall", sign.getIntervall());
			datacfg.set(key + ".Paytime", date.format(sign.getPaytime()));
			datacfg.set(key + ".X", b.getX());
			datacfg.set(key + ".Y", b.getY());
			datacfg.set(key + ".Z", b.getZ());
		}
		for (Globalprice gp : mh.getGlobalPrices()) {
			datacfg.set("GlobalPrices." + gp.getID(), gp.getPrice());
		}
		try {
			datacfg.save(dataFile);
		} catch (IOException e) {
		};
	}