This commit is contained in:
2026-10-27 16:23:49 +01:00
commit cb53f21eae
66 changed files with 2452 additions and 0 deletions

View 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;
}
}