fabric-resource-loader-v1-1.0.4+14959b836f.jar

Download file
    package net.fabricmc.fabric.impl.resource.v1;

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import net.fabricmc.fabric.api.resource.v1.DataResourceLoader;
import net.minecraft.class_2960;
import net.minecraft.class_3264;
import net.minecraft.class_3302;
import net.minecraft.class_7225;
import org.jetbrains.annotations.Nullable;

public final class DataResourceLoaderImpl extends ResourceLoaderImpl implements DataResourceLoader {
   public static final DataResourceLoaderImpl INSTANCE = new DataResourceLoaderImpl();
   private final Map<class_2960, Function<class_7225.class_7874, class_3302>> addedReloaderFactories = new LinkedHashMap();

   private DataResourceLoaderImpl() {
      super(class_3264.field_14190);
   }

   protected boolean hasResourceReloader(class_2960 id) {
      return super.hasResourceReloader(id) || this.addedReloaderFactories.containsKey(id);
   }

   public void registerReloader(class_2960 id, Function<class_7225.class_7874, class_3302> factory) {
      Objects.requireNonNull(id, "The reloader identifier should not be null.");
      Objects.requireNonNull(factory, "The reloader factory should not be null.");
      this.checkUniqueResourceReloader(id);

      for(Map.Entry<class_2960, Function<class_7225.class_7874, class_3302>> entry : this.addedReloaderFactories.entrySet()) {
         if (entry.getValue() == factory) {
            throw new IllegalStateException("Resource reloader factory with ID %s already in resource reloader factory set with ID %s!".formatted(id, entry.getKey()));
         }
      }

      this.addedReloaderFactories.put(id, factory);
   }

   protected Set<Map.Entry<class_2960, class_3302>> collectReloadersToAdd(@Nullable SetupMarkerResourceReloader setupMarker) {
      if (setupMarker == null) {
         throw new IllegalStateException("The setup marker should not be null for data resource loading.");
      } else {
         class_7225.class_7874 registries = setupMarker.registries();
         Set<Map.Entry<class_2960, class_3302>> reloadersToAdd = super.collectReloadersToAdd(setupMarker);

         for(Map.Entry<class_2960, Function<class_7225.class_7874, class_3302>> entry : this.addedReloaderFactories.entrySet()) {
            class_3302 reloader = (class_3302)((Function)entry.getValue()).apply(registries);
            reloadersToAdd.add(Map.entry((class_2960)entry.getKey(), reloader));
         }

         return reloadersToAdd;
      }
   }
}
    
Download file