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
Modifier and TypeClassDescriptionstatic final record
static final record
-
Field Summary
Modifier and TypeFieldDescriptionprivate final LevelStorageSource.LevelDirectory
The 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
ConstructorDescriptionModMismatchEvent
(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 TypeMethodDescriptionboolean
boolean
@Nullable org.apache.maven.artifact.versioning.ArtifactVersion
getCurrentVersion
(String modId) Gets the current level directory for the world being loaded.@Nullable org.apache.maven.artifact.versioning.ArtifactVersion
getPreviousVersion
(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) void
markResolved
(String modId) Marks the mod version mismatch as having been resolved safely by the current mod.boolean
wasResolved
(String modId) Fetches the status of a mod mismatch handling state.
-
Field Details
-
levelDirectory
The level being loaded. Useful for things likeDimensionDataStorage
to 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
-