aboutsummaryrefslogtreecommitdiff
path: root/src/resources/GradleStartClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/resources/GradleStartClient.java')
-rw-r--r--src/resources/GradleStartClient.java103
1 files changed, 0 insertions, 103 deletions
diff --git a/src/resources/GradleStartClient.java b/src/resources/GradleStartClient.java
deleted file mode 100644
index 97edde8b04..0000000000
--- a/src/resources/GradleStartClient.java
+++ /dev/null
@@ -1,103 +0,0 @@
-import java.io.File;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
-
-import com.google.common.base.Strings;
-
-import net.minecraftforge.gradle.GradleStartCommon;
-
-public class GradleStartClient extends GradleStart {
-
- public static void main(String[] args) {
-
- // hack natives.
- try {
- GradleStartCommon.LOGGER.info("Injecting Natives!");
- hack();
- GradleStartCommon.LOGGER.info("Natives Injected!");
- // launch
- Method launch = GradleStartCommon.class.getDeclaredMethod("launch", String[].class);
- if (launch != null) {
- launch.setAccessible(true);
- GradleStart aStart = new GradleStart();
- GradleStartCommon.LOGGER.info("Launching!");
- launch.invoke(aStart, new Object[]{args});
- }
- }
- catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
- e.printStackTrace();
- }
- }
-
- private static final void hack() {
- GradleStartCommon.LOGGER.info("[FG_1.3] Doing Classloader hack.");
- String paths = System.getProperty("java.library.path");
- String nativesDir = "@@NATIVESDIR@@";
-
- if (Strings.isNullOrEmpty(paths))
- paths = nativesDir;
- else
- paths += File.pathSeparator + nativesDir;
-
- hackNativesFixed(paths);
- //addLibraryPath(nativesDir);
- //addLibraryPath(paths);
- }
-
- private static final void hackNativesFixed(String paths) {
- System.setProperty("java.library.path", paths);
- // hack the classloader now.
- try
- {
- String aPathData = System.getProperty("java.library.path");
- final Method initializePathMethod = ClassLoader.class.getDeclaredMethod("initializePath", String.class);
- GradleStartCommon.LOGGER.info("[FG_1.3] Setting private method 'initializePath' to be accessible.");
- initializePathMethod.setAccessible(true);
- GradleStartCommon.LOGGER.info("[FG_1.3] Invoking 'initializePath' with arg 'java.library.path'.");
- GradleStartCommon.LOGGER.info("[FG_1.3] Path Value: "+aPathData);
- final Object usrPathsValue = initializePathMethod.invoke(null, "java.library.path");
- final Field usrPathsField = ClassLoader.class.getDeclaredField("usr_paths");
- GradleStartCommon.LOGGER.info("[FG_1.3] Setting private field 'usr_paths' to be accessible.");
- usrPathsField.setAccessible(true);
- GradleStartCommon.LOGGER.info("[FG_1.3] Injecting path data.");
- usrPathsField.set(null, usrPathsValue);
- GradleStartCommon.LOGGER.info("[FG_1.3] Finished Classloader hack.");
- }
- catch(Throwable t) {
- GradleStartCommon.LOGGER.info("[FG_1.3] Error handling Classloader hack, printing stack trace.");
- t.printStackTrace();
- };
- }
-
- public static void addLibraryPath(String pathToAdd){
- Field usrPathsField;
- try {
- usrPathsField = ClassLoader.class.getDeclaredField("usr_paths");
- usrPathsField.setAccessible(true);
-
- //get array of paths
- final String[] paths = (String[])usrPathsField.get(null);
-
- //check if the path to add is already present
- for(String path : paths) {
- if(path.equals(pathToAdd)) {
- GradleStartCommon.LOGGER.info("[FG_1.3] Found existing PATH data, skipping.");
- return;
- }
- }
- GradleStartCommon.LOGGER.info("[FG_1.3] Injecting path data. ["+pathToAdd+"]");
- //add the new path
- final String[] newPaths = Arrays.copyOf(paths, paths.length + 1);
- newPaths[newPaths.length-1] = pathToAdd;
- usrPathsField.set(null, newPaths);
- }
- catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) {
- GradleStartCommon.LOGGER.info("[FG_1.3] Error handling Classloader hack, printing stack trace.");
- e.printStackTrace();
- }
-
- }
-
-}