public class ForgeCoreLoader
extends java.lang.Object
| Constructor and Description |
|---|
ForgeCoreLoader() |
| Modifier and Type | Method and Description |
|---|---|
static java.lang.ClassLoader |
bootLoader()
Should be the ClassLoader for the BOOT layer or the system ClassLoader if Java 8
|
static void |
exportAllModules()
Export the given module to all packages loaded to a module in the GAME layer
|
static java.lang.Object[] |
findModuleLoaderForPackage(java.lang.String pkg,
java.lang.ClassLoader[] loaders,
boolean newFormat)
Returns an array where the elements are the ClassLoader, resolved module, and the name of the layer.
|
static void |
fixFirstEntryPoint()
Sets up some important stuff needed to initialize the loading process.
|
static @Nullable java.lang.Object |
getBootLoadedCoreAPI() |
static java.lang.Object |
getModuleFromPackage(java.lang.String pkg,
java.lang.String layerName,
boolean newFormat) |
static boolean |
isJava8() |
static java.lang.ClassLoader |
layerClassLoader(java.lang.String name)
Tries to get the ClassLoader instance associated with the given layer name
|
static java.lang.String |
moduleName(java.lang.Object module) |
static void |
moveModuleToLayer(java.lang.ClassLoader targetLoader,
java.lang.String layerTo,
java.lang.String layerFrom,
java.lang.String moduleName) |
static void |
nukeAndFinalize(net.minecraftforge.forgespi.language.IModInfo mod,
java.lang.String pkg,
java.util.Set<java.lang.String> finalizedPkgs,
boolean newFormat)
Add the module for the given package to the GAME layer and nuke all references to it from other layers
|
static void |
nukeAndFinalizeJava8(java.util.Set<java.lang.Class<?>> getSourcesFrom,
java.lang.ClassLoader target,
boolean first)
Java 8 doesn't have modules, so move all classes loaded from the source of the given package to the target
ClassLoader and things should work fine.
|
static void |
removeServiceFrom(java.lang.String service,
java.lang.String impl,
java.lang.String layer) |
static void |
resyncModules(java.lang.ClassLoader loaderTo,
java.lang.String layerTo,
java.lang.ClassLoader loaderFrom)
Since this class is intially loaded in the SERVICE layer which has BOOT as a parent separate from PLUGIN,
we need a workaround for the PLUGIN layer thinking there are duplicate modules.
|
static void |
sanityCheckModule(java.lang.Class<?> c,
java.lang.String name) |
static @Nullable java.lang.Class<?> |
serviceProviderClass(java.lang.Object servicesCatalog) |
static void |
verifyModule(java.lang.String className,
net.minecraftforge.forgespi.language.IModInfo info,
java.lang.Object moduleLayer) |
public static java.lang.ClassLoader bootLoader()
public static void exportAllModules()
throws java.lang.Throwable
java.lang.Throwablepublic static java.lang.Object[] findModuleLoaderForPackage(java.lang.String pkg,
java.lang.ClassLoader[] loaders,
boolean newFormat)
public static void fixFirstEntryPoint()
@Nullable public static @Nullable java.lang.Object getBootLoadedCoreAPI()
public static java.lang.Object getModuleFromPackage(java.lang.String pkg,
java.lang.String layerName,
boolean newFormat)
public static boolean isJava8()
public static java.lang.ClassLoader layerClassLoader(java.lang.String name)
public static java.lang.String moduleName(java.lang.Object module)
public static void moveModuleToLayer(java.lang.ClassLoader targetLoader,
java.lang.String layerTo,
java.lang.String layerFrom,
java.lang.String moduleName)
public static void nukeAndFinalize(net.minecraftforge.forgespi.language.IModInfo mod,
java.lang.String pkg,
java.util.Set<java.lang.String> finalizedPkgs,
boolean newFormat)
public static void nukeAndFinalizeJava8(java.util.Set<java.lang.Class<?>> getSourcesFrom,
java.lang.ClassLoader target,
boolean first)
public static void removeServiceFrom(java.lang.String service,
java.lang.String impl,
java.lang.String layer)
public static void resyncModules(java.lang.ClassLoader loaderTo,
java.lang.String layerTo,
java.lang.ClassLoader loaderFrom)
public static void sanityCheckModule(java.lang.Class<?> c,
java.lang.String name)
@Nullable public static @Nullable java.lang.Class<?> serviceProviderClass(java.lang.Object servicesCatalog)
public static void verifyModule(java.lang.String className,
net.minecraftforge.forgespi.language.IModInfo info,
java.lang.Object moduleLayer)
throws java.lang.Exception
java.lang.Exception