Class NamespaceResourceManager

java.lang.Object
net.minecraft.resource.NamespaceResourceManager
All Implemented Interfaces:
ResourceManager

public class NamespaceResourceManager
extends Object
implements ResourceManager
  • Field Details

  • Constructor Details

    • NamespaceResourceManager

      public NamespaceResourceManager​(ResourceType type, String namespace)
  • Method Details

    • addPack

      public void addPack​(ResourcePack pack)
    • getAllNamespaces

      @Environment(CLIENT) public Set<String> getAllNamespaces()
      Gets a set of all namespaces offered by the resource packs loaded by this manager.
      Specified by:
      getAllNamespaces in interface ResourceManager
    • getResource

      public Resource getResource​(Identifier id) throws IOException
      Finds and returns the corresponding resource for a resource's identifier.
      Starts by scanning each resource pack from highest priority to lowest. If no resource packs were found to contain the requested entry, will throw a FileNotFoundException.
      Specified by:
      getResource in interface ResourceManager
      Parameters:
      id - the resource identifier to search for
      Throws:
      FileNotFoundException - if the identified resource could not be found, or could not be loaded.
      IOException - if the identified resource was found but a stream to it could not be opened.
    • containsResource

      @Environment(CLIENT) public boolean containsResource​(Identifier id)
      Checks whether any of the currently-loaded resource packs contain an entry for the given id.
      Starts by querying the resource pack with the highest priority to lowest until it finds one that responds to the requested identifier.
      Specified by:
      containsResource in interface ResourceManager
      Parameters:
      id - the resource identifier to search for
    • open

      protected InputStream open​(Identifier id, ResourcePack pack) throws IOException
      Throws:
      IOException
    • validate

      private void validate​(Identifier id) throws IOException
      Throws:
      IOException
    • isPathAbsolute

      private boolean isPathAbsolute​(Identifier id)
    • getAllResources

      public List<Resource> getAllResources​(Identifier id)
      Gets all of the available resources to the corresponding resource identifier.
      Resources are returned in load order, or ascending order of priority, so the last element in the returned list is what would be returned normally by getResource(net.minecraft.util.Identifier)
      Specified by:
      getAllResources in interface ResourceManager
      Parameters:
      id - the resource identifier to search for
      Throws:
      FileNotFoundException - if no matching resources could be found (i.e. if the list would be empty)
      IOException - if resources were found, but any one of them could not be opened to be read.
    • findResources

      public Collection<Identifier> findResources​(String startingPath, Predicate<String> pathPredicate)
      Returns a sorted list of identifiers matching a path predicate.
      Scanning begins in startingPath and each candidate file present under that directory will be offered up to the predicate to decide whether it should be included or not.
      Elements in the returned list may not, necessarily be unique. Additional effort is advised to ensure that duplicates in the returned list are discarded before loading.
      Specified by:
      findResources in interface ResourceManager
      Parameters:
      startingPath - the starting path to begin scanning from
      pathPredicate - a predicate to determine whether a path should be included or not
      Returns:
      the list matching identifiers
    • streamResourcePacks

      @Environment(CLIENT) public Stream<ResourcePack> streamResourcePacks()
      Gets a stream of loaded resource packs in increasing order of priority.
      Specified by:
      streamResourcePacks in interface ResourceManager
    • getMetadataPath

      static Identifier getMetadataPath​(Identifier id)