From c15b95e2be8467306e03f12d1638e840d10a6726 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 13 Apr 2024 22:26:23 -0400 Subject: [PATCH] Fix mixin.perf.resourcepacks overwriting Fusion patches Related: #392 --- .../perf/resourcepacks/ForgePathPackResourcesMixin.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resourcepacks/ForgePathPackResourcesMixin.java b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resourcepacks/ForgePathPackResourcesMixin.java index ddb9184c..89655e5b 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resourcepacks/ForgePathPackResourcesMixin.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/mixin/perf/resourcepacks/ForgePathPackResourcesMixin.java @@ -27,7 +27,7 @@ import java.util.Collection; import java.util.Objects; import java.util.Set; -@Mixin(PathPackResources.class) +@Mixin(value = PathPackResources.class, priority = 1100) public abstract class ForgePathPackResourcesMixin implements ICachingResourcePack { @Shadow(remap = false) protected abstract Path resolve(String... paths); @@ -75,14 +75,15 @@ public abstract class ForgePathPackResourcesMixin implements ICachingResourcePac this.cacheEngine = null; } - @Inject(method = "getNamespaces", at = @At("HEAD"), cancellable = true) - private void useCacheForNamespaces(PackType type, CallbackInfoReturnable> cir) { + @Redirect(method = "getNamespaces", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/resource/PathPackResources;getNamespacesFromDisk(Lnet/minecraft/server/packs/PackType;)Ljava/util/Set;")) + private Set useCacheForNamespaces(PathPackResources instance, PackType type) { PackResourcesCacheEngine engine = cacheEngine; if(engine != null) { Set namespaces = engine.getNamespaces(type); if(namespaces != null) - cir.setReturnValue(namespaces); + return namespaces; } + return this.getNamespacesFromDisk(type); } @Redirect(method = "getRootResource", at = @At(value = "INVOKE", target = "Ljava/nio/file/Files;exists(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z"))