Interface ModContainer


public interface ModContainer
Represents a mod.
  • Method Details

    • getMetadata

      ModMetadata getMetadata()
      Returns the metadata of this mod.
    • getRootPaths

      List<Path> getRootPaths()
      Returns the root directories of the mod (inside JAR/folder), exposing its contents.

      The paths may point to regular folders or into mod JARs. Multiple root paths may occur in development environments with -Dfabric.classPathGroups as used in multi-project mod setups.

      A path returned by this method may be incompatible with Path.toFile() as its FileSystem doesn't necessarily represent the OS file system, but potentially a virtual view of jar contents or another abstraction.

      Returns:
      the root directories of the mod, may be empty for builtin or other synthetic mods
    • findPath

      default Optional<Path> findPath(String file)
      Gets an NIO reference to a file inside the JAR/folder.

      The path, if present, is guaranteed to exist!

      A path returned by this method may be incompatible with Path.toFile() as its FileSystem doesn't necessarily represent the OS file system, but potentially a virtual view of jar contents or another abstraction.

      Parameters:
      file - The location from a root path, using / as a separator.
      Returns:
      optional containing the path to a given file or empty if it can't be found
    • getOrigin

      ModOrigin getOrigin()
      Gets where the mod was loaded from originally, the mod jar/folder itself.

      This location is not necessarily identical to the code source used at runtime, a mod may get copied or otherwise transformed before being put on the class path. It thus mostly represents the installation and initial loading, not what is being directly accessed at runtime.

      The mod origin is provided for working with the installation like telling the user where a mod has been installed at. Accessing the files inside a mod jar/folder should use findPath(java.lang.String) and getRootPaths() instead. Those also abstract jar accesses through the virtual ZipFileSystem away.

      Returns:
      mod origin
    • getContainingMod

      Optional<ModContainer> getContainingMod()
      Get the mod containing this mod (nested jar parent).
      Returns:
      mod containing this mod or empty if not nested
    • getContainedMods

      Collection<ModContainer> getContainedMods()
      Get the active mods contained within this mod (nested jar children).
      Returns:
      active contained mods within this mod's jar
    • getRoot

      @Deprecated default Path getRoot()
      Deprecated.
      use getRootPaths() instead
    • getRootPath

      @Deprecated Path getRootPath()
      Deprecated.
      use getRootPaths() instead
    • getPath

      @Deprecated Path getPath(String file)
      Deprecated.