private static String getData(String loc) {
		String path;

		try {
			path = ShaderManager.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
		}
		catch (Exception e) {
			System.out.println("Failed to jar path!");
			e.printStackTrace();
			return null;
		}

		String data = "";

		if (path.endsWith(".jar")) {

			try {
				FileInputStream fis = new FileInputStream(path);
				ZipInputStream zis = new ZipInputStream(fis);
				ZipEntry entry;
				while ((entry = zis.getNextEntry()) != null) {
					if (entry.getName().equals(loc))
						break;
				}
				Scanner scanner = new Scanner(zis);
				while (scanner.hasNext()) {
					data += scanner.nextLine() + "\n";
				}
				scanner.close();
				fis.close();
				zis.close();

			}
			catch (Exception e) {
				System.out.println("Error while extracting!");
				e.printStackTrace();
			}

			return data;
		}
		else {

			try {
				FileInputStream fis = new FileInputStream(path + loc);
				Scanner scanner = new Scanner(fis);
				while (scanner.hasNext()) {
					data += scanner.nextLine() + "\n";
				}
				scanner.close();
				fis.close();
			}
			catch (Exception e) {
				System.out.println("Error while reading file!");
				e.printStackTrace();
			}

			return data;
		}

	}