Package net.neoforged.neoforge.event
Class ModMismatchEvent
java.lang.Object
net.neoforged.bus.api.Event
net.neoforged.neoforge.event.ModMismatchEvent
- All Implemented Interfaces:
net.neoforged.fml.event.IModBusEvent
public class ModMismatchEvent
extends net.neoforged.bus.api.Event
implements net.neoforged.fml.event.IModBusEvent
Fires when the mod loader is in the process of loading a world that was last saved
with mod versions that differ from the currently-loaded versions. This can be used to
enqueue work to run at a later point, such as multi-file migration of data.
Note that level and world information has not yet been fully loaded; as such, it is unsafe to access server or level information during handling of this event.
This event is not cancellable, and does not
.invalid reference
have a result
This event is fired on the mod-specific event bus, on both logical sides.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordstatic final record -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final LevelStorageSource.LevelDirectoryThe level being loaded.Which mods have specified that they have handled version mismatches.private final HashMap<String, ModMismatchEvent.MismatchedVersionInfo> A set of previously-known versions that have mismatched with the currently loaded versions. -
Constructor Summary
ConstructorsConstructorDescriptionModMismatchEvent(LevelStorageSource.LevelDirectory levelDirectory, Map<String, org.apache.maven.artifact.versioning.ArtifactVersion> previousVersions, Map<String, org.apache.maven.artifact.versioning.ArtifactVersion> missingVersions) -
Method Summary
Modifier and TypeMethodDescriptionbooleanboolean@Nullable org.apache.maven.artifact.versioning.ArtifactVersiongetCurrentVersion(String modId) Gets the current level directory for the world being loaded.@Nullable org.apache.maven.artifact.versioning.ArtifactVersiongetPreviousVersion(String modId) Fetch a previous version of a given mod, if it has been mismatched.Optional<net.neoforged.fml.ModContainer> getResolver(String modid) getVersionDifference(String modid) voidmarkResolved(String modId) Marks the mod version mismatch as having been resolved safely by the current mod.booleanwasResolved(String modId) Fetches the status of a mod mismatch handling state.
-
Field Details
-
levelDirectory
The level being loaded. Useful for things likeDimensionDataStorageto manage multiple files changing between mod versions. -
versionDifferences
A set of previously-known versions that have mismatched with the currently loaded versions. -
resolved
Which mods have specified that they have handled version mismatches.
-
-
Constructor Details
-
ModMismatchEvent
@Internal public ModMismatchEvent(LevelStorageSource.LevelDirectory levelDirectory, Map<String, org.apache.maven.artifact.versioning.ArtifactVersion> previousVersions, Map<String, org.apache.maven.artifact.versioning.ArtifactVersion> missingVersions)
-
-
Method Details
-
getLevelDirectory
Gets the current level directory for the world being loaded. Can be used for file operations and manual modification of mod files before world load. -
getPreviousVersion
@Nullable public @Nullable org.apache.maven.artifact.versioning.ArtifactVersion getPreviousVersion(String modId) Fetch a previous version of a given mod, if it has been mismatched.- Parameters:
modId- The mod to fetch previous version for.- Returns:
- The previously known mod version, or
Optional.empty()if unknown/not found.
-
getCurrentVersion
@Nullable public @Nullable org.apache.maven.artifact.versioning.ArtifactVersion getCurrentVersion(String modId) -
markResolved
Marks the mod version mismatch as having been resolved safely by the current mod. -
wasResolved
Fetches the status of a mod mismatch handling state. -
getVersionDifference
-
getResolver
-
anyUnresolved
public boolean anyUnresolved() -
getUnresolved
-
anyResolved
public boolean anyResolved() -
getResolved
-