diff --git a/src/main/java/com/viaversion/viafabricplus/injection/mixin/features/item/interaction/MixinBoneMealItem.java b/src/main/java/com/viaversion/viafabricplus/injection/mixin/features/item/interaction/MixinBoneMealItem.java index 2e99c903c..273b7ef1f 100644 --- a/src/main/java/com/viaversion/viafabricplus/injection/mixin/features/item/interaction/MixinBoneMealItem.java +++ b/src/main/java/com/viaversion/viafabricplus/injection/mixin/features/item/interaction/MixinBoneMealItem.java @@ -25,21 +25,21 @@ import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.BoneMealItem; +import net.minecraft.world.item.context.UseOnContext; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Coerce; -import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(BoneMealItem.class) public abstract class MixinBoneMealItem { - @Redirect(method = "useOn", at = @At(value = "FIELD", target = "Lnet/minecraft/world/InteractionResult;PASS:Lnet/minecraft/world/InteractionResult$Pass;", ordinal = 0)) - private @Coerce Object swingHand() { + @Inject(method = "useOn", at = @At("RETURN"), cancellable = true) + private void swingHand(UseOnContext context, CallbackInfoReturnable cir) { if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_21_11)) { - return InteractionResult.SUCCESS; - } else { - return InteractionResult.PASS; + if (cir.getReturnValue() == InteractionResult.PASS) { + cir.setReturnValue(InteractionResult.SUCCESS); + } } } - }