Class ModMismatchEvent

java.lang.Object
net.minecraftforge.eventbus.api.Event
net.minecraftforge.event.ModMismatchEvent
All Implemented Interfaces:
IModBusEvent

public class ModMismatchEvent extends net.minecraftforge.eventbus.api.Event implements 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 have a result.

This event is fired on the mod-specific event bus, on both logical sides.

  • Field Details

    • levelPath

      @Nullable private final @Nullable Path levelPath
      The level being loaded. Useful for things like DimensionDataStorage to manage multiple files changing between mod versions.
    • versionDifferences

      private final HashMap<String,ModMismatchEvent.MismatchedVersionInfo> versionDifferences
      A set of previously-known versions that have mismatched with the currently loaded versions.
    • resolved

      private final HashMap<String,ModContainer> resolved
      Which mods have specified that they have handled version mismatches.
  • Constructor Details

    • ModMismatchEvent

      @Internal public ModMismatchEvent(@Nullable @Nullable Path levelPath, Map<String,org.apache.maven.artifact.versioning.ArtifactVersion> previousVersions, Map<String,org.apache.maven.artifact.versioning.ArtifactVersion> missingVersions)
  • Method Details

    • getLevelPath

      @Nullable public @Nullable Path getLevelPath()
      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

      public void markResolved(String modId)
      Marks the mod version mismatch as having been resolved safely by the current mod.
    • wasResolved

      public boolean wasResolved(String modId)
      Fetches the status of a mod mismatch handling state.
    • getVersionDifference

      public Optional<ModMismatchEvent.MismatchedVersionInfo> getVersionDifference(String modid)
    • getResolver

      public Optional<ModContainer> getResolver(String modid)
    • anyUnresolved

      public boolean anyUnresolved()
    • getUnresolved

    • anyResolved

      public boolean anyResolved()
    • getResolved