public void saveItemKits() {
		File dataFile = this.getDataFile();
		if (dataFile == null) {
			this.log("Error with data file. Nothing will be saved!");
			return;
		}

		String settingStr = "";
		boolean useSeparator = false;

		itemKitProperties.clear();

		for (String s : itemKitPresets.keySet()) {
			ItemStack[] curStackList = itemKitPresets.get(s);

			settingStr = "";
			useSeparator = false;

			for (int i=0; i < curStackList.length; ++i) {
				ItemStack curStackItem = curStackList[i];

				if (curStackItem == null) {
					continue;
				}

				if (useSeparator) {
					settingStr += ",";
				}
				else {
					useSeparator = true;
				}

				settingStr += "" + i + ":" + curStackItem.getTypeId() + ":" + curStackItem.getAmount();
			}

			settingStr += "^";
			useSeparator = false;

			ItemStack[] curArmorStackList = itemKitArmorPresets.get(s);

			for (int i=0; i < curArmorStackList.length; ++ i) {
				ItemStack curArmorStackItem = curArmorStackList[i];

				if (curArmorStackItem == null) {
					continue;
				}

				if (useSeparator) {
					settingStr += ",";
				}
				else {
					useSeparator = true;
				}

				settingStr += "" + i + ":" + curArmorStackItem.getTypeId() + ":" + curArmorStackItem.getAmount();
			}

			itemKitProperties.put(s, settingStr);
		}

		this.log("Writing Item Kit presets file.");
		try {
			FileOutputStream out = new FileOutputStream(dataFile);
			itemKitProperties.store(out, "Do NOT edit this file manually!");
			out.flush();
			out.close();
		}
		catch (IOException ex) {
			this.log("Error writing Item Kit presets file!");
			ex.printStackTrace();
		}
	}