public static void loadMessages() {
		messages.clear();
		InputStream inStream = null;
		
		try {
			File file = new File(StaffInformer.getInstance().getDataFolder(), MESSAGES_FILE);
			if (file.exists()) {
				inStream = new FileInputStream(file);
			} else {
				inStream = I18N.class.getResourceAsStream('/' + MESSAGES_FILE);
			}
			
			if (inStream == null) {
				throw new IOException("null");
			}
			
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			
			Document xml = builder.parse(inStream);
			NodeList nodes = xml.getChildNodes();
			
			for (int i = 0; i < nodes.getLength(); i++) {
				Node node = nodes.item(i);
				
				if (node.getNodeName().equalsIgnoreCase(MESSAGES_TAG)) {
					//Messages entry!
					readEntry(node, "");
				}
			}
		} catch (Exception e) {
			Logger.severe("Failed to load language messages: " + e.getMessage() + ". EXPECT ERRORS!");
			e.printStackTrace();
		} finally {
			try {
				if (inStream != null) {
					inStream.close();
				}
			} catch (Exception e) {}
		}
	}