diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java
index 846485c4..c397bc80 100644
--- a/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java
+++ b/JavaApp/src/main/java/net/kdt/pojavlaunch/PLaunchApp.java
@@ -11,10 +11,7 @@ import net.kdt.pojavlaunch.utils.*;
import net.kdt.pojavlaunch.value.*;
public class PLaunchApp {
- private static float currProgress, maxProgress;
-
- public static volatile JMinecraftVersionList.Version mVersion;
- public static boolean mIsAssetsProcessing = false;
+ private static float currProgress, maxProgress;
public static void main(String[] args) throws Throwable {
try {
@@ -40,10 +37,10 @@ public class PLaunchApp {
UIKit.launchUI();
}
- public static String getSelectedVersion() {
+ public static String getStringFromPref(String pref) {
try {
String plistContent = Tools.read(Tools.DIR_APP_DATA + "/launcher_preferences.plist");
- plistContent = plistContent.substring(plistContent.indexOf("selected_version") + 27);
+ plistContent = plistContent.substring(plistContent.indexOf("" + pref + "") + pref.length() + 11);
return plistContent.substring(
plistContent.indexOf("") + 8,
plistContent.indexOf(""));
@@ -56,23 +53,21 @@ public class PLaunchApp {
// Called from SurfaceViewController
public static void launchMinecraft() {
try {
- if (AccountJNI.CURRENT_ACCOUNT == null) {
- AccountJNI.CURRENT_ACCOUNT = MinecraftAccount.load(System.getProperty("pojav.selectedAccount"));
- }
- mVersion = Tools.getVersionInfo(getSelectedVersion());
- System.out.println("Launching Minecraft " + mVersion.id);
+ MinecraftAccount account = MinecraftAccount.load(getStringFromPref("internal_selected_account"));
+ JMinecraftVersionList.Version version = Tools.getVersionInfo(getStringFromPref("selected_version"));
+ System.out.println("Launching Minecraft " + version.id);
String configPath;
- if (mVersion.logging != null) {
- if (mVersion.logging.client.file.id.equals("client-1.12.xml")) {
+ if (version.logging != null) {
+ if (version.logging.client.file.id.equals("client-1.12.xml")) {
configPath = Tools.DIR_BUNDLE + "/log4j-rce-patch-1.12.xml";
- } else if (mVersion.logging.client.file.id.equals("client-1.7.xml")) {
+ } else if (version.logging.client.file.id.equals("client-1.7.xml")) {
configPath = Tools.DIR_BUNDLE + "/log4j-rce-patch-1.7.xml";
} else {
- configPath = Tools.DIR_GAME_NEW + "/" + mVersion.logging.client.file.id;
+ configPath = Tools.DIR_GAME_NEW + "/" + version.logging.client.file.id;
}
System.setProperty("log4j.configurationFile", configPath);
}
- Tools.launchMinecraft(AccountJNI.CURRENT_ACCOUNT, mVersion);
+ Tools.launchMinecraft(account, version);
} catch (Throwable th) {
Tools.showError(th);
}
diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java
index cbc868f0..2656ec5f 100644
--- a/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java
+++ b/JavaApp/src/main/java/net/kdt/pojavlaunch/Tools.java
@@ -155,7 +155,7 @@ public final class Tools
}
public static String[] getMinecraftArgs(MinecraftAccount profile, JMinecraftVersionList.Version versionInfo) {
- String username = profile.username;
+ String username = profile.username.replace("Demo.", "");
String versionName = versionInfo.id;
if (versionInfo.inheritsFrom != null) {
versionName = versionInfo.inheritsFrom;
@@ -210,7 +210,6 @@ public final class Tools
minecraftArgs.add(Integer.toString(GLFW.mGLFWWindowWidth));
minecraftArgs.add("--fullscreenHeight");
minecraftArgs.add(Integer.toString(GLFW.mGLFWWindowHeight));
-
String[] argsFromJson = JSONUtils.insertJSONValueList(
splitAndFilterEmpty(
versionInfo.minecraftArguments == null ?
@@ -235,8 +234,8 @@ public final class Tools
private static String[] splitAndFilterEmpty(String argStr, MinecraftAccount profile) {
List strList = new ArrayList();
- if(profile.username.equals("demo_user") && profile.accessToken.equals("-1") && profile.profileId.equals("25e00594-cf57-3f87-b3af-3f06591be252")) {
- strList.add("--demo"); // if statement is this complex to prevent tampering with the .json
+ if(profile.username.startsWith("Demo.")) {
+ strList.add("--demo");
}
for (String arg : argStr.split(" ")) {
if (!arg.isEmpty()) {
@@ -409,6 +408,8 @@ public final class Tools
} else if (libItem.name.startsWith("net.java.dev.jna:jna:")) {
// Special handling for LabyMod 1.8.9 and Forge 1.12.2(?)
// we have libjnidispatch 5.8.0 in Frameworks directory
+ int[] version = Arrays.stream(libItem.name.split(":")[2].split("\\.")).mapToInt(Integer::parseInt).toArray();
+ if (version[0] >= 5 && version[1] >= 8) return;
System.out.println("Library " + libItem.name + " has been changed to version 5.8.0");
libItem.name = "net.java.dev.jna:jna:5.8.0";
libItem.downloads.artifact.path = "net/java/dev/jna/jna/5.8.0/jna-5.8.0.jar";
diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/MicrosoftAuthTask.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/MicrosoftAuthTask.java
deleted file mode 100644
index d924701b..00000000
--- a/JavaApp/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/MicrosoftAuthTask.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package net.kdt.pojavlaunch.authenticator.microsoft;
-
-import android.util.*;
-
-import java.io.*;
-import java.net.*;
-import java.text.*;
-import java.util.*;
-
-import net.kdt.pojavlaunch.*;
-import net.kdt.pojavlaunch.value.launcherprofiles.*;
-import net.kdt.pojavlaunch.value.*;
-
-import org.json.*;
-
-public class MicrosoftAuthTask {
-
- //private Gson gson = new Gson();
-
- public MinecraftAccount run(String... args) throws Throwable {
- /*
- publishProgress();
- String msaAccessToken = acquireAccessToken(args[0]);
-
- publishProgress();
- String xblToken = acquireXBLToken(msaAccessToken);
-
- publishProgress();
- String[] xstsData = acquireXsts(xblToken);
-
- publishProgress();
- String mcAccessToken = acquireMinecraftToken(xstsData[0], xstsData[1]);
-
- publishProgress();
-
- */
- Msa msa = new Msa(this, Boolean.parseBoolean(args[0]), args[1]);
-
- MinecraftAccount acc = new MinecraftAccount();
- if (msa.doesOwnGame) {
- acc.clientToken = "0"; /* FIXME */
- acc.accessToken = msa.mcToken;
- acc.username = msa.mcName;
- acc.profileId = msa.mcUuid;
- acc.msaRefreshToken = msa.msRefreshToken;
- } else if(msa.doesDemo) {
- acc.clientToken = "0"; /* FIXME */
- acc.accessToken = "-1"; // Differentiate from local accounts
- acc.username = "demo_user";
- acc.profileId = "25e00594-cf57-3f87-b3af-3f06591be252";
- acc.msaRefreshToken = "0";
- }
- acc.save();
-
- return acc;
- }
-}
-
diff --git a/JavaApp/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/Msa.java b/JavaApp/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/Msa.java
deleted file mode 100644
index c2349a7d..00000000
--- a/JavaApp/src/main/java/net/kdt/pojavlaunch/authenticator/microsoft/Msa.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
-package net.kdt.pojavlaunch.authenticator.microsoft;
-
-import android.util.*;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import net.kdt.pojavlaunch.*;
-import org.json.*;
-
-
-public class Msa {
- /*
- private static final String loginUrl = "https://login.live.com/oauth20_authorize.srf" +
- "?client_id=00000000402b5328" +
- "&response_type=code" +
- "&scope=service%3A%3Auser.auth.xboxlive.com%3A%3AMBI_SSL" +
- "&redirect_uri=https%3A%2F%2Flogin.live.com%2Foauth20_desktop.srf";
-
- private static final String redirectUrlSuffix = "https://login.live.com/oauth20_desktop.srf?code=";
- */
- private static final String authTokenUrl = "https://login.live.com/oauth20_token.srf";
- private static final String xblAuthUrl = "https://user.auth.xboxlive.com/user/authenticate";
- private static final String xstsAuthUrl = "https://xsts.auth.xboxlive.com/xsts/authorize";
- private static final String mcLoginUrl = "https://api.minecraftservices.com/authentication/login_with_xbox";
- private static final String mcStoreUrl = "https://api.minecraftservices.com/entitlements/mcstore";
- private static final String mcProfileUrl = "https://api.minecraftservices.com/minecraft/profile";
-
- private MicrosoftAuthTask task;
-
- public boolean isRefresh;
- public String msRefreshToken;
- public String mcName;
- public String mcToken;
- public String mcUuid;
- public boolean doesOwnGame;
- public boolean doesDemo;
-
- public Msa(MicrosoftAuthTask task, boolean isRefresh, String authCode) throws IOException, JSONException {
- this.task = task;
- acquireAccessToken(isRefresh, authCode);
- }
-
- public void acquireAccessToken(boolean isRefresh, String authcode) throws IOException, JSONException {
- // task.publishProgressPublic();
-
- URL url = new URL(authTokenUrl);
- // Log.i("MicroAuth", "isRefresh=" + isRefresh + ", authCode= "+authcode);
- Map