init
This commit is contained in:
246
decompiled/net/minecraft/MinecraftUtil.java
Normal file
246
decompiled/net/minecraft/MinecraftUtil.java
Normal file
@@ -0,0 +1,246 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*/
|
||||
package net.minecraft;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FilterOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class MinecraftUtil {
|
||||
private static File workDir = null;
|
||||
private static File binDir = null;
|
||||
private static File resourcesDis = null;
|
||||
private static File optionsFile = null;
|
||||
private static File lastloginFile = null;
|
||||
private static File savesDir = null;
|
||||
private static File tempFolder = null;
|
||||
private static File nativesFolder = null;
|
||||
|
||||
public static File getWorkingDirectory() {
|
||||
if (workDir == null) {
|
||||
workDir = MinecraftUtil.getWorkingDirectory("minecraft");
|
||||
}
|
||||
return workDir;
|
||||
}
|
||||
|
||||
public static File getBinFolder() {
|
||||
if (binDir == null) {
|
||||
binDir = new File(MinecraftUtil.getWorkingDirectory(), "bin");
|
||||
}
|
||||
return binDir;
|
||||
}
|
||||
|
||||
public static File getResourcesFolder() {
|
||||
if (resourcesDis == null) {
|
||||
resourcesDis = new File(MinecraftUtil.getWorkingDirectory(), "resources");
|
||||
}
|
||||
return resourcesDis;
|
||||
}
|
||||
|
||||
public static File getOptionsFile() {
|
||||
if (optionsFile == null) {
|
||||
optionsFile = new File(MinecraftUtil.getWorkingDirectory(), "options.txt");
|
||||
}
|
||||
return optionsFile;
|
||||
}
|
||||
|
||||
public static File getLoginFile() {
|
||||
if (lastloginFile == null) {
|
||||
lastloginFile = new File(MinecraftUtil.getWorkingDirectory(), "lastlogin");
|
||||
}
|
||||
return lastloginFile;
|
||||
}
|
||||
|
||||
public static File getSavesFolder() {
|
||||
if (savesDir == null) {
|
||||
savesDir = new File(MinecraftUtil.getWorkingDirectory(), "saves");
|
||||
}
|
||||
return savesDir;
|
||||
}
|
||||
|
||||
public static File getNativesFolder() {
|
||||
if (nativesFolder == null) {
|
||||
nativesFolder = new File(MinecraftUtil.getBinFolder(), "natives");
|
||||
}
|
||||
return nativesFolder;
|
||||
}
|
||||
|
||||
public static File getTempFolder() {
|
||||
if (tempFolder == null) {
|
||||
tempFolder = new File(System.getProperties().getProperty("java.io.tmpdir"), "MCBKPMNGR");
|
||||
}
|
||||
if (!tempFolder.exists()) {
|
||||
tempFolder.mkdirs();
|
||||
}
|
||||
return tempFolder;
|
||||
}
|
||||
|
||||
public static File getWorkingDirectory(String applicationName) {
|
||||
File workingDirectory;
|
||||
String userHome = System.getProperty("user.home", ".");
|
||||
switch (MinecraftUtil.getPlatform().ordinal()) {
|
||||
case 0:
|
||||
case 1: {
|
||||
workingDirectory = new File(userHome, '.' + applicationName + '/');
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
String applicationData = System.getenv("APPDATA");
|
||||
if (applicationData != null) {
|
||||
workingDirectory = new File(applicationData, "." + applicationName + '/');
|
||||
break;
|
||||
}
|
||||
workingDirectory = new File(userHome, '.' + applicationName + '/');
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
workingDirectory = new File(userHome, "Library/Application Support/" + applicationName);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
workingDirectory = new File(userHome, applicationName + '/');
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
* WARNING - Removed try catching itself - possible behaviour change.
|
||||
*/
|
||||
public static String excutePost(String targetURL, String urlParameters) {
|
||||
HttpURLConnection connection = null;
|
||||
try {
|
||||
String str1;
|
||||
String line;
|
||||
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();
|
||||
while ((line = rd.readLine()) != null) {
|
||||
response.append(line);
|
||||
response.append('\r');
|
||||
}
|
||||
rd.close();
|
||||
String string = str1 = response.toString();
|
||||
return string;
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
String string = null;
|
||||
return string;
|
||||
}
|
||||
finally {
|
||||
if (connection != null) {
|
||||
connection.disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* WARNING - Removed try catching itself - possible behaviour change.
|
||||
*/
|
||||
public static void resetVersion() {
|
||||
FilterOutputStream dos = null;
|
||||
try {
|
||||
File dir = new File(MinecraftUtil.getWorkingDirectory() + File.separator + "bin" + File.separator);
|
||||
File versionFile = new File(dir, "version");
|
||||
dos = new DataOutputStream(new FileOutputStream(versionFile));
|
||||
((DataOutputStream)dos).writeUTF("0");
|
||||
dos.close();
|
||||
}
|
||||
catch (FileNotFoundException ex) {
|
||||
Logger.getLogger(MinecraftUtil.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
catch (IOException ex) {
|
||||
Logger.getLogger(MinecraftUtil.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
finally {
|
||||
try {
|
||||
dos.close();
|
||||
}
|
||||
catch (IOException ex) {
|
||||
Logger.getLogger(MinecraftUtil.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String getFakeLatestVersion() {
|
||||
try {
|
||||
File dir = new File(MinecraftUtil.getWorkingDirectory() + File.separator + "bin" + File.separator);
|
||||
File file = new File(dir, "version");
|
||||
DataInputStream dis = new DataInputStream(new FileInputStream(file));
|
||||
String version = dis.readUTF();
|
||||
dis.close();
|
||||
if (version.equals("0")) {
|
||||
return "1285241960000";
|
||||
}
|
||||
return version;
|
||||
}
|
||||
catch (IOException ex) {
|
||||
return "1285241960000";
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This class specifies class file version 49.0 but uses Java 6 signatures. Assumed Java 6.
|
||||
*/
|
||||
private static enum OS {
|
||||
linux,
|
||||
solaris,
|
||||
windows,
|
||||
macos,
|
||||
unknown;
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user