Skip to content

Commit

Permalink
1.09_09_14-pre1, mppass tweaks
Browse files Browse the repository at this point in the history
  • Loading branch information
Moresteck committed Jul 3, 2021
1 parent a0fa742 commit feadcc1
Show file tree
Hide file tree
Showing 12 changed files with 123 additions and 22 deletions.
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/Classic12aWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class Classic12aWrapper extends Wrapper {
public Classic12aWrapper(String user, String ver_prefix, String version, String sessionid, String mainFolder,
Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String USR,
String VER, Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER, img,
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, null, USR, VER, img,
addons);
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/org/betacraft/Classic15aWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ public class Classic15aWrapper extends Wrapper {
public Thread thread;

public Classic15aWrapper(String user, String ver_prefix, String version, String sessionid, String mainFolder,
Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String USR,
String VER, Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER, img,
Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String uuid,
String USR, String VER, Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, uuid, USR, VER, img,
addons);
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/CommandLine.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class CommandLine extends Wrapper {
public CommandLine(String user, String ver_prefix, String version, String sessionid, String mainFolder,
Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String USR,
String VER, Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER, img,
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, null, USR, VER, img,
addons);
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/FkWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class FkWrapper extends Wrapper {
public FkWrapper(String user, String ver_prefix, String version, String sessionid, String mainFolder, int height,
int width, boolean RPC, String launchMethod, String server, String mppass, String USR, String VER,
Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER,
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, null, USR, VER,
img, addons);
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/Minecraft13w16a.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class Minecraft13w16a extends Wrapper {
public Minecraft13w16a(String user, String ver_prefix, String version, String sessionid, String mainFolder,
Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String USR,
String VER, Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER, img,
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, null, USR, VER, img,
addons);
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/PreClassicWrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public class PreClassicWrapper extends Wrapper {
public PreClassicWrapper(String user, String ver_prefix, String version, String sessionid, String mainFolder,
int height, int width, boolean RPC, String launchMethod, String server, String mppass, String USR,
String VER, Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER,
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, null, USR, VER,
img, addons);
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/PreClassicWrapper2.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class PreClassicWrapper2 extends Wrapper {
public PreClassicWrapper2(String user, String ver_prefix, String version, String sessionid, String mainFolder, int height,
int width, boolean RPC, String launchMethod, String server, String mppass, String USR, String VER,
Image img, ArrayList addons) {
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, USR, VER,
super(user, ver_prefix, version, sessionid, mainFolder, height, width, RPC, launchMethod, server, mppass, null, USR, VER,
img, addons);
}

Expand Down
51 changes: 49 additions & 2 deletions src/main/java/org/betacraft/Wrapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.io.FilenameFilter;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
Expand All @@ -31,19 +32,24 @@
import org.betacraft.Addon.WhatToDo;
import org.betacraft.launcher.BC;
import org.betacraft.launcher.Lang;
import org.betacraft.launcher.Launcher;
import org.betacraft.launcher.Logger;

import net.arikia.dev.drpc.DiscordEventHandlers;
import net.arikia.dev.drpc.DiscordRPC;
import net.arikia.dev.drpc.DiscordRichPresence;
import pl.betacraft.auth.CustomRequest;
import pl.betacraft.auth.jsons.mojang.session.JoinServerRequest;


public class Wrapper extends Applet implements AppletStub {

/** Client parameters */
public final Map<String, String> params = new HashMap<String, String>();
/** Session id for premium authentication */
/** Session id for server authentication */
public String session;
/** User ID required to get mppass */
public String uuid;
/** Instance's folder */
public String mainFolder;
/** Version to be launched */
Expand Down Expand Up @@ -105,7 +111,7 @@ public class Wrapper extends Applet implements AppletStub {
* @param img - Icon for the window frame
* @param addons - List of addons to apply to this instance
*/
public Wrapper(String user, String ver_prefix, String version, String sessionid, String mainFolder, Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String USR, String VER, Image img, ArrayList addons) {
public Wrapper(String user, String ver_prefix, String version, String sessionid, String mainFolder, Integer height, Integer width, Boolean RPC, String launchMethod, String server, String mppass, String uuid, String USR, String VER, Image img, ArrayList addons) {
ogaddons = (ArrayList<Class<Addon>>)addons;

params.put("username", user);
Expand All @@ -119,6 +125,7 @@ public Wrapper(String user, String ver_prefix, String version, String sessionid,

this.version = version;
this.session = sessionid;
this.uuid = uuid;
this.launchType = launchMethod;
if (this.launchType.equalsIgnoreCase("")) {
System.err.println("LAUNCH METHOD ISN'T SPECIFIED!!! CANNOT PROCEED! CLOSING!");
Expand Down Expand Up @@ -217,11 +224,46 @@ public void run() {
}
}

public void getMPpass(String server) {
if (this.uuid == null || this.uuid.equals("-")) {
this.mppass = "0";
return;
}

boolean getmppass = System.getProperty("betacraft.obtainMPpass", "true").equalsIgnoreCase("true");
try {
String host = server.split(":")[0];
InetAddress addr = InetAddress.getByName(host);
String numerical = addr.getHostAddress();
server = server.replace(host, numerical);
System.out.println("Sending joinServer request...");

new JoinServerRequest(this.session, this.uuid, server).perform();
System.out.println("Done!");
// Let 15a and 16a servers do their own auth
if (getmppass) {
System.out.println("Obtaining mppass...");
this.mppass = new CustomRequest("https://betacraft.pl/api/getmppass.jsp?user=" + this.params.get("username") + "&server=" + server).perform().response;
if (this.mppass == null || this.mppass.equals("FAILED") || this.mppass.equals("SERVER NOT FOUND")) {
// failed to get mppass :(
System.out.println("Failed to get mppass for: " + server);
this.mppass = "0";
}
System.out.println("Done!");
}
} catch (Throwable t) {
t.printStackTrace();
}
}

/**
* Asks the user for server credentials.
*/
public void askForServer() {
if (this.serverAddress != null) {
if (this.mppass.length() < 32) {
this.getMPpass(this.serverAddress);
}
params.put("mppass", this.mppass);
} else {
String server = JOptionPane.showInputDialog(this, Lang.WRAP_SERVER, Lang.WRAP_SERVER_TITLE, JOptionPane.DEFAULT_OPTION);
Expand Down Expand Up @@ -254,6 +296,11 @@ public void askForServer() {
IP = params1[0];
port = params1[1];
}

if (this.mppass.length() < 32) {
this.getMPpass(IP + ":" + port);
}

// <ip>
if (!server.equals("")) {
System.err.println("Accepted server parameters: " + IP + ":" + port + this.mppass != null ? " + mppass" : "");
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/betacraft/launcher/BC.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class BC {
public static File SETTINGS;

// TODO better check this before release
public static boolean prerelease = false;
public static boolean prerelease = true;
public static boolean nightly = false;

public static boolean portable = false;
Expand Down
19 changes: 15 additions & 4 deletions src/main/java/org/betacraft/launcher/Launcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,12 @@
import pl.betacraft.auth.CustomResponse;
import pl.betacraft.auth.DownloadRequest;
import pl.betacraft.auth.DownloadResponse;
import pl.betacraft.auth.NoAuth;
import pl.betacraft.json.lib.MouseFixMacOSJson;

/** Main class */
public class Launcher {
public static String VERSION = "1.09_13"; // TODO Always update this
public static String VERSION = "1.09_14-pre1"; // TODO Always update this

public static Instance currentInstance;
public static boolean forceUpdate = false;
Expand Down Expand Up @@ -151,9 +152,10 @@ public static void main(String[] args) {
String sessionid = args[2];
String server = args[3].equals("-") ? null : args[3];
String mppass = args[4].equals("-") ? "0" : args[4];
String uuid = args[5];
// Convert arguments to work with Wrapper
StringBuilder split = new StringBuilder();
for (int i = 5; i < args.length; i++) {
for (int i = 6; i < args.length; i++) {
split.append(args[i] + " ");
}
String instanceName = split.toString();
Expand Down Expand Up @@ -218,13 +220,13 @@ public static void main(String[] args) {
} else if (meth.equalsIgnoreCase("classic12a")) {
new Classic12aWrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
} else if (meth.equalsIgnoreCase("classic15a")) {
new Classic15aWrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
new Classic15aWrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, uuid, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
// } else if (meth.equalsIgnoreCase("classic")) {
// new ClassicWrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
// } else if (meth.equalsIgnoreCase("classicmp")) {
// new ClassicMPWrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
} else if (meth.equalsIgnoreCase("indev") || meth.equalsIgnoreCase("classicmp") || meth.equalsIgnoreCase("classic")) {
new Wrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
new Wrapper(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, uuid, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
} else if (meth.equalsIgnoreCase("commandline")) {
new CommandLine(username, currentInstance.name, currentInstance.version, sessionid, currentInstance.gameDir, currentInstance.height, currentInstance.width, currentInstance.RPC, meth, server, mppass, Lang.WRAP_USER, Lang.WRAP_VERSION, currentInstance.getIcon(), addons);
} else if (meth.equalsIgnoreCase("1.6")) {
Expand Down Expand Up @@ -518,6 +520,10 @@ public boolean accept(File dir, String fileName) {
params.add("-Dbetacraft.resize_applet=true");
}

if ("true".equalsIgnoreCase(info.getEntry("do-not-get-mppass"))) {
params.add("-Dbetacraft.obtainMPpass=false");
}

if (info.getProtocol() != null && "classicmp".equals(info.getLaunchMethod())) {
params.add("-Dbetacraft.ask_for_server=true");
}
Expand Down Expand Up @@ -551,6 +557,11 @@ public boolean accept(File dir, String fileName) {
params.add(token);
params.add(server);
params.add(mppass);
if (!(Launcher.auth instanceof NoAuth)) {
params.add(Launcher.auth.getCredentials().local_uuid);
} else {
params.add("-");
}
params.add(currentInstance.name);
System.out.println(params.toString());
Logger.a(!token.equals("-") ? params.toString().replaceAll(token, "[censored sessionid]") : params.toString());
Expand Down
6 changes: 0 additions & 6 deletions src/main/java/org/betacraft/launcher/WebsitePanel.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.betacraft.launcher;

import java.awt.Color;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
Expand Down Expand Up @@ -141,11 +140,6 @@ public void run() {
con.setConnectTimeout(5000);
con.connect();

DataOutputStream output = new DataOutputStream(con.getOutputStream());
output.writeUTF(Launcher.getNickname());
output.writeUTF(Launcher.getAuthToken());
output.flush();
output.close();
InputStream instream = con.getInputStream();
Scanner s = new Scanner(instream, "UTF-8");
StringBuilder bob = new StringBuilder();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package pl.betacraft.auth.jsons.mojang.session;

import java.security.MessageDigest;

import pl.betacraft.auth.BlankResponse;
import pl.betacraft.auth.Request;
import pl.betacraft.auth.RequestUtil;
import pl.betacraft.auth.Response;

public class JoinServerRequest extends Request {

public String accessToken;
public String selectedProfile;
public String serverId;

public JoinServerRequest(String sessionid, String uuid, String serverSocket) {
this.REQUEST_URL = "https://sessionserver.mojang.com/session/minecraft/join";
this.PROPERTIES.put("Content-Type", "application/json");
this.serverId = sha1(serverSocket);
this.accessToken = sessionid;
this.selectedProfile = uuid;
}

@Override
public Response perform() {
String response = RequestUtil.performPOSTRequest(this);

if (response != null) {
return new BlankResponse();
} else {
return null;
}
}

public static String sha1(String input) {
try {
MessageDigest mDigest = MessageDigest.getInstance("SHA-1");
byte[] result = mDigest.digest(input.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < result.length; ++i) {
sb.append(Integer.toString((result[i] & 0xFF) + 256, 16).substring(1));
}
return sb.toString();
} catch (Throwable t) {
t.printStackTrace();
return null;
}
}
}

0 comments on commit feadcc1

Please sign in to comment.