diff options
author | cflip <cflip@cflip.net> | 2023-08-24 08:44:43 -0600 |
---|---|---|
committer | cflip <cflip@cflip.net> | 2023-08-24 08:44:54 -0600 |
commit | 5a7d6a1d7efb249fe3360330704e8ae647ae3a8f (patch) | |
tree | a00e1965cc5a9788e4229c9ee87f736bc5b6bc71 /src/net/minecraft/Util.java |
Import decompiled source from 2010 launcher jar
Diffstat (limited to 'src/net/minecraft/Util.java')
-rw-r--r-- | src/net/minecraft/Util.java | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/src/net/minecraft/Util.java b/src/net/minecraft/Util.java new file mode 100644 index 0000000..9b21f9c --- /dev/null +++ b/src/net/minecraft/Util.java @@ -0,0 +1,104 @@ +package net.minecraft; + +import java.io.DataOutputStream; +import java.io.File; +import java.net.HttpURLConnection; + +public class Util { + private enum OS { + linux, solaris, windows, macos, unknown + } + + private static File workDir = null; + + public static File getWorkingDirectory() { + if (workDir == null) workDir = getWorkingDirectory("minecraft"); + return workDir; + } + + public static File getWorkingDirectory(String applicationName) { + File workingDirectory; + String applicationData, userHome = System.getProperty("user.home", "."); + + switch (getPlatform()) { + case null: + case solaris: + workingDirectory = new File(userHome, '.' + applicationName + '/'); + break; + case windows: + applicationData = System.getenv("APPDATA"); + if (applicationData != null) { + workingDirectory = new File(applicationData, "." + applicationName + '/'); + break; + } + workingDirectory = new File(userHome, '.' + applicationName + '/'); + break; + case macos: + workingDirectory = new File(userHome, "Library/Application Support/" + applicationName); + break; + default: + workingDirectory = new File(userHome, String.valueOf(applicationName) + '/'); + break; + } + if (!workingDirectory.exists() && !workingDirectory.mkdirs()) + throw new RuntimeException("The working directory could not be created: " + workingDirectory); + return workingDirectory; + } + + private static OS getPlatform() { + String osName = System.getProperty("os.name").toLowerCase(); + if (osName.contains("win")) return OS.windows; + if (osName.contains("mac")) return OS.macos; + if (osName.contains("solaris")) return OS.solaris; + if (osName.contains("sunos")) return OS.solaris; + if (osName.contains("linux")) return OS.linux; + if (osName.contains("unix")) return OS.linux; + return OS.unknown; + } + + + public static String excutePost(String targetURL, String urlParameters) { + HttpURLConnection connection = null; + + try { + URL url = new URL(targetURL); + connection = (HttpURLConnection) url.openConnection(); + connection.setRequestMethod("POST"); + connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + + connection.setRequestProperty("Content-Length", Integer.toString((urlParameters.getBytes()).length)); + connection.setRequestProperty("Content-Language", "en-US"); + + connection.setUseCaches(false); + connection.setDoInput(true); + connection.setDoOutput(true); + + + DataOutputStream wr = new DataOutputStream(connection.getOutputStream()); + wr.writeBytes(urlParameters); + wr.flush(); + wr.close(); + + + InputStream is = connection.getInputStream(); + BufferedReader rd = new BufferedReader(new InputStreamReader(is)); + + StringBuffer response = new StringBuffer(); + String line; + while ((line = rd.readLine()) != null) { + response.append(line); + response.append('\r'); + } + rd.close(); + return response.toString(); + } catch (Exception e) { + + e.printStackTrace(); + return null; + } finally { + + if (connection != null) + connection.disconnect(); + } + } +} |