aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
index d8afcf7e00..510913d794 100644
--- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
@@ -1,5 +1,6 @@
package gtPlusPlus.core.util.reflect;
+import java.io.IOException;
import java.lang.reflect.*;
import java.net.URL;
import java.util.HashSet;
@@ -7,10 +8,12 @@ import java.util.Scanner;
import org.apache.commons.lang3.reflect.FieldUtils;
+import com.google.common.reflect.ClassPath;
+
import net.minecraft.client.Minecraft;
import gregtech.GT_Mod;
-
+import gtPlusPlus.GTplusplus;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
@@ -334,6 +337,25 @@ public class ReflectionUtils {
}
return null;
}
+
+ public static boolean dynamicallyLoadClassesInPackage(String aPackageName) {
+ ClassLoader classLoader = GTplusplus.class.getClassLoader();
+ int loaded = 0;
+ try {
+ ClassPath path = ClassPath.from(classLoader);
+ for (ClassPath.ClassInfo info : path.getTopLevelClassesRecursive(aPackageName)) {
+ Class<?> clazz = Class.forName(info.getName(), true, classLoader);
+ if (clazz != null) {
+ loaded++;
+ Logger.INFO("Found "+clazz.getCanonicalName()+". ["+loaded+"]");
+ }
+ }
+ } catch (ClassNotFoundException | IOException e) {
+
+ }
+
+ return loaded > 0;
+ }
}