From c25ea8ad7f1b871e99ad9f3e147a16814f68e704 Mon Sep 17 00:00:00 2001 From: dhyces <10985914+dhyces@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:08:59 -0700 Subject: [PATCH] Revert ClientTagManager to immediately resolve In the future, it would be cool to make this back into an async operation, but I would have to find some places for mixins to make all resources wait until tags are done --- .../client/tags/manager/ClientTagManager.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/dev/dhyces/trimmed/impl/client/tags/manager/ClientTagManager.java b/common/src/main/java/dev/dhyces/trimmed/impl/client/tags/manager/ClientTagManager.java index 0d0ccc76..af1b828a 100644 --- a/common/src/main/java/dev/dhyces/trimmed/impl/client/tags/manager/ClientTagManager.java +++ b/common/src/main/java/dev/dhyces/trimmed/impl/client/tags/manager/ClientTagManager.java @@ -29,6 +29,7 @@ import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.DependencySorter; import net.minecraft.util.GsonHelper; +import net.minecraft.util.Unit; import net.minecraft.util.profiling.ProfilerFiller; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -72,17 +73,13 @@ public CompletableFuture reload(PreparationBarrier pPreparationBarrier, Re return load(pResourceManager, TrimmedClient.getStaticHolder(), false).thenCompose(pPreparationBarrier::wait).thenRun(() -> Trimmed.logInDev("Client tags loaded!")); } - private static CompletableFuture load(ResourceManager resourceManager, GameRegistryHolder registryHolder, boolean onlyLoadSynced) { - return CompletableFuture.allOf(StreamSupport.stream(KeyResolvers.getEntries().spliterator(), false) - .map(entry -> CompletableFuture.runAsync(() -> { - // if onlyLoadSynced, only resolveTags if isSynced and requiresActiveWorld - // otherwise, load if not requiresActiveWorld or isSynced - if (onlyLoadSynced ? entry.getValue().requiresActiveWorld() && registryHolder.isSynced() : !entry.getValue().requiresActiveWorld() || registryHolder.isSynced()) { - resolveTags(entry.getKey(), entry.getValue(), resourceManager, registryHolder.registryAccess().createSerializationContext(JsonOps.INSTANCE)); - } - })) - .toArray(CompletableFuture[]::new) - ); + private static CompletableFuture load(ResourceManager resourceManager, GameRegistryHolder registryHolder, boolean onlyLoadSynced) { + for (Map.Entry> entry : KeyResolvers.getEntries()) { + if (onlyLoadSynced ? entry.getValue().requiresActiveWorld() && registryHolder.isSynced() : !entry.getValue().requiresActiveWorld() || registryHolder.isSynced()) { + resolveTags(entry.getKey(), entry.getValue(), resourceManager, registryHolder.registryAccess().createSerializationContext(JsonOps.INSTANCE)); + } + } + return CompletableFuture.completedFuture(Unit.INSTANCE); } private static void resolveTags(ResourceLocation registryId, KeyResolver keyResolver, ResourceManager resourceManager, DynamicOps jsonOps) {