From 4bd998fae54c5e75f5b72bfc0af21b15dd76100a Mon Sep 17 00:00:00 2001 From: Katherine Date: Fri, 7 Feb 2025 17:26:35 -0500 Subject: [PATCH] Fix running on Forge 47.3.26+ (#191) Update Forge and mark TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin injectors as not required, for Forge 47.3.26+ (#191) Signed-off-by: unilock --- .../TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin.java | 4 ++-- gradle.properties | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin.java index 3baca35b2..df6856937 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin.java @@ -41,7 +41,7 @@ public abstract class TradeOffersTypeAwareBuyForOneEmeraldFactoryMixin { * We want to prevent this default logic so modded villager types will work. * So we return an empty stream so an exception is never thrown. */ - @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/registry/DefaultedRegistry;stream()Ljava/util/stream/Stream;")) + @Redirect(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/registry/DefaultedRegistry;stream()Ljava/util/stream/Stream;"), require = 0) private Stream disableVanillaCheck(DefaultedRegistry instance) { return Stream.empty(); } @@ -49,7 +49,7 @@ private Stream disableVanillaCheck(DefaultedRegistry instan /** * To prevent "item" -> "air" trades, if the result of a type aware trade is air, make sure no offer is created. */ - @Inject(method = "create", at = @At(value = "NEW", target = "net/minecraft/village/TradeOffer"), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true) + @Inject(method = "create", at = @At(value = "NEW", target = "net/minecraft/village/TradeOffer"), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true, require = 0) private void failOnNullItem(Entity entity, Random random, CallbackInfoReturnable cir, ItemStack buyingItem) { if (buyingItem.isEmpty()) { // Will return true for an "empty" item stack that had null passed in the ctor cir.setReturnValue(null); // Return null to prevent creation of empty trades diff --git a/gradle.properties b/gradle.properties index 9645597fc..2893cd1e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -67,7 +67,7 @@ fabric-client-tags-api-v1-version=1.1.2 # FFAPI Properties loom.platform=forge -forge_version=1.20.1-47.2.6 +forge_version=1.20.1-47.3.27 pack_format=15 forgified_version=1.11.10 forge_fabric_loader_version=2.6.0+0.15.0+1.20.1