diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ReloadableServerResourcesMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ReloadableServerResourcesMixin.java index 17f1627..206ee90 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ReloadableServerResourcesMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ReloadableServerResourcesMixin.java @@ -10,7 +10,6 @@ import dev.zenfyr.pulsar.impl.resources.WrappedReloader; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; -import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.ReloadableServerResources; @@ -51,13 +50,11 @@ abstract class ReloadableServerResourcesMixin implements InternalContentsAccesso } @Override - public void pulsar$setReloaders(List reloaders) { + public void pulsar$setReloaders(Map reloaders) { this.reloadersByIdentifier.clear(); this.reloadersByType.clear(); - for (IdentifiableResourceReloadListener reloader : reloaders) { - this.reloadersByIdentifier.put(reloader.getFabricId(), reloader); - } + this.reloadersByIdentifier.putAll(reloaders); } @WrapOperation( diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ResourceManagerHelperImplMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ResourceManagerHelperImplMixin.java index b89c0b9..bfc1cbd 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ResourceManagerHelperImplMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixins/resources/ResourceManagerHelperImplMixin.java @@ -8,6 +8,8 @@ import dev.zenfyr.pulsar.impl.resources.InternalContentsAccessor; import dev.zenfyr.pulsar.impl.resources.InternalContext; import java.util.List; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; import net.fabricmc.fabric.impl.resource.loader.ResourceManagerHelperImpl; import net.minecraft.resources.ResourceLocation; @@ -55,8 +57,11 @@ public class ResourceManagerHelperImplMixin { var internal = InternalContext.LOCAL.get(); var cls = IdentifiableResourceReloadListener.class; ((InternalContentsAccessor) internal.contents()) - .pulsar$setReloaders( - listeners.stream().filter(cls::isInstance).map(cls::cast).toList()); + .pulsar$setReloaders(listeners.stream() + .filter(cls::isInstance) + .map(cls::cast) + .collect(Collectors.toMap( + IdentifiableResourceReloadListener::getFabricId, Function.identity()))); } } } diff --git a/src/main/java/dev/zenfyr/pulsar/impl/resources/InternalContentsAccessor.java b/src/main/java/dev/zenfyr/pulsar/impl/resources/InternalContentsAccessor.java index ddeaec8..535159b 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/resources/InternalContentsAccessor.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/resources/InternalContentsAccessor.java @@ -1,9 +1,10 @@ package dev.zenfyr.pulsar.impl.resources; import dev.zenfyr.pulsar.api.resources.DataPackContentsAccessor; -import java.util.List; -import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; +import java.util.Map; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.PreparableReloadListener; public interface InternalContentsAccessor extends DataPackContentsAccessor { - void pulsar$setReloaders(List reloaders); + void pulsar$setReloaders(Map reloaders); }