No infinite emerald trades

This commit is contained in:
skippyall
2026-05-24 14:15:25 +02:00
parent d4f65044a5
commit 5cfa7c1b45
@@ -1,15 +1,25 @@
package de.foxgalaxy.villa.mixin; package de.foxgalaxy.villa.mixin;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.trading.MerchantOffer; import net.minecraft.world.item.trading.MerchantOffer;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin; 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.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(MerchantOffer.class) @Mixin(MerchantOffer.class)
public class MerchantOfferMixin { public class MerchantOfferMixin {
@Shadow
@Final
private ItemStack result;
@Inject(method = "increaseUses", at = @At("HEAD"), cancellable = true) @Inject(method = "increaseUses", at = @At("HEAD"), cancellable = true)
private void cancelUseIncrease(CallbackInfo ci) { private void cancelUseIncrease(CallbackInfo ci) {
if(!result.is(Items.EMERALD)) {
ci.cancel(); ci.cancel();
} }
}
} }