From 307486a32ccf865f47521162589aa3730f01ec81 Mon Sep 17 00:00:00 2001 From: Frank Bauer Date: Fri, 25 Jun 2021 11:34:32 +0200 Subject: [PATCH] Changes to TagLoader --- .../ru/bclib/mixin/common/TagLoaderMixin.java | 15 ++++++++------- src/main/java/ru/bclib/util/TagHelper.java | 6 +++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/bclib/mixin/common/TagLoaderMixin.java b/src/main/java/ru/bclib/mixin/common/TagLoaderMixin.java index 743a59f5..8652417d 100644 --- a/src/main/java/ru/bclib/mixin/common/TagLoaderMixin.java +++ b/src/main/java/ru/bclib/mixin/common/TagLoaderMixin.java @@ -1,26 +1,27 @@ package ru.bclib.mixin.common; import java.util.Map; -import java.util.concurrent.Executor; -import java.util.function.Supplier; +import net.minecraft.server.packs.resources.ResourceManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.Inject; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.Tag; import net.minecraft.tags.TagLoader; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import ru.bclib.util.TagHelper; @Mixin(TagLoader.class) public class TagLoaderMixin { @Shadow - private String name; + private String directory; - @ModifyArg(method = "prepare", at = @At(value = "INVOKE", target = "Ljava/util/concurrent/CompletableFuture;supplyAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;")) - public Supplier> be_modifyTags(Supplier> supplier, Executor executor) { - return () -> TagHelper.apply(name, supplier.get()); + //@ModifyArg(method = "prepare", at = @At(value = "INVOKE", target = "Ljava/util/concurrent/CompletableFuture;supplyAsync(Ljava/util/function/Supplier;Ljava/util/concurrent/Executor;)Ljava/util/concurrent/CompletableFuture;")) + @Inject(method="load", at=@At(value="RETURN")) + public void be_modifyTags(ResourceManager resourceManager, CallbackInfoReturnable> cir) { + TagHelper.apply(directory, cir.getReturnValue()); } } diff --git a/src/main/java/ru/bclib/util/TagHelper.java b/src/main/java/ru/bclib/util/TagHelper.java index f5dc604d..dae193d0 100644 --- a/src/main/java/ru/bclib/util/TagHelper.java +++ b/src/main/java/ru/bclib/util/TagHelper.java @@ -58,11 +58,11 @@ public class TagHelper { return builder; } - public static Map apply(String entry, Map tagsMap) { + public static Map apply(String directory, Map tagsMap) { Map> endTags = null; - if (entry.equals("block")) { + if ("tags/blocks".equals(directory)) { endTags = TAGS_BLOCK; - } else if (entry.equals("item")) { + } else if ("tags/items".equals(directory)) { endTags = TAGS_ITEM; } if (endTags != null) {