Package net.neoforged.fml.loading
Class ClassLoadingGuardian
java.lang.Object
net.neoforged.fml.loading.ClassLoadingGuardian
- All Implemented Interfaces:
AutoCloseable
Implements protections against accidentally loading classes owned by mods or Minecraft from any classloader
but a given, blessed loader (the transforming class loader).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ClassLoaderprivate final ClassFileTransformerprivate final Instrumentationprivate static final org.slf4j.Loggerprivate boolean -
Constructor Summary
ConstructorsConstructorDescriptionClassLoadingGuardian(Instrumentation instrumentation, List<ModFile> gameContent) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()static voidfail()NOTE: this is referenced by the generated self-destructing classes when an incorrect class is accessed via the transformer.private static @Nullable StringgetPackageName(String className) getPackages(List<ModFile> gameContent) private booleanisReachableFrom(ClassLoader classLoader, ClassLoader origin) voidsetAllowedClassLoader(ClassLoader allowedClassLoader)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
instrumentation
-
protectedPackages
-
guardianTransformer
-
uninstalled
private volatile boolean uninstalled -
allowedClassLoader
-
-
Constructor Details
-
ClassLoadingGuardian
-
-
Method Details
-
fail
public static void fail()NOTE: this is referenced by the generated self-destructing classes when an incorrect class is accessed via the transformer. -
setAllowedClassLoader
-
close
public void close()- Specified by:
closein interfaceAutoCloseable
-
getPackages
-
isReachableFrom
-
getPackageName
-