aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gq/malwarefight/nosession/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gq/malwarefight/nosession/utils')
-rw-r--r--src/main/java/gq/malwarefight/nosession/utils/Utils.java77
1 files changed, 28 insertions, 49 deletions
diff --git a/src/main/java/gq/malwarefight/nosession/utils/Utils.java b/src/main/java/gq/malwarefight/nosession/utils/Utils.java
index ae0e273..139f1e8 100644
--- a/src/main/java/gq/malwarefight/nosession/utils/Utils.java
+++ b/src/main/java/gq/malwarefight/nosession/utils/Utils.java
@@ -4,7 +4,6 @@ import com.google.common.annotations.Beta;
import com.google.common.collect.ForwardingMultimap;
import com.google.gson.Gson;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
-import gq.malwarefight.nosession.tweaks.InitialTweaker;
import gq.malwarefight.tokenapp.Main;
import org.apache.commons.io.ByteOrderMark;
import org.apache.commons.lang3.CharEncoding;
@@ -17,16 +16,11 @@ import org.objectweb.asm.Opcodes;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.lang.management.ManagementFactory;
-import java.lang.management.RuntimeMXBean;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.URISyntaxException;
+import java.net.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
@@ -118,50 +112,33 @@ public class Utils {
}
}
- public static String getLibraryPath(Class<?> c, boolean processString) throws URISyntaxException {
- String uri = c.getProtectionDomain().getCodeSource().getLocation().toURI().toString();
- if (processString) {
- uri = processString(uri);
+ public static File getLibraryPathAsFile(Class<?> c) throws URISyntaxException {
+ String uri = c.getProtectionDomain().getCodeSource().getLocation().toURI().toString().replace("%20", " "); // code breakage in 3, 2, 1...
+ if (uri.endsWith(".class")) {
+ uri = processString(uri); // stupid reference to a class within a jar
}
- return Paths.get(uri).toString();
+ return new File(uri);
}
- private static String getClasspath(Properties p, boolean processString) throws URISyntaxException {
- if (processString) {
- return String.join(
- p.getProperty("path.separator"),
- getLibraryPath(Utils.class, true),
- getLibraryPath(YggdrasilAuthenticationService.class, true),
- getLibraryPath(Gson.class, true),
- getLibraryPath(LogManager.class, true),
- getLibraryPath(Validate.class, true),
- getLibraryPath(ForwardingMultimap.class, true),
- getLibraryPath(Beta.class, true),
- getLibraryPath(CharEncoding.class, true),
- getLibraryPath(ByteOrderMark.class, true),
- getLibraryPath(Logger.class, true),
- getLibraryPath(Opcodes.class, true)
- );
- }
- try {
- // try to be smart
- return String.join(
- p.getProperty("path.separator"),
- getLibraryPath(Utils.class, false),
- getLibraryPath(YggdrasilAuthenticationService.class, false),
- getLibraryPath(Gson.class, false),
- getLibraryPath(LogManager.class, false),
- getLibraryPath(Validate.class, false),
- getLibraryPath(ForwardingMultimap.class, false),
- getLibraryPath(Beta.class, false),
- getLibraryPath(CharEncoding.class, false),
- getLibraryPath(ByteOrderMark.class, false),
- getLibraryPath(Logger.class, false),
- getLibraryPath(Opcodes.class, false)
- );
- } catch (URISyntaxException | IllegalArgumentException e) {
- return getClasspath(p, true);
- }
+ public static String getLibraryPath(Class<?> c) throws URISyntaxException {
+ return getLibraryPathAsFile(c).getAbsolutePath();
+ }
+
+ private static String getClasspath(Properties p) throws URISyntaxException {
+ return String.join(
+ p.getProperty("path.separator"),
+ getLibraryPath(Main.class),
+ getLibraryPath(YggdrasilAuthenticationService.class),
+ getLibraryPath(Gson.class),
+ getLibraryPath(LogManager.class),
+ getLibraryPath(Validate.class),
+ getLibraryPath(ForwardingMultimap.class),
+ getLibraryPath(Beta.class),
+ getLibraryPath(CharEncoding.class),
+ getLibraryPath(ByteOrderMark.class),
+ getLibraryPath(Logger.class),
+ getLibraryPath(Opcodes.class)
+ );
}
public static boolean createLockFile(long value) {
@@ -224,8 +201,10 @@ public class Utils {
long value = getID();
ID = value;
Properties p = getJavaProperties();
+ String cp = getClasspath(p);
+ System.out.println(cp);
ProcessBuilder processBuilder = new ProcessBuilder(
- getJavaExe(p), "-cp", getClasspath(p, false), Main.class.getName(), Long.toString(value)
+ getJavaExe(p), "-cp", getClasspath(p), Main.class.getName(), Long.toString(value)
);
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT).redirectError(ProcessBuilder.Redirect.INHERIT);
Process c = processBuilder.start();