Package net.minecraftforge.fml
Class ModLoader
java.lang.Object
net.minecraftforge.fml.ModLoader
Loads mods.
 Dispatch cycle is seen in 
#loadMods() and #finishMods()
 Overall sequence for loadMods is:
 - CONSTRUCT
- Constructs the mod instance. Mods can typically setup basic environment such as Event listeners and Configuration specifications here.
- Automated dispatches
- Dispatches automated elements : net.minecraftforge.fml.common.Mod.EventBusSubscriber,net.minecraftforge.event.RegistryEvent,net.minecraftforge.common.capabilities.CapabilityInjectand others
- CONFIG_LOAD
- Dispatches ConfigLoadEvent to mods
- COMMON_SETUP
- Dispatches net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEventto mods
- SIDED_SETUP
- Dispatches net.minecraftforge.fml.event.lifecycle.FMLClientSetupEventornet.minecraftforge.fml.event.lifecycle.FMLDedicatedServerSetupEventto mods
- ENQUEUE_IMC
- Dispatches net.minecraftforge.fml.event.lifecycle.InterModEnqueueEventto mods, for enqueuingInterModCommsmessages for other mods to receive subsequently
- PROCESS_IMC
- Dispatches net.minecraftforge.fml.event.lifecycle.InterModProcessEventto mods, for processingInterModCommsmessages received from other mods prior to this event
- COMPLETE
- Dispatches net.minecraftforge.fml.event.lifecycle.FMLLoadCompleteEventto mods, and completes the mod loading sequence.
- 
Nested Class SummaryNested Classes
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprivate final Set<IModLoadingState>private static ModLoaderprivate final List<ModLoadingException>private final LoadingModListprivate booleanprivate final List<ModLoadingWarning>private static final org.apache.logging.log4j.Loggerprivate ModListprivate static booleanprivate final ModStateManager
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddWarning(ModLoadingWarning warning) private ModContainerbuildModContainerFromTOML(net.minecraftforge.forgespi.locating.IModFile modFile, Map<String, net.minecraftforge.forgespi.language.IModInfo> modInfoMap, Map.Entry<String, ? extends net.minecraftforge.forgespi.language.IModLanguageProvider.IModLanguageLoader> idToProviderEntry) private List<ModContainer>buildMods(net.minecraftforge.forgespi.locating.IModFile modFile) private Stringprivate Stringprivate voiddispatchAndHandleError(IModLoadingState state, ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable ticker, ProgressMeter progressBar) voidfinishMods(ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable periodicTask) voidgatherAndInitializeMods(ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable periodicTask) Run on the primary starting thread by ClientModLoader and ServerModLoaderstatic ModLoaderget()private voidhandleInlineTransition(Consumer<ModList> transition, IModLoadingState state, ModWorkManager.DrivenExecutor syncExecutor, Runnable ticker) booleanhasCompletedState(String stateName) static booleanstatic booleanvoidloadMods(ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable periodicTask) <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent>
 voidpostEvent(T e) <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent>
 TpostEventWithReturn(T e) <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent>
 voidpostEventWithWrapInModOrder(T e, BiConsumer<ModContainer, T> pre, BiConsumer<ModContainer, T> post) <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent>
 voidpostEventWrapContainerInModOrder(T event) <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent>
 voidrunEventGenerator(Function<ModContainer, T> generator) private voidwaitForTransition(IModLoadingState state, ModWorkManager.DrivenExecutor syncExecutor, Runnable ticker, CompletableFuture<Void> transition) 
- 
Field Details- 
LOGGERprivate static final org.apache.logging.log4j.Logger LOGGER
- 
INSTANCE
- 
loadingModList
- 
loadingExceptions
- 
loadingWarnings
- 
stateManager
- 
loadingStateValidprivate boolean loadingStateValid
- 
statusConsumer
- 
completedStates
- 
modList
- 
runningDataGenprivate static boolean runningDataGen
 
- 
- 
Constructor Details- 
ModLoaderprivate ModLoader()
 
- 
- 
Method Details- 
computeLanguageList
- 
computeModLauncherServiceList
- 
get
- 
gatherAndInitializeModspublic void gatherAndInitializeMods(ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable periodicTask) Run on the primary starting thread by ClientModLoader and ServerModLoader- Parameters:
- syncExecutor- An executor to run tasks on the main thread
- parallelExecutor- An executor to run tasks on a parallel loading thread pool
- periodicTask- Optional periodic task to perform on the main thread while other activities run
 
- 
loadModspublic void loadMods(ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable periodicTask) 
- 
finishModspublic void finishMods(ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable periodicTask) 
- 
dispatchAndHandleErrorprivate void dispatchAndHandleError(IModLoadingState state, ModWorkManager.DrivenExecutor syncExecutor, Executor parallelExecutor, Runnable ticker, ProgressMeter progressBar) 
- 
handleInlineTransitionprivate void handleInlineTransition(Consumer<ModList> transition, IModLoadingState state, ModWorkManager.DrivenExecutor syncExecutor, Runnable ticker) 
- 
waitForTransitionprivate void waitForTransition(IModLoadingState state, ModWorkManager.DrivenExecutor syncExecutor, Runnable ticker, CompletableFuture<Void> transition) 
- 
buildMods
- 
buildModContainerFromTOMLprivate ModContainer buildModContainerFromTOML(net.minecraftforge.forgespi.locating.IModFile modFile, Map<String, net.minecraftforge.forgespi.language.IModInfo> modInfoMap, Map.Entry<String, ? extends net.minecraftforge.forgespi.language.IModLanguageProvider.IModLanguageLoader> idToProviderEntry) 
- 
isLoadingStateValidpublic static boolean isLoadingStateValid()- Returns:
- If the current mod loading state is valid. Use if you interact with vanilla systems directly during loading and don't want to cause extraneous crashes due to trying to do things that aren't possible in a "broken load"
 
- 
hasCompletedState
- 
runEventGeneratorpublic <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent> void runEventGenerator(Function<ModContainer, T> generator) 
- 
postEvent
- 
postEventWithReturn
- 
postEventWrapContainerInModOrderpublic <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent> void postEventWrapContainerInModOrder(T event) 
- 
postEventWithWrapInModOrderpublic <T extends net.minecraftforge.eventbus.api.Event & IModBusEvent> void postEventWithWrapInModOrder(T e, BiConsumer<ModContainer, T> pre, BiConsumer<ModContainer, T> post) 
- 
getWarnings
- 
addWarning
- 
isDataGenRunningpublic static boolean isDataGenRunning()
 
-