package com.thebrokenrail.gulliverreloaded.mixin; import com.thebrokenrail.gulliverreloaded.ScaledEntity; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.network.ClientPlayerInteractionManager; import org.spongepowered.asm.mixin.Final; 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.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @SuppressWarnings("unused") @Environment(EnvType.CLIENT) @Mixin(ClientPlayerInteractionManager.class) public class MixinClientPlayerInteractionManager { @Shadow @Final private MinecraftClient client; @Inject(at = @At("RETURN"), method = "getReachDistance", cancellable = true) public void getReachDistance(CallbackInfoReturnable info) { assert client.player != null; info.setReturnValue((float) Math.min(8d, info.getReturnValue() * ((ScaledEntity) client.player).getScale())); } }