From 426e163726894497ad85c28169108dcc07c4eaba Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Thu, 23 Jun 2022 12:46:11 +0800 Subject: [PATCH] Fix villager stock resetting (#618) --- .../mixin/core/world/entity/npc/VillagerMixin.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/entity/npc/VillagerMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/entity/npc/VillagerMixin.java index 1e2385ef..4913b8d8 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/entity/npc/VillagerMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/entity/npc/VillagerMixin.java @@ -1,5 +1,6 @@ package io.izzel.arclight.common.mixin.core.world.entity.npc; +import io.izzel.arclight.common.bridge.core.item.MerchantOfferBridge; import io.izzel.arclight.common.bridge.core.world.WorldBridge; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.LightningBolt; @@ -20,7 +21,6 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import io.izzel.arclight.common.bridge.core.item.MerchantOfferBridge; @Mixin(net.minecraft.world.entity.npc.Villager.class) public abstract class VillagerMixin extends AbstractVillagerMixin { @@ -39,12 +39,12 @@ public abstract class VillagerMixin extends AbstractVillagerMixin { } } - @Redirect(method = "updateSpecialPrices", at = @At(value = "INVOKE", ordinal = 0, target = "Lnet/minecraft/world/item/trading/MerchantOffer;addToSpecialPriceDiff(I)V")) - private void arclight$replenish(MerchantOffer merchantOffer, int add) { - VillagerReplenishTradeEvent event = new VillagerReplenishTradeEvent((Villager) this.getBukkitEntity(), ((MerchantOfferBridge) merchantOffer).bridge$asBukkit()); + @Redirect(method = "catchUpDemand", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/trading/MerchantOffer;resetUses()V")) + private void arclight$replenish(MerchantOffer instance) { + VillagerReplenishTradeEvent event = new VillagerReplenishTradeEvent((Villager) this.getBukkitEntity(), ((MerchantOfferBridge) instance).bridge$asBukkit()); Bukkit.getPluginManager().callEvent(event); if (!event.isCancelled()) { - merchantOffer.resetUses(); + instance.resetUses(); } }