public static boolean save() {
		if (DoorList.size() == 0) { //If queue is empty OR economy is disabled.
			DoorFile.delete();

			return true;
		}

		ColorKeys.Log(Level.INFO, "Saving doors...");

		try {
			if (!DoorFile.exists()) {
				if (!DoorFile.createNewFile()) {
					ColorKeys.Log(Level.SEVERE, "Error creating doors file.");

					return false;
				}
			}

			DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
			DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
			Document doc = docBuilder.newDocument();

			Element fileVersionElement = doc.createElement("file");
			fileVersionElement.setAttribute("version", "1.1");
			doc.appendChild(fileVersionElement);

			for (CKDoor door : DoorList) {
				Element doorElement = doc.createElement("door");
				doorElement.setAttribute("world", door.world.getName());
				doorElement.setAttribute("location", door.location);
				doorElement.setAttribute("color", door.color + "");
				doorElement.setAttribute("x", door.x + "");
				doorElement.setAttribute("y", door.y + "");
				doorElement.setAttribute("z", door.z + "");
				doorElement.setAttribute("isDouble", door.isDouble + "");
				doorElement.setAttribute("otherX", door.otherX + "");
				doorElement.setAttribute("otherY", door.otherY + "");
				doorElement.setAttribute("otherZ", door.otherZ + "");
				fileVersionElement.appendChild(doorElement);
			}

			TransformerFactory transfac = TransformerFactory.newInstance();
			Transformer trans = transfac.newTransformer();
			//trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
			trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
			trans.setOutputProperty(OutputKeys.INDENT, "yes");

			StreamResult result = new StreamResult(new StringWriter());
			DOMSource source = new DOMSource(doc);
			trans.transform(source, result);

			FileOutputStream OUT = new FileOutputStream(DoorFile);
			OUT.write(result.getWriter().toString().getBytes());
			OUT.flush();
			OUT.close();

			ColorKeys.Log(Level.INFO, "Doors saved successfully.");

			return true;
		}
		catch (Exception e) {
			ColorKeys.Log(Level.SEVERE, "Unknown error saving doors.");

			e.printStackTrace();

			return false;
		}
	}