package cloudburst.rejects.mixin; import cloudburst.rejects.modules.NoInteract; import minegame159.meteorclient.systems.modules.Modules; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerInteractionManager; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; 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; @Mixin(ClientPlayerInteractionManager.class) public class ClientPlayerInteractionManagerMixin { @Final @Shadow private MinecraftClient client; @Inject(method = "interactBlock", at = @At("HEAD"), cancellable = true) private void onInteractBlock(ClientPlayerEntity player, ClientWorld world, Hand hand, BlockHitResult hitResult, CallbackInfoReturnable info) { if (Modules.get().get(NoInteract.class).noInteractBlock(client.world.getBlockState(hitResult.getBlockPos()).getBlock())) info.setReturnValue(ActionResult.FAIL); } @Inject(method = "interactEntity", at = @At("HEAD"), cancellable = true) private void onInteractEntity(PlayerEntity player, Entity entity, Hand hand, CallbackInfoReturnable info) { if (Modules.get().get(NoInteract.class).noInteractEntity(entity)) info.setReturnValue(ActionResult.FAIL); } }