Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Часть функционала BabyMod 1.21.4 fabric

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
2 Июл 2025
Сообщения
40
Реакции
0
Выберите загрузчик игры
  1. Fabric
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
вроде норм
 
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
+rep имба я спастил в свои супер дупер визуалы
 
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
зачем инжектить во всё подряд если можно 1 раз в
EntityRenderDispatcher
 
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
лс
 
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
ну норм для ностальгии
 
Всем привет!
Это моя уже 3 - 4 тема
Хочу слить вам олдовую функции из 1.12.2 читов - BabyMod.(Делает вашего персонажа бейбиком)
коды

BabyMod:
Expand Collapse Copy
package ru.zxcrace.gloubert.systems.module.impl.render;

import ru.zxcrace.gloubert.systems.module.Category;
import ru.zxcrace.gloubert.systems.module.Module;
import ru.zxcrace.gloubert.systems.module.ModuleRegister;

@ModuleRegister(name = "BabyModel", category = Category.RENDER)
public class BabyModel extends Module {
    public static BabyModel INSTANCE;

    public BabyModel() {
        INSTANCE = this;
    }
}

LivingRendererMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.entity.LivingEntityRenderer;
import net.minecraft.client.render.entity.state.LivingEntityRenderState;
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(LivingEntityRenderer.class)
public abstract class LivingEntityRendererMixin {
@Inject(method = "render", at = @At("HEAD"))
private void onRenderHead(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.push();
matrices.scale(0.5f, 0.5f, 0.5f);
        }
    }

@Inject(method = "render", at = @At("RETURN"))
private void onRenderReturn(LivingEntityRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
MinecraftClient mc = MinecraftClient.getInstance();
if (BabyModel.INSTANCE != null && BabyModel.INSTANCE.isEnabled() && state instanceof PlayerEntityRenderState playerState && mc.player != null && playerState.id == mc.player.getId()) {
            matrices.pop();
        }
    }
}
}


CameraMixin:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
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.CallbackInfo;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.CameraPositionEvent;
import ru.zxcrace.gloubert.systems.module.impl.render.BabyModel;

@Mixin(Camera.class)
public abstract class CameraMixin {

    @Shadow
    private Vec3d pos;
    @Shadow private Entity focusedEntity;

    @Shadow @Final
    private BlockPos.Mutable blockPos;

    @Inject(method = "setPos(Lnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true)
    private void posHook(Vec3d pos, CallbackInfo ci) {
        CameraPositionEvent event = new CameraPositionEvent(pos);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        this.pos = pos = event.getPos();
        blockPos.set(pos.x,pos.y,pos.z);
        ci.cancel();
    }

    @Inject(
            method = "update",
            at = @At(
                    value = "INVOKE",
                    target = "Lnet/minecraft/client/render/Camera;setPos(DDD)V",
                    shift = At.Shift.AFTER
            )
    )
    private void onUpdate(
            BlockView area,
            Entity focusedEntity,
            boolean thirdPerson,
            boolean inverseView,
            float tickDelta,
            CallbackInfo ci
    ) {
        if (!BabyModel.INSTANCE.isEnabled()) return;
        if (!thirdPerson) return;
        if (!(this.focusedEntity instanceof PlayerEntity)) return;

        double vanillaEye = 1.62;
        double babyEye = 0.81;

        this.pos = this.pos.subtract(0.0, vanillaEye - babyEye, 0.0);
    }
}

MixinEntity:
Expand Collapse Copy
package ru.zxcrace.gloubert.mixin.client;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
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;
import ru.zxcrace.gloubert.Gloubert;
import ru.zxcrace.gloubert.systems.event.impl.game.BoundingBoxControlEvent;

@Mixin(Entity.class)
public class MixinEntity {

    @Shadow
    private Box boundingBox;

    @ModifyExpressionValue(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isControlledByPlayer()Z"))
    private boolean fixFallDistanceCalculation(boolean original) {
        if ((Object) this == MinecraftClient.getInstance().player) {
            return false;
        }
        return original;
    }

    @Inject(method = "getBoundingBox", at = @At("HEAD"), cancellable = true)
    public final void getBoundingBox(CallbackInfoReturnable<Box> cir) {
        BoundingBoxControlEvent event = new BoundingBoxControlEvent(boundingBox, (Entity) (Object) this);
        Gloubert.getInstance().getEventManager().triggerEvent(event);
        cir.setReturnValue(event.getBox());
    }
}
Надеюсь сможете перенести
ps: если будут какие то баги то пишите буду фиксить
Пожалуйста, авторизуйтесь для просмотра ссылки.
ваще не похож тупо меняет размер модели
 
Назад
Сверху Снизу