From 6b078ad8d2eeb073ee1e42a032503998ffbdafa9 Mon Sep 17 00:00:00 2001 From: StonksMan <126675741+StonksMan001@users.noreply.github.com> Date: Thu, 14 Nov 2024 15:54:03 +0100 Subject: [PATCH] Update AbstractClientPlayerEntityMixin.java It is much better to use @WrapOperation here instead of @Inject. Also it is a bad practice to extend mixin classes so also don't do that. --- .../AbstractClientPlayerEntityMixin.java | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/main/java/net/kaupenjoe/tutorialmod/mixin/AbstractClientPlayerEntityMixin.java b/src/main/java/net/kaupenjoe/tutorialmod/mixin/AbstractClientPlayerEntityMixin.java index c25dada..836fd83 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/mixin/AbstractClientPlayerEntityMixin.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/mixin/AbstractClientPlayerEntityMixin.java @@ -16,24 +16,10 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -// With help from https://github.com/Globox1997/MedievalWeapons/blob/1.21/src/main/java/net/medievalweapons/mixin/client/AbstractClientPlayerEntityMixin.java -// Under MIT License! @Mixin(AbstractClientPlayerEntity.class) -public abstract class AbstractClientPlayerEntityMixin extends PlayerEntity { - public AbstractClientPlayerEntityMixin(World world, BlockPos pos, float yaw, GameProfile gameProfile) { - super(world, pos, yaw, gameProfile); - } - - @Inject(method = "getFovMultiplier", at = @At(value = "TAIL"), locals = LocalCapture.CAPTURE_FAILSOFT, cancellable = true) - private void getFovMultiplierMixin(CallbackInfoReturnable info, float f) { - Item item = this.getActiveItem().getItem(); - ItemStack itemStack = this.getActiveItem(); - if (this.isUsingItem() && itemStack.isOf(ModItems.KAUPEN_BOW)) { - int i = this.getItemUseTime(); - float g = (float)i / 20.0f; - g = g > 1.0f ? 1.0f : g * g; - f *= 1.0f - g * 0.15f; - info.setReturnValue(MathHelper.lerp(MinecraftClient.getInstance().options.getFovEffectScale().getValue().floatValue(), 1.0f, f)); - } +public abstract class AbstractClientPlayerEntityMixin { + @WrapOperation(method = "getFovMultiplier", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")) + public boolean customBowFovMultipliers(ItemStack instance, Item item, Operation original) { + return original.call(instance, item) || instance.isOf(ModItems.KAUPEN_BOW); } }