From 1bf4423ce2e1b66958cd234598ad34db4d21449f Mon Sep 17 00:00:00 2001 From: Wide-Cat Date: Wed, 30 Jul 2025 18:36:15 +0100 Subject: [PATCH 01/20] Bump version to 25w31a, some fixes. Large changes to entity rendering. --- build.gradle.kts | 3 ++- gradle.properties | 6 +++--- .../meteorclient/gui/WidgetScreen.java | 3 ++- .../mixin/BannerBlockEntityRendererMixin.java | 12 +++++++++--- .../BlockEntityRenderDispatcherAccessor.java | 17 +++++++++++++++++ .../meteorclient/mixin/BlockItemMixin.java | 2 +- .../meteorclient/mixin/CompassStateMixin.java | 8 ++++---- .../mixin/FishingBobberEntityMixin.java | 2 +- .../meteorclient/mixin/HandledScreenMixin.java | 2 +- .../meteorclient/mixin/MapRendererMixin.java | 8 ++++---- .../meteorclient/mixin/PlayerEntityMixin.java | 14 ++++++++------ .../mixin/ServerPlayerEntityMixin.java | 2 +- .../meteorclient/mixin/TitleScreenMixin.java | 2 +- .../meteorclient/mixin/WorldChunkMixin.java | 2 +- .../meteorclient/mixin/WorldRendererMixin.java | 4 ++-- .../systems/accounts/types/CrackedAccount.java | 2 +- .../accounts/types/MicrosoftAccount.java | 2 +- .../accounts/types/TheAlteningAccount.java | 2 +- .../systems/hud/screens/HudEditorScreen.java | 2 +- .../meteorclient/utils/Utils.java | 14 ++++++++------ .../utils/misc/FakeClientPlayer.java | 15 ++++++++++++++- .../meteorclient/utils/render/PeekScreen.java | 2 +- .../utils/render/WireframeEntityRenderer.java | 7 ++++++- .../render/postprocess/PostProcessShader.java | 2 +- .../utils/tooltip/BannerTooltipComponent.java | 2 ++ .../utils/tooltip/MapTooltipComponent.java | 5 +---- src/main/resources/meteor-client.mixins.json | 1 + 27 files changed, 95 insertions(+), 48 deletions(-) create mode 100644 src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java diff --git a/build.gradle.kts b/build.gradle.kts index 4658eaef79..5565ef617c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -77,7 +77,8 @@ dependencies { modImplementation("net.fabricmc:fabric-loader:${properties["loader_version"] as String}") modInclude(fabricApi.module("fabric-api-base", properties["fapi_version"] as String)) - modInclude(fabricApi.module("fabric-resource-loader-v0", properties["fapi_version"] as String)) + // todo re-include when it doesnt crash + //modInclude(fabricApi.module("fabric-resource-loader-v0", properties["fapi_version"] as String)) // Compat fixes modCompileOnly(fabricApi.module("fabric-renderer-indigo", properties["fapi_version"] as String)) diff --git a/gradle.properties b/gradle.properties index cf7f79acfd..edd5b69556 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=1.21.8 -yarn_mappings=1.21.8+build.1 +minecraft_version=25w31a +yarn_mappings=25w31a+build.4 loader_version=0.16.14 -fapi_version=0.129.0+1.21.8 +fapi_version=0.128.2+1.21.6 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java index 6e250a25dc..2df2b7747a 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java @@ -114,7 +114,8 @@ public void onClosed(Runnable action) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + // todo rename bl when appropriate + public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl) { if (locked) return false; double s = mc.getWindow().getScaleFactor(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 94c4408ef0..05b8db27df 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -9,6 +9,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.BannerBlockEntity; +import net.minecraft.class_11701; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; @@ -17,6 +18,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.Vec3d; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -29,12 +31,16 @@ public abstract class BannerBlockEntityRendererMixin { @Shadow public abstract void render(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d); + @Shadow + @Final + private class_11701 field_61779; + @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true) private void injectRender1(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } - @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;)V"), cancellable = true) + @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render(Lnet/minecraft/class_11701;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;)V"), cancellable = true) private void injectRender2(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d, CallbackInfo ci, @Local(ordinal = 1) float rotation, @Local BannerBlockModel bannerBlockModel) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.Pillar) { renderPillar(matrixStack, vertexConsumerProvider, light, overlay, rotation, bannerBlockModel); @@ -43,12 +49,12 @@ private void injectRender2(BannerBlockEntity bannerBlockEntity, float tickDelta, } @Unique - private static void renderPillar(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, float rotation, BannerBlockModel model) { + private void renderPillar(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, float rotation, BannerBlockModel model) { matrices.push(); matrices.translate(0.5F, 0.0F, 0.5F); matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(rotation)); matrices.scale(0.6666667F, -0.6666667F, -0.6666667F); - model.render(matrices, ModelBaker.BANNER_BASE.getVertexConsumer(vertexConsumers, RenderLayer::getEntitySolid), light, overlay); + model.render(matrices, ModelBaker.BANNER_BASE.getVertexConsumer(this.field_61779, vertexConsumers, RenderLayer::getEntitySolid), light, overlay); matrices.pop(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java new file mode 100644 index 0000000000..5a8c398aeb --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java @@ -0,0 +1,17 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.mixin; + +import net.minecraft.class_11701; +import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(BlockEntityRenderDispatcher.class) +public interface BlockEntityRenderDispatcherAccessor { + @Accessor("field_61783") + class_11701 getField_61783(); +} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockItemMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockItemMixin.java index 6386182ebf..268c00db75 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockItemMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockItemMixin.java @@ -26,7 +26,7 @@ public abstract class BlockItemMixin { @Inject(method = "place(Lnet/minecraft/item/ItemPlacementContext;Lnet/minecraft/block/BlockState;)Z", at = @At("HEAD"), cancellable = true) private void onPlace(ItemPlacementContext context, BlockState state, CallbackInfoReturnable info) { - if (!context.getWorld().isClient) return; + if (!context.getWorld().isClient()) return; if (MeteorClient.EVENT_BUS.post(PlaceBlockEvent.get(context.getBlockPos(), state.getBlock())).isCancelled()) { info.setReturnValue(true); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java index 8554b393db..80688c00b5 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java @@ -9,9 +9,9 @@ import com.llamalad7.mixinextras.injector.ModifyReturnValue; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Freecam; +import net.minecraft.class_11566; import net.minecraft.client.render.Camera; import net.minecraft.client.render.item.property.numeric.CompassState; -import net.minecraft.entity.Entity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; @@ -21,14 +21,14 @@ @Mixin(CompassState.class) public abstract class CompassStateMixin { - @ModifyExpressionValue(method = "getBodyYaw", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getBodyYaw()F")) + @ModifyExpressionValue(method = "getBodyYaw", at = @At(value = "INVOKE", target = "Lnet/minecraft/class_11566;getBodyYaw()F")) private static float callLivingEntityGetYaw(float original) { if (Modules.get().isActive(Freecam.class)) return mc.gameRenderer.getCamera().getYaw(); return original; } - @ModifyReturnValue(method = "getAngleTo(Lnet/minecraft/entity/Entity;Lnet/minecraft/util/math/BlockPos;)D", at = @At("RETURN")) - private static double modifyGetAngleTo(double original, Entity entity, BlockPos pos) { + @ModifyReturnValue(method = "getAngleTo(Lnet/minecraft/class_11566;Lnet/minecraft/util/math/BlockPos;)D", at = @At("RETURN")) + private static double modifyGetAngleTo(double original, class_11566 arg, BlockPos pos) { if (Modules.get().isActive(Freecam.class)) { Vec3d vec3d = Vec3d.ofCenter(pos); Camera camera = mc.gameRenderer.getCamera(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java index 5aa409b185..23b53d2ce8 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java @@ -20,7 +20,7 @@ public abstract class FishingBobberEntityMixin { @WrapOperation(method = "handleStatus", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/projectile/FishingBobberEntity;pullHookedEntity(Lnet/minecraft/entity/Entity;)V")) private void preventFishingRodPull(FishingBobberEntity instance, Entity entity, Operation original) { - if (!instance.getWorld().isClient || entity != mc.player) original.call(instance, entity); + if (!instance.getWorld().isClient() || entity != mc.player) original.call(instance, entity); Velocity velocity = Modules.get().get(Velocity.class); if (!velocity.isActive() || !velocity.fishing.get()) original.call(instance, entity); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java index a668028284..4c85e31603 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java @@ -101,7 +101,7 @@ private void onMouseDragged(double mouseX, double mouseY, int button, double del // Middle click open @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void mouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable cir) { + private void mouseClicked(double mouseX, double mouseY, int button, boolean bl, CallbackInfoReturnable cir) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); if (button == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && getScreenHandler().getCursorStack().isEmpty() && tooltips.middleClickOpen()) { diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java index 4a064dccf2..fb5993d294 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java @@ -8,9 +8,9 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; +import net.minecraft.class_11659; import net.minecraft.client.render.MapRenderState; import net.minecraft.client.render.MapRenderer; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.map.MapDecoration; import org.spongepowered.asm.mixin.Mixin; @@ -22,13 +22,13 @@ @Mixin(MapRenderer.class) public abstract class MapRendererMixin { - @ModifyExpressionValue(method = "draw(Lnet/minecraft/client/render/MapRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ZI)V", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/MapRenderState;decorations:Ljava/util/List;")) + @ModifyExpressionValue(method = "draw", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/MapRenderState;decorations:Ljava/util/List;")) private List getIconsProxy(List original) { return (Modules.get().get(NoRender.class).noMapMarkers()) ? List.of() : original; } - @Inject(method = "draw(Lnet/minecraft/client/render/MapRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ZI)V", at = @At("HEAD"), cancellable = true) - private void onDraw(MapRenderState state, MatrixStack matrices, VertexConsumerProvider vertexConsumers, boolean bl, int light, CallbackInfo ci) { + @Inject(method = "draw", at = @At("HEAD"), cancellable = true) + private void onDraw(MapRenderState state, MatrixStack matrices, class_11659 arg, boolean bl, int light, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMapContents()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java index 70070cc1d4..e66acc2370 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java @@ -11,7 +11,9 @@ import meteordevelopment.meteorclient.events.entity.DropItemsEvent; import meteordevelopment.meteorclient.events.entity.player.ClipAtLedgeEvent; import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.modules.movement.*; +import meteordevelopment.meteorclient.systems.modules.movement.Flight; +import meteordevelopment.meteorclient.systems.modules.movement.NoSlow; +import meteordevelopment.meteorclient.systems.modules.movement.Sprint; import meteordevelopment.meteorclient.systems.modules.player.Reach; import meteordevelopment.meteorclient.systems.modules.player.SpeedMine; import meteordevelopment.meteorclient.utils.world.BlockUtils; @@ -45,7 +47,7 @@ protected PlayerEntityMixin(EntityType entityType, World @Inject(method = "clipAtLedge", at = @At("HEAD"), cancellable = true) protected void clipAtLedge(CallbackInfoReturnable info) { - if (!getWorld().isClient) return; + if (!getWorld().isClient()) return; ClipAtLedgeEvent event = MeteorClient.EVENT_BUS.post(ClipAtLedgeEvent.get()); if (event.isSet()) info.setReturnValue(event.isClip()); @@ -53,7 +55,7 @@ protected void clipAtLedge(CallbackInfoReturnable info) { @Inject(method = "dropItem", at = @At("HEAD"), cancellable = true) private void onDropItem(ItemStack stack, boolean retainOwnership, CallbackInfoReturnable cir) { - if (getWorld().isClient && !stack.isEmpty()) { + if (getWorld().isClient() && !stack.isEmpty()) { if (MeteorClient.EVENT_BUS.post(DropItemsEvent.get(stack)).isCancelled()) cir.setReturnValue(null); } } @@ -70,7 +72,7 @@ private void onIsCreative(CallbackInfoReturnable info) { @ModifyReturnValue(method = "getBlockBreakingSpeed", at = @At(value = "RETURN")) public float onGetBlockBreakingSpeed(float breakSpeed, BlockState block) { - if (!getWorld().isClient) return breakSpeed; + if (!getWorld().isClient()) return breakSpeed; SpeedMine speedMine = Modules.get().get(SpeedMine.class); if (!speedMine.isActive() || speedMine.mode.get() != SpeedMine.Mode.Normal || !speedMine.filter(block.getBlock())) return breakSpeed; @@ -91,7 +93,7 @@ public float onGetBlockBreakingSpeed(float breakSpeed, BlockState block) { @ModifyReturnValue(method = "getMovementSpeed", at = @At("RETURN")) private float onGetMovementSpeed(float original) { - if (!getWorld().isClient) return original; + if (!getWorld().isClient()) return original; if (!Modules.get().get(NoSlow.class).slowness()) return original; float walkSpeed = getAbilities().getWalkSpeed(); @@ -106,7 +108,7 @@ private float onGetMovementSpeed(float original) { @Inject(method = "getOffGroundSpeed", at = @At("HEAD"), cancellable = true) private void onGetOffGroundSpeed(CallbackInfoReturnable info) { - if (!getWorld().isClient) return; + if (!getWorld().isClient()) return; float speed = Modules.get().get(Flight.class).getOffGroundSpeed(); if (speed != -1) info.setReturnValue(speed); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java index 4e89c0564c..c6c95821cc 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java @@ -25,7 +25,7 @@ protected ServerPlayerEntityMixin(EntityType entityType, @Inject(method = "jump", at = @At("HEAD"), cancellable = true) public void dontJump(CallbackInfo ci) { - if (!getWorld().isClient) return; + if (!getWorld().isClient()) return; Anchor module = Modules.get().get(Anchor.class); if (module.isActive() && module.cancelJump) ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java index 46b7b0d7c2..34bbcde34a 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java @@ -30,7 +30,7 @@ private void onRender(DrawContext context, int mouseX, int mouseY, float delta, } @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void onMouseClicked(double mouseX, double mouseY, int button, CallbackInfoReturnable info) { + private void onMouseClicked(double mouseX, double mouseY, int button, boolean bl, CallbackInfoReturnable info) { if (Config.get().titleScreenCredits.get() && button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { if (TitleScreenCredits.onClicked(mouseX, mouseY)) info.setReturnValue(true); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldChunkMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldChunkMixin.java index 534f80c297..9b4b036233 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldChunkMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldChunkMixin.java @@ -24,6 +24,6 @@ public abstract class WorldChunkMixin { @Inject(method = "setBlockState", at = @At("TAIL")) private void onSetBlockState(BlockPos pos, BlockState state, int flags, CallbackInfoReturnable info) { - if (world.isClient) MeteorClient.EVENT_BUS.post(BlockUpdateEvent.get(pos, info.getReturnValue(), state)); + if (world.isClient()) MeteorClient.EVENT_BUS.post(BlockUpdateEvent.get(pos, info.getReturnValue(), state)); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java index 6555f898d4..7cd0cf805f 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java @@ -112,7 +112,7 @@ private void draw(Entity entity, double cameraX, double cameraY, double cameraZ, meteor$pushEntityOutlineFramebuffer(shader.framebuffer); PostProcessShaders.rendering = true; - shader.vertexConsumerProvider.setColor(color.r, color.g, color.b, color.a); + shader.vertexConsumerProvider.setColor(color.getPacked()); renderEntity(entity, cameraX, cameraY, cameraZ, tickDelta, matrices, shader.vertexConsumerProvider); PostProcessShaders.rendering = false; @@ -132,7 +132,7 @@ private void setGlowColor(OutlineVertexConsumerProvider instance, int red, int g Color color = getESP().getColor(entity.get()); if (color == null) original.call(instance, red, green, blue, alpha); - else instance.setColor(color.r, color.g, color.b, color.a); + else instance.setColor(color.getPacked()); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/CrackedAccount.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/CrackedAccount.java index 6087790b0d..20035985ec 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/CrackedAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/CrackedAccount.java @@ -28,7 +28,7 @@ public boolean login() { super.login(); cache.loadHead(); - setSession(new Session(name, Uuids.getOfflinePlayerUuid(name), "", Optional.empty(), Optional.empty(), Session.AccountType.MOJANG)); + setSession(new Session(name, Uuids.getOfflinePlayerUuid(name), "", Optional.empty(), Optional.empty())); return true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/MicrosoftAccount.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/MicrosoftAccount.java index 025b4ec167..dcb2d5b519 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/MicrosoftAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/MicrosoftAccount.java @@ -33,7 +33,7 @@ public boolean login() { super.login(); cache.loadHead(); - setSession(new Session(cache.username, UndashedUuid.fromStringLenient(cache.uuid), token, Optional.empty(), Optional.empty(), Session.AccountType.MSA)); + setSession(new Session(cache.username, UndashedUuid.fromStringLenient(cache.uuid), token, Optional.empty(), Optional.empty())); return true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java index 7a360c69a7..0e910ccbef 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java @@ -62,7 +62,7 @@ public boolean login() { applyLoginEnvironment(SERVICE, YggdrasilMinecraftSessionServiceAccessor.meteor$createYggdrasilMinecraftSessionService(SERVICE.getServicesKeySet(), SERVICE.getProxy(), ENVIRONMENT)); try { - setSession(new Session(auth.getCurrentProfile().getName(), auth.getCurrentProfile().getId(), auth.getAccessToken(), Optional.empty(), Optional.empty(), Session.AccountType.MOJANG)); + setSession(new Session(auth.getCurrentProfile().getName(), auth.getCurrentProfile().getId(), auth.getAccessToken(), Optional.empty(), Optional.empty())); return true; } catch (Exception e) { MeteorClient.LOG.error("Failed to login with TheAltening."); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java index 9f495f9bc2..58a0be72c4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java @@ -65,7 +65,7 @@ public HudEditorScreen(GuiTheme theme) { public void initWidgets() {} @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl) { double s = mc.getWindow().getScaleFactor(); mouseX *= s; diff --git a/src/main/java/meteordevelopment/meteorclient/utils/Utils.java b/src/main/java/meteordevelopment/meteorclient/utils/Utils.java index a5a0ebffbe..9e55482e7a 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/Utils.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/Utils.java @@ -30,6 +30,7 @@ import net.minecraft.block.Blocks; import net.minecraft.block.ShulkerBoxBlock; import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityType; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; @@ -39,10 +40,10 @@ import net.minecraft.component.ComponentMap; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.ItemEnchantmentsComponent; -import net.minecraft.component.type.NbtComponent; import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; +import net.minecraft.entity.TypedEntityData; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.inventory.StackWithSlot; import net.minecraft.item.*; @@ -269,8 +270,9 @@ public static void getItemsInContainerItem(ItemStack itemStack, ItemStack[] item // todo should we remove this? are there still instances where we might get presented container items in this // format? maybe on servers with weird multiversion setups - if they exist, test this code to ensure it works else if (components.contains(DataComponentTypes.BLOCK_ENTITY_DATA)) { - NbtComponent nbt2 = components.getOrDefault(DataComponentTypes.BLOCK_ENTITY_DATA, NbtComponent.DEFAULT); - NbtList nbt3 = nbt2.getNbt().getListOrEmpty("Items"); + TypedEntityData> blockEntityData = components.get(DataComponentTypes.BLOCK_ENTITY_DATA); + if (blockEntityData == null) return; + NbtList nbt3 = blockEntityData.copyNbtWithoutId().getListOrEmpty("Items"); for (int i = 0; i < nbt3.size(); i++) { Optional compound = nbt3.getCompound(i); @@ -283,7 +285,7 @@ else if (components.contains(DataComponentTypes.BLOCK_ENTITY_DATA)) { if (slot.get() >= 0 && slot.get() < items.length) { switch (StackWithSlot.CODEC.parse(mc.player.getRegistryManager().getOps(NbtOps.INSTANCE), compound.get())) { case DataResult.Success success -> items[slot.get()] = success.value().stack(); - case DataResult.Error error -> items[slot.get()] = ItemStack.EMPTY; + case DataResult.Error ignored -> items[slot.get()] = ItemStack.EMPTY; default -> throw new MatchException(null, null); } } @@ -313,8 +315,8 @@ public static boolean hasItems(ItemStack itemStack) { ContainerComponentAccessor container = ((ContainerComponentAccessor) (Object) itemStack.get(DataComponentTypes.CONTAINER)); if (container != null && !container.meteor$getStacks().isEmpty()) return true; - NbtCompound compoundTag = itemStack.getOrDefault(DataComponentTypes.BLOCK_ENTITY_DATA, NbtComponent.DEFAULT).getNbt(); - return compoundTag != null && compoundTag.contains("Items"); + TypedEntityData> blockEntityData = itemStack.get(DataComponentTypes.BLOCK_ENTITY_DATA); + return blockEntityData != null && blockEntityData.contains("Items"); } public static Reference2IntMap createStatusEffectMap() { diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java index 730486be8e..028791af51 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java @@ -44,7 +44,20 @@ public static PlayerEntity getPlayer() { if (player == null || (!id.equals(lastId))) { if (world == null) { world = new ClientWorld( - new ClientPlayNetworkHandler(mc, new ClientConnection(NetworkSide.CLIENTBOUND), new ClientConnectionState(new GameProfile(mc.getSession().getUuidOrNull(), mc.getSession().getUsername()), null, null, null, null, mc.getCurrentServerEntry(), null, null, null, null, null)), + new ClientPlayNetworkHandler(mc, new ClientConnection(NetworkSide.CLIENTBOUND), new ClientConnectionState( + null, + new GameProfile(mc.getSession().getUuidOrNull(), mc.getSession().getUsername()), + null, + null, + null, + null, + mc.getCurrentServerEntry(), + null, + null, + null, + null, + null) + ), new ClientWorld.Properties(Difficulty.NORMAL, false, false), world.getRegistryKey(), world.getDimensionEntry(), diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java index 3c0a232934..dc12ebef16 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java @@ -36,7 +36,7 @@ public PeekScreen(ItemStack storageBlock, ItemStack[] contents) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { + public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); if (button == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && mc.player.currentScreenHandler.getCursorStack().isEmpty() && tooltips.middleClickOpen()) { diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java index b748438f8d..4bdb026a06 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java @@ -12,6 +12,8 @@ import meteordevelopment.meteorclient.renderer.Renderer3D; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.utils.render.color.Color; +import net.minecraft.class_11659; +import net.minecraft.class_11661; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexConsumer; @@ -29,6 +31,7 @@ public class WireframeEntityRenderer { private static final MatrixStack matrices = new MatrixStack(); private static Renderer3D renderer; + private static final class_11659 class_11659 = new class_11661(); private static Color sideColor; private static Color lineColor; @@ -64,7 +67,9 @@ public static void render(Render3DEvent event, Entity entity, double scale, Colo matrices.push(); matrices.scale((float) scale, (float) scale, (float) scale); - renderer.render(state, matrices, MyVertexConsumerProvider.INSTANCE, 15); + renderer.render(state, matrices, class_11659); + // todo this just adds the entities to a list, we need to actually render them somewhere by calling + // net.minecraft.class_11688.method_73012 matrices.pop(); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/postprocess/PostProcessShader.java b/src/main/java/meteordevelopment/meteorclient/utils/render/postprocess/PostProcessShader.java index 8c122ce242..2638ebc237 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/postprocess/PostProcessShader.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/postprocess/PostProcessShader.java @@ -23,7 +23,7 @@ public abstract class PostProcessShader { protected RenderPipeline pipeline; public void init(RenderPipeline pipeline) { - vertexConsumerProvider = new OutlineVertexConsumerProvider(mc.getBufferBuilders().getEntityVertexConsumers()); + vertexConsumerProvider = new OutlineVertexConsumerProvider(); framebuffer = new SimpleFramebuffer(MeteorClient.NAME + " PostProcessShader", mc.getWindow().getFramebufferWidth(), mc.getWindow().getFramebufferHeight(), true); this.pipeline = pipeline; } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java index 525262eecb..72c4a4a643 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java @@ -5,6 +5,7 @@ package meteordevelopment.meteorclient.utils.tooltip; +import meteordevelopment.meteorclient.mixin.BlockEntityRenderDispatcherAccessor; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.tooltip.TooltipComponent; @@ -80,6 +81,7 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers(); BannerBlockEntityRenderer.renderCanvas( + ((BlockEntityRenderDispatcherAccessor) mc.getBlockEntityRenderDispatcher()).getField_61783(), matrices, immediate, 15728880, diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java index a4b5ecb61b..7bdfd93914 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java @@ -12,7 +12,6 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.tooltip.TooltipComponent; import net.minecraft.client.render.MapRenderState; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.component.type.MapIdComponent; import net.minecraft.item.FilledMapItem; @@ -60,15 +59,13 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he if (mapState == null) return; MatrixStack matrices2 = new MatrixStack(); - VertexConsumerProvider.Immediate consumer = mc.getBufferBuilders().getEntityVertexConsumers(); matrices2.push(); matrices2.translate(x, y, 0); matrices2.scale((float) scale, (float) scale, 0); matrices2.translate(8, 8, 0); mc.getMapRenderer().update(new MapIdComponent(mapId), mapState, mapRenderState); - mc.getMapRenderer().draw(mapRenderState, matrices2, consumer, false, 0xF000F0); - consumer.draw(); + mc.getMapRenderer().draw(mapRenderState, matrices2, mc.gameRenderer.method_72910(), false, 0xF000F0); matrices2.pop(); } } diff --git a/src/main/resources/meteor-client.mixins.json b/src/main/resources/meteor-client.mixins.json index 44aea0cd37..00753655dc 100644 --- a/src/main/resources/meteor-client.mixins.json +++ b/src/main/resources/meteor-client.mixins.json @@ -23,6 +23,7 @@ "BiomeColorsMixin", "BlockCollisionSpliteratorMixin", "BlockColorsMixin", + "BlockEntityRenderDispatcherAccessor", "BlockEntityRenderDispatcherMixin", "BlockHitResultAccessor", "BlockItemMixin", From 863eb6e9edc12a34e3b6301f88568a1d41db3903 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 5 Aug 2025 20:25:17 +0100 Subject: [PATCH 02/20] Update to 25w32a Resolved enough issues to be able to load the game again. Entity rendering is still broken but aside from that things seem to mostly work fine. --- build.gradle.kts | 5 +-- gradle.properties | 8 ++-- .../meteorclient/asm/Asm.java | 5 +++ .../mixin/ArmorFeatureRendererMixin.java | 6 +-- .../mixin/BannerBlockEntityRendererMixin.java | 6 +-- ... => BlockEntityRenderManagerAccessor.java} | 12 +++--- ...ava => BlockEntityRenderManagerMixin.java} | 6 +-- .../mixin/CapeFeatureRendererMixin.java | 6 +-- .../meteorclient/mixin/CompassStateMixin.java | 10 ++--- .../mixin/ElytraFeatureRendererMixin.java | 6 +-- .../mixin/EndCrystalEntityRendererMixin.java | 33 +++++++++------- .../mixin/EntityRenderDispatcherMixin.java | 27 +++---------- .../mixin/EntityRendererMixin.java | 24 ++++++++++++ ...EntityVelocityUpdateS2CPacketAccessor.java | 13 ++----- .../mixin/HeadFeatureRendererMixin.java | 6 +-- .../mixin/InGameOverlayRendererMixin.java | 2 +- .../mixin/ItemEntityRendererMixin.java | 9 +++-- .../mixin/LivingEntityRendererMixin.java | 22 ++++++----- .../meteorclient/mixin/MapRendererMixin.java | 4 +- .../meteorclient/mixin/TextRendererMixin.java | 5 ++- .../mixin/WorldRendererMixin.java | 38 +++---------------- .../systems/modules/movement/Velocity.java | 13 ++++--- .../utils/render/WireframeEntityRenderer.java | 8 ++-- .../utils/tooltip/BannerTooltipComponent.java | 4 +- .../utils/tooltip/MapTooltipComponent.java | 2 +- src/main/resources/meteor-client.mixins.json | 4 +- 26 files changed, 137 insertions(+), 147 deletions(-) rename src/main/java/meteordevelopment/meteorclient/mixin/{BlockEntityRenderDispatcherAccessor.java => BlockEntityRenderManagerAccessor.java} (62%) rename src/main/java/meteordevelopment/meteorclient/mixin/{BlockEntityRenderDispatcherMixin.java => BlockEntityRenderManagerMixin.java} (92%) diff --git a/build.gradle.kts b/build.gradle.kts index 5565ef617c..e8377b39f6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fabric-loom") version "1.10-SNAPSHOT" + id("fabric-loom") version "1.11-SNAPSHOT" id("maven-publish") id("com.gradleup.shadow") version "9.0.0-beta11" } @@ -77,8 +77,7 @@ dependencies { modImplementation("net.fabricmc:fabric-loader:${properties["loader_version"] as String}") modInclude(fabricApi.module("fabric-api-base", properties["fapi_version"] as String)) - // todo re-include when it doesnt crash - //modInclude(fabricApi.module("fabric-resource-loader-v0", properties["fapi_version"] as String)) + modInclude(fabricApi.module("fabric-resource-loader-v0", properties["fapi_version"] as String)) // Compat fixes modCompileOnly(fabricApi.module("fabric-renderer-indigo", properties["fapi_version"] as String)) diff --git a/gradle.properties b/gradle.properties index edd5b69556..213e856de5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w31a -yarn_mappings=25w31a+build.4 -loader_version=0.16.14 -fapi_version=0.128.2+1.21.6 +minecraft_version=25w32a +yarn_mappings=25w32a+build.1 +loader_version=0.17.0 +fapi_version=0.131.1+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/asm/Asm.java b/src/main/java/meteordevelopment/meteorclient/asm/Asm.java index 06e260bfdc..e6b0153261 100644 --- a/src/main/java/meteordevelopment/meteorclient/asm/Asm.java +++ b/src/main/java/meteordevelopment/meteorclient/asm/Asm.java @@ -114,6 +114,11 @@ public boolean transformClass(MixinEnvironment environment, String name, ClassNo return delegate.transformClass(environment, name, classNode); } + @Override + public boolean couldTransformClass(MixinEnvironment environment, String name) { + return delegate.couldTransformClass(environment, name); + } + @Override public byte[] generateClass(MixinEnvironment environment, String name) { return delegate.generateClass(environment, name); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java index 3923eddaf5..70a81c217b 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; import net.minecraft.client.render.entity.model.BipedEntityModel; import net.minecraft.client.render.entity.state.BipedEntityRenderState; @@ -20,8 +20,8 @@ @Mixin(ArmorFeatureRenderer.class) public abstract class ArmorFeatureRendererMixin, A extends BipedEntityModel> { - @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) - private void onRender(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, S bipedEntityRenderState, float f, float g, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) + private void onRender(MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int i, S bipedEntityRenderState, float f, float g, CallbackInfo ci) { if (bipedEntityRenderState instanceof PlayerEntityRenderState && Modules.get().get(NoRender.class).noArmor()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 05b8db27df..719cf10180 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -9,12 +9,12 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.BannerBlockEntity; -import net.minecraft.class_11701; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; import net.minecraft.client.render.model.ModelBaker; +import net.minecraft.client.texture.SpriteHolder; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.Vec3d; @@ -33,14 +33,14 @@ public abstract class BannerBlockEntityRendererMixin { @Shadow @Final - private class_11701 field_61779; + private SpriteHolder field_61779; @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true) private void injectRender1(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } - @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render(Lnet/minecraft/class_11701;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;)V"), cancellable = true) + @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;)V"), cancellable = true) private void injectRender2(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d, CallbackInfo ci, @Local(ordinal = 1) float rotation, @Local BannerBlockModel bannerBlockModel) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.Pillar) { renderPillar(matrixStack, vertexConsumerProvider, light, overlay, rotation, bannerBlockModel); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerAccessor.java similarity index 62% rename from src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java rename to src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerAccessor.java index 5a8c398aeb..b582915859 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerAccessor.java @@ -5,13 +5,13 @@ package meteordevelopment.meteorclient.mixin; -import net.minecraft.class_11701; -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; +import net.minecraft.client.render.block.entity.BlockEntityRenderManager; +import net.minecraft.client.texture.SpriteHolder; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(BlockEntityRenderDispatcher.class) -public interface BlockEntityRenderDispatcherAccessor { - @Accessor("field_61783") - class_11701 getField_61783(); +@Mixin(BlockEntityRenderManager.class) +public interface BlockEntityRenderManagerAccessor { + @Accessor("spriteHolder") + SpriteHolder getSpriteHolder(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java similarity index 92% rename from src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherMixin.java rename to src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index 5774208d4b..397ff0a358 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderDispatcherMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -9,15 +9,15 @@ import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; +import net.minecraft.client.render.block.entity.BlockEntityRenderManager; 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; -@Mixin(BlockEntityRenderDispatcher.class) -public abstract class BlockEntityRenderDispatcherMixin { +@Mixin(BlockEntityRenderManager.class) +public abstract class BlockEntityRenderManagerMixin { @Inject(method = "render(Lnet/minecraft/block/entity/BlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;)V", at = @At("HEAD"), cancellable = true) private void onRenderEntity(E blockEntity, float tickDelta, MatrixStack matrix, VertexConsumerProvider vertexConsumerProvider, CallbackInfo info) { RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(blockEntity)); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java index 990c0bd158..d28161b1f2 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java @@ -8,7 +8,7 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import meteordevelopment.meteorclient.utils.network.Capes; -import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.feature.CapeFeatureRenderer; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; @@ -19,8 +19,8 @@ @Mixin(CapeFeatureRenderer.class) public abstract class CapeFeatureRendererMixin { - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;")) - private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, VertexConsumerProvider consumers, int i, PlayerEntityRenderState state, float f, float g) { + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;")) + private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); return id == null ? original : id; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java index 80688c00b5..31b3351925 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java @@ -9,9 +9,9 @@ import com.llamalad7.mixinextras.injector.ModifyReturnValue; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Freecam; -import net.minecraft.class_11566; import net.minecraft.client.render.Camera; import net.minecraft.client.render.item.property.numeric.CompassState; +import net.minecraft.util.EntityPos; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; @@ -21,16 +21,16 @@ @Mixin(CompassState.class) public abstract class CompassStateMixin { - @ModifyExpressionValue(method = "getBodyYaw", at = @At(value = "INVOKE", target = "Lnet/minecraft/class_11566;getBodyYaw()F")) + @ModifyExpressionValue(method = "getBodyYaw", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/EntityPos;getBodyYaw()F")) private static float callLivingEntityGetYaw(float original) { if (Modules.get().isActive(Freecam.class)) return mc.gameRenderer.getCamera().getYaw(); return original; } - @ModifyReturnValue(method = "getAngleTo(Lnet/minecraft/class_11566;Lnet/minecraft/util/math/BlockPos;)D", at = @At("RETURN")) - private static double modifyGetAngleTo(double original, class_11566 arg, BlockPos pos) { + @ModifyReturnValue(method = "getAngleTo(Lnet/minecraft/util/EntityPos;Lnet/minecraft/util/math/BlockPos;)D", at = @At("RETURN")) + private static double modifyGetAngleTo(double original, EntityPos from, BlockPos to) { if (Modules.get().isActive(Freecam.class)) { - Vec3d vec3d = Vec3d.ofCenter(pos); + Vec3d vec3d = Vec3d.ofCenter(to); Camera camera = mc.gameRenderer.getCamera(); return Math.atan2(vec3d.getZ() - camera.getPos().z, vec3d.getX() - camera.getPos().x) / (float) (Math.PI * 2); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java index 085a84ddd4..bf72f14413 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java @@ -8,7 +8,7 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import meteordevelopment.meteorclient.utils.network.Capes; -import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.feature.ElytraFeatureRenderer; import net.minecraft.client.render.entity.feature.FeatureRenderer; import net.minecraft.client.render.entity.feature.FeatureRendererContext; @@ -26,8 +26,8 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { super(context); } - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/feature/ElytraFeatureRenderer;getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;")) - private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, VertexConsumerProvider consumers, int i, S state, float f, float g) { + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/feature/ElytraFeatureRenderer;getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;")) + private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int i, S state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); return id == null ? original : id; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java index 3818803f9c..7f00f9610c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java @@ -8,11 +8,11 @@ import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Chams; +import net.minecraft.client.model.Model; +import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EndCrystalEntityRenderer; -import net.minecraft.client.render.entity.model.EndCrystalEntityModel; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.EndCrystalEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; @@ -44,15 +44,15 @@ private void onInit(CallbackInfo info) { @Final private static Identifier TEXTURE; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At("HEAD")) - private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD")) + private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { END_CRYSTAL = RenderLayer.getEntityTranslucent((chams.isActive() && chams.crystals.get() && !chams.crystalsTexture.get()) ? Chams.BLANK : TEXTURE); } // Chams - Scale - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) - private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo info) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) + private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { if (!chams.isActive() || !chams.crystals.get()) return; float v = chams.crystalsScale.get().floatValue(); @@ -61,14 +61,19 @@ private void onInit(CallbackInfo info) { // Chams - Color - @Shadow - @Final - private EndCrystalEntityModel model; - - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/model/EndCrystalEntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V")) - private boolean render$color(EndCrystalEntityModel instance, MatrixStack matrices, VertexConsumer vertices, int light, int overlay) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;pushModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;III)V")) + private boolean render$color(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrices, RenderLayer renderLayer, int light, int overlay, int outlineColor) { if (chams.isActive() && chams.crystals.get()) { - model.render(matrices, vertices, light, overlay, chams.crystalsColor.get().getPacked()); + instance.pushModel(model, + state, + matrices, + END_CRYSTAL, + ((EndCrystalEntityRenderState) state).light, + OverlayTexture.DEFAULT_UV, + chams.crystalsColor.get().getPacked(), + null, + ((EndCrystalEntityRenderState) state).outlineColor, + 0); return false; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java index c903e8d1bd..2f3161a69c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java @@ -5,39 +5,23 @@ package meteordevelopment.meteorclient.mixin; -import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; -import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.modules.combat.Hitboxes; -import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerEntity; -import meteordevelopment.meteorclient.utils.render.postprocess.PostProcessShaders; import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.EntityRenderDispatcher; -import net.minecraft.client.render.entity.EntityRenderer; -import net.minecraft.client.render.entity.state.EntityHitbox; -import net.minecraft.client.render.entity.state.EntityHitboxAndView; -import net.minecraft.client.render.entity.state.EntityRenderState; -import net.minecraft.client.render.entity.state.LivingEntityRenderState; -import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.render.entity.EntityRenderManager; import net.minecraft.entity.Entity; -import net.minecraft.util.math.MathHelper; -import net.minecraft.world.WorldView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(EntityRenderDispatcher.class) +@Mixin(EntityRenderManager.class) public abstract class EntityRenderDispatcherMixin { @Shadow public Camera camera; + /* + todo this needs to be updated for the new rendering system + @Inject(method = "render(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/EntityRenderer;)V", at = @At("HEAD"), cancellable = true) private void render(E entity, double x, double y, double z, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, EntityRenderer renderer, CallbackInfo info) { if (entity instanceof FakePlayerEntity player && player.hideWhenInsideCamera) { @@ -90,6 +74,7 @@ private static void onRenderShadow(MatrixStack matrices, VertexConsumerProvider if (PostProcessShaders.rendering) info.cancel(); if (Modules.get().get(NoRender.class).noDeadEntities() && renderState instanceof LivingEntityRenderState livingEntityRenderState && livingEntityRenderState.deathTime > 0) info.cancel(); } + */ @Inject(method = "getSquaredDistanceToCamera(Lnet/minecraft/entity/Entity;)D", at = @At("HEAD"), cancellable = true) private void onGetSquaredDistanceToCameraEntity(Entity entity, CallbackInfoReturnable info) { diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java index 2df6e07fb4..3d7f7ee5f1 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java @@ -8,10 +8,12 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import meteordevelopment.meteorclient.systems.modules.Modules; +import meteordevelopment.meteorclient.systems.modules.render.ESP; import meteordevelopment.meteorclient.systems.modules.render.Fullbright; import meteordevelopment.meteorclient.systems.modules.render.Nametags; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.utils.entity.EntityUtils; +import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.render.postprocess.PostProcessShaders; import net.minecraft.client.render.Frustum; import net.minecraft.client.render.entity.EntityRenderer; @@ -22,12 +24,15 @@ import net.minecraft.text.Text; import net.minecraft.world.LightType; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(EntityRenderer.class) public abstract class EntityRendererMixin { + @Unique private ESP esp; @Inject(method = "getDisplayName", at = @At("HEAD"), cancellable = true) private void onRenderLabel(T entity, CallbackInfoReturnable cir) { @@ -58,4 +63,23 @@ private int onGetBlockLight(int original) { private int onGetLightLevel(int original) { return Math.max(Modules.get().get(Fullbright.class).getLuminance(LightType.BLOCK), original); } + + @Inject(method = "updateRenderState", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/entity/state/EntityRenderState;outlineColor:I", shift = At.Shift.AFTER)) + private void onGetOutlineColor(T entity, S state, float tickProgress, CallbackInfo ci) { + if (getESP().isGlow() && !getESP().shouldSkip(entity)) { + Color color = getESP().getColor(entity); + + if (color == null) return; + state.outlineColor = color.getPacked(); + } + } + + @Unique + private ESP getESP() { + if (esp == null) { + esp = Modules.get().get(ESP.class); + } + + return esp; + } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java index 348d2bda18..8330617c50 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java @@ -6,6 +6,7 @@ package meteordevelopment.meteorclient.mixin; import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; +import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; @@ -13,15 +14,7 @@ @Mixin(EntityVelocityUpdateS2CPacket.class) public interface EntityVelocityUpdateS2CPacketAccessor { @Mutable - @Accessor("velocityX") - void meteor$setX(int velocityX); - - @Mutable - @Accessor("velocityY") - void meteor$setY(int velocityY); - - @Mutable - @Accessor("velocityZ") - void meteor$setZ(int velocityZ); + @Accessor("field_61887") + void meteor$setVelocity(Vec3d velocity); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java index c575174308..61ad995e97 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.feature.HeadFeatureRenderer; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.ModelWithHead; @@ -21,8 +21,8 @@ @Mixin(HeadFeatureRenderer.class) public abstract class HeadFeatureRendererMixin & ModelWithHead> { - @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) - private void onRender(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, S livingEntityRenderState, float f, float g, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) + private void onRender(MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int i, S livingEntityRenderState, float f, float g, CallbackInfo ci) { if (livingEntityRenderState instanceof PlayerEntityRenderState && Modules.get().get(NoRender.class).noArmor()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/InGameOverlayRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/InGameOverlayRendererMixin.java index c060488a1b..9b9bb7eed1 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/InGameOverlayRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/InGameOverlayRendererMixin.java @@ -20,7 +20,7 @@ @Mixin(InGameOverlayRenderer.class) public abstract class InGameOverlayRendererMixin { @Inject(method = "renderFireOverlay", at = @At("HEAD"), cancellable = true) - private static void onRenderFireOverlay(MatrixStack matrices, VertexConsumerProvider vertexConsumers, CallbackInfo ci) { + private static void onRenderFireOverlay(MatrixStack matrices, VertexConsumerProvider vertexConsumers, Sprite sprite, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noFireOverlay()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java index a6885427e3..57d653dc0d 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java @@ -8,8 +8,8 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderItemEntityEvent; import net.minecraft.client.item.ItemModelManager; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.ItemEntityRenderer; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.ItemEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Final; @@ -27,9 +27,10 @@ public abstract class ItemEntityRendererMixin { @Final private ItemModelManager itemModelManager; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At("HEAD"), cancellable = true) - private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { - RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, vertexConsumerProvider, i, this.itemModelManager)); + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + // todo fix to work with entity render batching + RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager)); if (event.isCancelled()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java index a3b8586969..1cf5bc8ceb 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java @@ -14,17 +14,19 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.LivingEntityRenderer; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.state.LivingEntityRenderState; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.scoreboard.Team; +import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -62,12 +64,12 @@ private Team hasLabelClientPlayerEntityGetScoreboardTeamProxy(Team team) { // Chams - player color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/model/EntityModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;III)V")) - private boolean render$render(M instance, MatrixStack matrixStack, VertexConsumer vertexConsumer, int light, int overlay, int color, S state, MatrixStack matrices, VertexConsumerProvider consumers, int i) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;pushModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;II)V")) + private boolean render$render(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int tintedColor, @Nullable Sprite sprite, int outlineColor, int order) { if (!chams.isActive() || !chams.players.get() || !(((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player)) return true; if (chams.ignoreSelf.get() && player == mc.player) return true; - instance.render(matrixStack, vertexConsumer, light, overlay, PlayerUtils.getPlayerColor(player, chams.playersColor.get()).getPacked()); + instance.pushModel(model, state, matrixStack, renderLayer, light, overlay, PlayerUtils.getPlayerColor(player, chams.playersColor.get()).getPacked(), sprite, outlineColor, order); return false; } @@ -88,12 +90,12 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB // Chams - Through walls - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At("HEAD"), cancellable = true) - private void render$Head(S state, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo info) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void render$Head(S state, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; - if (Modules.get().get(NoRender.class).noDeadEntities() && livingEntity.isDead()) info.cancel(); + if (Modules.get().get(NoRender.class).noDeadEntities() && livingEntity.isDead()) ci.cancel(); if (chams.shouldRender(entity)) { glEnable(GL_POLYGON_OFFSET_FILL); @@ -101,8 +103,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB } } - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At("TAIL")) - private void render$Tail(S state, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo info) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("TAIL")) + private void render$Tail(S state, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java index fb5993d294..8f9ca86e0d 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java @@ -8,9 +8,9 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.class_11659; import net.minecraft.client.render.MapRenderState; import net.minecraft.client.render.MapRenderer; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.map.MapDecoration; import org.spongepowered.asm.mixin.Mixin; @@ -28,7 +28,7 @@ private List getIconsProxy(List original) { } @Inject(method = "draw", at = @At("HEAD"), cancellable = true) - private void onDraw(MapRenderState state, MatrixStack matrices, class_11659 arg, boolean bl, int light, CallbackInfo ci) { + private void onDraw(MapRenderState state, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, boolean bl, int light, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMapContents()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/TextRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/TextRendererMixin.java index 9fdfc235a0..35e2b80f9e 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/TextRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/TextRendererMixin.java @@ -8,12 +8,13 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; +import net.minecraft.client.font.TextRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -@Mixin(targets = "net.minecraft.client.font.TextRenderer$Drawer") +@Mixin(TextRenderer.class) public abstract class TextRendererMixin { - @ModifyExpressionValue(method = "accept", at = @At(value = "INVOKE", target = "Lnet/minecraft/text/Style;isObfuscated()Z")) + @ModifyExpressionValue(method = "getGlyph", at = @At(value = "INVOKE", target = "Lnet/minecraft/text/Style;isObfuscated()Z")) private boolean onRenderObfuscatedStyle(boolean original) { if (Modules.get() == null || Modules.get().get(NoRender.class) == null) { return original; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java index 7cd0cf805f..f116039ff9 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java @@ -6,21 +6,14 @@ package meteordevelopment.meteorclient.mixin; import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import com.llamalad7.mixinextras.sugar.Local; -import com.llamalad7.mixinextras.sugar.ref.LocalRef; import com.mojang.blaze3d.buffers.GpuBufferSlice; import it.unimi.dsi.fastutil.Stack; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import meteordevelopment.meteorclient.mixininterface.IWorldRenderer; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.BlockSelection; -import meteordevelopment.meteorclient.systems.modules.render.ESP; import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import meteordevelopment.meteorclient.utils.render.color.Color; -import meteordevelopment.meteorclient.utils.render.postprocess.EntityShader; import meteordevelopment.meteorclient.utils.render.postprocess.PostProcessShaders; import net.minecraft.block.BlockState; import net.minecraft.client.gl.Framebuffer; @@ -47,11 +40,6 @@ @Mixin(WorldRenderer.class) public abstract class WorldRendererMixin implements IWorldRenderer { - @Unique private ESP esp; - - @Shadow - protected abstract void renderEntity(Entity entity, double cameraX, double cameraY, double cameraZ, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers); - @Inject(method = "checkEmpty", at = @At("HEAD"), cancellable = true) private void onCheckEmpty(MatrixStack matrixStack, CallbackInfo info) { info.cancel(); @@ -100,6 +88,11 @@ private void onRenderHead(ObjectAllocator allocator, PostProcessShaders.beginRender(); } + /* + todo Entity rendering is batched in pushEntityRenders before they are all rendered at once by calling + net.minecraft.client.render.entity.command.EntityRenderDispatcher.render + Our renders need to be rewritten + @Inject(method = "renderEntity", at = @At("HEAD")) private void renderEntity(Entity entity, double cameraX, double cameraY, double cameraZ, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, CallbackInfo info) { draw(entity, cameraX, cameraY, cameraZ, tickDelta, vertexConsumers, matrices, PostProcessShaders.CHAMS, Color.WHITE); @@ -119,37 +112,18 @@ private void draw(Entity entity, double cameraX, double cameraY, double cameraZ, meteor$popEntityOutlineFramebuffer(); } } + */ @Inject(method = "method_62214", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/OutlineVertexConsumerProvider;draw()V")) private void onRender(CallbackInfo ci) { PostProcessShaders.endRender(); } - @WrapOperation(method = "renderEntities", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/OutlineVertexConsumerProvider;setColor(IIII)V")) - private void setGlowColor(OutlineVertexConsumerProvider instance, int red, int green, int blue, int alpha, Operation original, @Local LocalRef entity) { - if (!getESP().isGlow() || getESP().shouldSkip(entity.get())) original.call(instance, red, green, blue, alpha); - else { - Color color = getESP().getColor(entity.get()); - - if (color == null) original.call(instance, red, green, blue, alpha); - else instance.setColor(color.getPacked()); - } - } - @Inject(method = "onResized", at = @At("HEAD")) private void onResized(int width, int height, CallbackInfo info) { PostProcessShaders.onResized(width, height); } - @Unique - private ESP getESP() { - if (esp == null) { - esp = Modules.get().get(ESP.class); - } - - return esp; - } - // IWorldRenderer @Shadow diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java index b930f6927a..2972f075c7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java @@ -17,6 +17,7 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket; +import net.minecraft.util.math.Vec3d; public class Velocity extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -151,12 +152,12 @@ private void onTick(TickEvent.Post event) { private void onPacketReceive(PacketEvent.Receive event) { if (knockback.get() && event.packet instanceof EntityVelocityUpdateS2CPacket packet && packet.getEntityId() == mc.player.getId()) { - double velX = (packet.getVelocityX() - mc.player.getVelocity().x) * knockbackHorizontal.get(); - double velY = (packet.getVelocityY() - mc.player.getVelocity().y) * knockbackVertical.get(); - double velZ = (packet.getVelocityZ() - mc.player.getVelocity().z) * knockbackHorizontal.get(); - ((EntityVelocityUpdateS2CPacketAccessor) packet).meteor$setX((int) (velX * 8000 + mc.player.getVelocity().x * 8000)); - ((EntityVelocityUpdateS2CPacketAccessor) packet).meteor$setY((int) (velY * 8000 + mc.player.getVelocity().y * 8000)); - ((EntityVelocityUpdateS2CPacketAccessor) packet).meteor$setZ((int) (velZ * 8000 + mc.player.getVelocity().z * 8000)); + double velX = (packet.method_73085().getX() - mc.player.getVelocity().x) * knockbackHorizontal.get(); + double velY = (packet.method_73085().getY() - mc.player.getVelocity().y) * knockbackVertical.get(); + double velZ = (packet.method_73085().getZ() - mc.player.getVelocity().z) * knockbackHorizontal.get(); + ((EntityVelocityUpdateS2CPacketAccessor) packet).meteor$setVelocity( + new Vec3d(velX * 8000 + mc.player.getVelocity().x * 8000, velY * 8000 + mc.player.getVelocity().y * 8000, velZ * 8000 + mc.player.getVelocity().z * 8000) + ); } } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java index 4bdb026a06..36bbc9447d 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java @@ -12,13 +12,13 @@ import meteordevelopment.meteorclient.renderer.Renderer3D; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.class_11659; -import net.minecraft.class_11661; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.EntityRenderer; +import net.minecraft.client.render.entity.command.BatchingEntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.EntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; @@ -31,7 +31,7 @@ public class WireframeEntityRenderer { private static final MatrixStack matrices = new MatrixStack(); private static Renderer3D renderer; - private static final class_11659 class_11659 = new class_11661(); + private static final EntityRenderCommandQueue entityRenderCommandQueue = new BatchingEntityRenderCommandQueue(); private static Color sideColor; private static Color lineColor; @@ -67,7 +67,7 @@ public static void render(Render3DEvent event, Entity entity, double scale, Colo matrices.push(); matrices.scale((float) scale, (float) scale, (float) scale); - renderer.render(state, matrices, class_11659); + renderer.render(state, matrices, entityRenderCommandQueue); // todo this just adds the entities to a list, we need to actually render them somewhere by calling // net.minecraft.class_11688.method_73012 matrices.pop(); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java index 72c4a4a643..02c9d25136 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java @@ -5,7 +5,7 @@ package meteordevelopment.meteorclient.utils.tooltip; -import meteordevelopment.meteorclient.mixin.BlockEntityRenderDispatcherAccessor; +import meteordevelopment.meteorclient.mixin.BlockEntityRenderManagerAccessor; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.tooltip.TooltipComponent; @@ -81,7 +81,7 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers(); BannerBlockEntityRenderer.renderCanvas( - ((BlockEntityRenderDispatcherAccessor) mc.getBlockEntityRenderDispatcher()).getField_61783(), + ((BlockEntityRenderManagerAccessor) mc.getBlockEntityRenderDispatcher()).getSpriteHolder(), matrices, immediate, 15728880, diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java index 7bdfd93914..bf15394c41 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/MapTooltipComponent.java @@ -65,7 +65,7 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he matrices2.scale((float) scale, (float) scale, 0); matrices2.translate(8, 8, 0); mc.getMapRenderer().update(new MapIdComponent(mapId), mapState, mapRenderState); - mc.getMapRenderer().draw(mapRenderState, matrices2, mc.gameRenderer.method_72910(), false, 0xF000F0); + mc.getMapRenderer().draw(mapRenderState, matrices2, mc.gameRenderer.getEntityRenderCommandQueue(), false, 0xF000F0); matrices2.pop(); } } diff --git a/src/main/resources/meteor-client.mixins.json b/src/main/resources/meteor-client.mixins.json index 00753655dc..a38b6622d6 100644 --- a/src/main/resources/meteor-client.mixins.json +++ b/src/main/resources/meteor-client.mixins.json @@ -23,8 +23,8 @@ "BiomeColorsMixin", "BlockCollisionSpliteratorMixin", "BlockColorsMixin", - "BlockEntityRenderDispatcherAccessor", - "BlockEntityRenderDispatcherMixin", + "BlockEntityRenderManagerAccessor", + "BlockEntityRenderManagerMixin", "BlockHitResultAccessor", "BlockItemMixin", "BlockMixin", From ccd0be163265b92baef437f0b68bef47621f7ecb Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 12 Aug 2025 18:42:10 +0100 Subject: [PATCH 03/20] update to 25w33a --- gradle.properties | 6 +++--- .../meteordevelopment/meteorclient/MeteorClient.java | 2 +- .../meteorclient/mixin/CompassStateMixin.java | 8 ++++---- .../mixin/EntityVelocityUpdateS2CPacketAccessor.java | 2 +- .../meteorclient/mixin/FishingBobberEntityMixin.java | 2 +- .../meteorclient/mixin/PlayerEntityMixin.java | 10 +++++----- .../meteorclient/mixin/ServerPlayerEntityMixin.java | 2 +- .../meteorclient/systems/modules/combat/BowAimbot.java | 2 +- .../meteorclient/systems/modules/combat/KillAura.java | 2 +- .../meteorclient/systems/modules/movement/Flight.java | 2 +- .../meteorclient/systems/modules/player/NoRotate.java | 6 +++--- .../meteorclient/systems/modules/render/ESP.java | 2 +- .../meteorclient/systems/modules/render/Freecam.java | 2 +- .../meteorclient/systems/modules/render/Nametags.java | 2 +- .../meteorclient/utils/misc/FakeClientPlayer.java | 4 +++- .../meteorclient/utils/player/Rotations.java | 4 ++-- 16 files changed, 30 insertions(+), 28 deletions(-) diff --git a/gradle.properties b/gradle.properties index 213e856de5..6246b7c003 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w32a -yarn_mappings=25w32a+build.1 +minecraft_version=25w33a +yarn_mappings=25w33a+build.5 loader_version=0.17.0 -fapi_version=0.131.1+1.21.9 +fapi_version=0.131.3+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java index 27668a514d..46abc1d315 100644 --- a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java +++ b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java @@ -150,7 +150,7 @@ public void onInitializeClient() { @EventHandler private void onTick(TickEvent.Post event) { if (mc.currentScreen == null && mc.getOverlay() == null && KeyBinds.OPEN_COMMANDS.wasPressed()) { - mc.setScreen(new ChatScreen(Config.get().prefix.get())); + mc.setScreen(new ChatScreen(Config.get().prefix.get(), true)); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java index 31b3351925..723cc2f4d2 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CompassStateMixin.java @@ -11,7 +11,7 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import net.minecraft.client.render.Camera; import net.minecraft.client.render.item.property.numeric.CompassState; -import net.minecraft.util.EntityPos; +import net.minecraft.util.HeldItemContext; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; @@ -21,14 +21,14 @@ @Mixin(CompassState.class) public abstract class CompassStateMixin { - @ModifyExpressionValue(method = "getBodyYaw", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/EntityPos;getBodyYaw()F")) + @ModifyExpressionValue(method = "getBodyYaw", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/HeldItemContext;getBodyYaw()F")) private static float callLivingEntityGetYaw(float original) { if (Modules.get().isActive(Freecam.class)) return mc.gameRenderer.getCamera().getYaw(); return original; } - @ModifyReturnValue(method = "getAngleTo(Lnet/minecraft/util/EntityPos;Lnet/minecraft/util/math/BlockPos;)D", at = @At("RETURN")) - private static double modifyGetAngleTo(double original, EntityPos from, BlockPos to) { + @ModifyReturnValue(method = "getAngleTo(Lnet/minecraft/util/HeldItemContext;Lnet/minecraft/util/math/BlockPos;)D", at = @At("RETURN")) + private static double modifyGetAngleTo(double original, HeldItemContext from, BlockPos to) { if (Modules.get().isActive(Freecam.class)) { Vec3d vec3d = Vec3d.ofCenter(to); Camera camera = mc.gameRenderer.getCamera(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java index 8330617c50..e4993afe5f 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityVelocityUpdateS2CPacketAccessor.java @@ -14,7 +14,7 @@ @Mixin(EntityVelocityUpdateS2CPacket.class) public interface EntityVelocityUpdateS2CPacketAccessor { @Mutable - @Accessor("field_61887") + @Accessor("velocity") void meteor$setVelocity(Vec3d velocity); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java index 23b53d2ce8..ecd31e046f 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java @@ -20,7 +20,7 @@ public abstract class FishingBobberEntityMixin { @WrapOperation(method = "handleStatus", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/projectile/FishingBobberEntity;pullHookedEntity(Lnet/minecraft/entity/Entity;)V")) private void preventFishingRodPull(FishingBobberEntity instance, Entity entity, Operation original) { - if (!instance.getWorld().isClient() || entity != mc.player) original.call(instance, entity); + if (!instance.world().isClient() || entity != mc.player) original.call(instance, entity); Velocity velocity = Modules.get().get(Velocity.class); if (!velocity.isActive() || !velocity.fishing.get()) original.call(instance, entity); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java index e66acc2370..2377e95257 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java @@ -47,7 +47,7 @@ protected PlayerEntityMixin(EntityType entityType, World @Inject(method = "clipAtLedge", at = @At("HEAD"), cancellable = true) protected void clipAtLedge(CallbackInfoReturnable info) { - if (!getWorld().isClient()) return; + if (!world().isClient()) return; ClipAtLedgeEvent event = MeteorClient.EVENT_BUS.post(ClipAtLedgeEvent.get()); if (event.isSet()) info.setReturnValue(event.isClip()); @@ -55,7 +55,7 @@ protected void clipAtLedge(CallbackInfoReturnable info) { @Inject(method = "dropItem", at = @At("HEAD"), cancellable = true) private void onDropItem(ItemStack stack, boolean retainOwnership, CallbackInfoReturnable cir) { - if (getWorld().isClient() && !stack.isEmpty()) { + if (world().isClient() && !stack.isEmpty()) { if (MeteorClient.EVENT_BUS.post(DropItemsEvent.get(stack)).isCancelled()) cir.setReturnValue(null); } } @@ -72,7 +72,7 @@ private void onIsCreative(CallbackInfoReturnable info) { @ModifyReturnValue(method = "getBlockBreakingSpeed", at = @At(value = "RETURN")) public float onGetBlockBreakingSpeed(float breakSpeed, BlockState block) { - if (!getWorld().isClient()) return breakSpeed; + if (!world().isClient()) return breakSpeed; SpeedMine speedMine = Modules.get().get(SpeedMine.class); if (!speedMine.isActive() || speedMine.mode.get() != SpeedMine.Mode.Normal || !speedMine.filter(block.getBlock())) return breakSpeed; @@ -93,7 +93,7 @@ public float onGetBlockBreakingSpeed(float breakSpeed, BlockState block) { @ModifyReturnValue(method = "getMovementSpeed", at = @At("RETURN")) private float onGetMovementSpeed(float original) { - if (!getWorld().isClient()) return original; + if (!world().isClient()) return original; if (!Modules.get().get(NoSlow.class).slowness()) return original; float walkSpeed = getAbilities().getWalkSpeed(); @@ -108,7 +108,7 @@ private float onGetMovementSpeed(float original) { @Inject(method = "getOffGroundSpeed", at = @At("HEAD"), cancellable = true) private void onGetOffGroundSpeed(CallbackInfoReturnable info) { - if (!getWorld().isClient()) return; + if (!world().isClient()) return; float speed = Modules.get().get(Flight.class).getOffGroundSpeed(); if (speed != -1) info.setReturnValue(speed); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java index c6c95821cc..10af2cedf3 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java @@ -25,7 +25,7 @@ protected ServerPlayerEntityMixin(EntityType entityType, @Inject(method = "jump", at = @At("HEAD"), cancellable = true) public void dontJump(CallbackInfo ci) { - if (!getWorld().isClient()) return; + if (!world().isClient()) return; Anchor module = Modules.get().get(Anchor.class); if (module.isActive() && module.cancelJump) ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java index 26c5104288..0b32b86eca 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java @@ -97,7 +97,7 @@ private void onRender(Render3DEvent event) { if (!mc.player.getAbilities().creativeMode && !InvUtils.find(itemStack -> itemStack.getItem() instanceof ArrowItem).found()) return; target = TargetUtils.get(entity -> { - if (entity == mc.player || entity == mc.cameraEntity) return false; + if (entity == mc.player || entity == mc.getCameraEntity()) return false; if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDead()) || !entity.isAlive()) return false; if (!PlayerUtils.isWithin(entity, range.get())) return false; if (!entities.get().contains(entity.getType())) return false; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java index bb40111e86..178c69fb3c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java @@ -380,7 +380,7 @@ private boolean shouldShieldBreak() { } private boolean entityCheck(Entity entity) { - if (entity.equals(mc.player) || entity.equals(mc.cameraEntity)) return false; + if (entity.equals(mc.player) || entity.equals(mc.getCameraEntity())) return false; if ((entity instanceof LivingEntity livingEntity && livingEntity.isDead()) || !entity.isAlive()) return false; Box hitbox = entity.getBoundingBox(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java index e882d06ac6..c65fdac6e9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java @@ -253,7 +253,7 @@ private void abilitiesOff() { // Copied from ServerPlayNetworkHandler#isEntityOnAir private boolean isEntityOnAir(Entity entity) { - return entity.getWorld().getStatesInBox(entity.getBoundingBox().expand(0.0625).stretch(0.0, -0.55, 0.0)).allMatch(AbstractBlock.AbstractBlockState::isAir); + return entity.world().getStatesInBox(entity.getBoundingBox().expand(0.0625).stretch(0.0, -0.55, 0.0)).allMatch(AbstractBlock.AbstractBlockState::isAir); } public float getOffGroundSpeed() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java index f6d6340c6d..bf4bdf24a4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java @@ -9,7 +9,7 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.orbit.EventHandler; -import net.minecraft.entity.player.PlayerPosition; +import net.minecraft.entity.EntityPosition; import net.minecraft.network.packet.s2c.play.PlayerPositionLookS2CPacket; public class NoRotate extends Module { @@ -20,8 +20,8 @@ public NoRotate() { @EventHandler private void onReceivePacket(PacketEvent.Receive event) { if (event.packet instanceof PlayerPositionLookS2CPacket packet) { - PlayerPosition oldPosition = packet.change(); - PlayerPosition newPosition = new PlayerPosition( + EntityPosition oldPosition = packet.change(); + EntityPosition newPosition = new EntityPosition( oldPosition.position(), oldPosition.deltaMovement(), mc.player.getYaw(), diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java index 4fbd329724..4ea3267313 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java @@ -300,7 +300,7 @@ private boolean checkCorner(double x, double y, double z, Vector3d min, Vector3d public boolean shouldSkip(Entity entity) { if (!entities.get().contains(entity.getType())) return true; if (entity == mc.player && ignoreSelf.get()) return true; - if (entity == mc.cameraEntity && mc.options.getPerspective().isFirstPerson()) return true; + if (entity == mc.getCameraEntity() && mc.options.getPerspective().isFirstPerson()) return true; return !EntityUtils.isInRenderDistance(entity); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java index e79ba5a800..96a9623f9c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java @@ -209,7 +209,7 @@ private void unpress() { @EventHandler private void onTick(TickEvent.Post event) { - if (mc.cameraEntity.isInsideWall()) mc.getCameraEntity().noClip = true; + if (mc.getCameraEntity().isInsideWall()) mc.getCameraEntity().noClip = true; if (!perspective.isFirstPerson()) mc.options.setPerspective(Perspective.FIRST_PERSON); Vec3d forward = Vec3d.fromPolar(0, yaw); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java index 7de7594abf..ccf56bef3a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java @@ -443,7 +443,7 @@ private void renderNametagPlayer(Render2DEvent event, PlayerEntity player, boole double width = nameWidth; - boolean renderPlayerDistance = player != mc.cameraEntity || Modules.get().isActive(Freecam.class); + boolean renderPlayerDistance = player != mc.getCameraEntity() || Modules.get().isActive(Freecam.class); if (displayHealth.get()) width += healthWidth; if (displayGameMode.get()) width += gmWidth; diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java index 028791af51..592b066bd0 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/FakeClientPlayer.java @@ -56,7 +56,9 @@ public static PlayerEntity getPlayer() { null, null, null, - null) + null, + null, + false) ), new ClientWorld.Properties(Difficulty.NORMAL, false, false), world.getRegistryKey(), diff --git a/src/main/java/meteordevelopment/meteorclient/utils/player/Rotations.java b/src/main/java/meteordevelopment/meteorclient/utils/player/Rotations.java index c10c4fff17..48dad606ab 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/player/Rotations.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/player/Rotations.java @@ -85,7 +85,7 @@ private static void resetLastRotation() { @EventHandler private static void onSendMovementPacketsPre(SendMovementPacketsEvent.Pre event) { - if (mc.cameraEntity != mc.player) return; + if (mc.getCameraEntity() != mc.player) return; sentLastRotation = false; if (!rotations.isEmpty()) { @@ -127,7 +127,7 @@ private static void setClientRotation(Rotation rotation) { @EventHandler private static void onSendMovementPacketsPost(SendMovementPacketsEvent.Post event) { if (!rotations.isEmpty()) { - if (mc.cameraEntity == mc.player) { + if (mc.getCameraEntity() == mc.player) { rotations.get(i - 1).runCallback(); if (rotations.size() == 1) lastRotation = rotations.get(i - 1); From e60837583e66b8df8cc8c33ef41610334eecd532 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Wed, 20 Aug 2025 17:24:19 +0100 Subject: [PATCH 04/20] update to 25w34b --- gradle.properties | 6 +-- .../events/render/RenderItemEntityEvent.java | 5 ++- .../mixin/BannerBlockEntityRendererMixin.java | 44 +++++++++++-------- .../mixin/BeaconBlockEntityRendererMixin.java | 6 ++- .../mixin/BlockEntityRenderManagerMixin.java | 10 +++-- ...chantingTableBlockEntityRendererMixin.java | 11 +++-- .../mixin/EndCrystalEntityRendererMixin.java | 16 +++---- .../mixin/FishingBobberEntityMixin.java | 2 +- .../mixin/HeldItemRendererMixin.java | 12 ++--- .../mixin/ItemEntityRendererMixin.java | 2 +- .../mixin/LivingEntityRendererMixin.java | 8 ++-- .../mixin/MinecraftClientAccessor.java | 22 +++------- .../mixin/MultiplayerScreenMixin.java | 2 +- .../meteorclient/mixin/PlayerEntityMixin.java | 10 ++--- .../mixin/PlayerEntityRendererMixin.java | 12 ++--- .../mixin/ServerPlayerEntityMixin.java | 2 +- .../systems/accounts/Account.java | 21 ++++----- .../accounts/types/TheAlteningAccount.java | 6 +-- .../systems/modules/movement/Flight.java | 2 +- .../systems/modules/render/EntityOwner.java | 2 +- .../systems/modules/render/ItemPhysics.java | 2 +- .../utils/render/SimpleBlockRenderer.java | 2 +- .../utils/tooltip/BannerTooltipComponent.java | 10 ++--- 23 files changed, 110 insertions(+), 105 deletions(-) diff --git a/gradle.properties b/gradle.properties index 6246b7c003..4a4c479f1e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w33a -yarn_mappings=25w33a+build.5 +minecraft_version=25w34b +yarn_mappings=25w34b+build.1 loader_version=0.17.0 -fapi_version=0.131.3+1.21.9 +fapi_version=0.132.1+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java b/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java index 14cd7fbcf4..901903d135 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java @@ -9,6 +9,7 @@ import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import net.minecraft.client.item.ItemModelManager; import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.ItemEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.ItemEntity; @@ -23,8 +24,9 @@ public class RenderItemEntityEvent extends Cancellable { public VertexConsumerProvider vertexConsumerProvider; public int light; public ItemModelManager itemModelManager; + public EntityRenderCommandQueue renderCommandQueue; - public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, ItemModelManager itemModelManager) { + public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, ItemModelManager itemModelManager, EntityRenderCommandQueue renderCommandQueue) { INSTANCE.setCancelled(false); INSTANCE.itemEntity = (ItemEntity) ((IEntityRenderState) renderState).meteor$getEntity(); INSTANCE.renderState = renderState; @@ -33,6 +35,7 @@ public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float INSTANCE.vertexConsumerProvider = vertexConsumerProvider; INSTANCE.light = light; INSTANCE.itemModelManager = itemModelManager; + INSTANCE.renderCommandQueue = renderCommandQueue; return INSTANCE; } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 719cf10180..698f9d5ca4 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -5,22 +5,25 @@ package meteordevelopment.meteorclient.mixin; -import com.llamalad7.mixinextras.sugar.Local; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.BannerBlockEntity; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; +import net.minecraft.client.render.block.entity.model.BannerFlagBlockModel; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.render.model.ModelBaker; import net.minecraft.client.texture.SpriteHolder; +import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.component.type.BannerPatternsComponent; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Unit; import net.minecraft.util.math.RotationAxis; import net.minecraft.util.math.Vec3d; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -28,33 +31,38 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { - @Shadow - public abstract void render(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d); - - @Shadow - @Final - private SpriteHolder field_61779; - - @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true) - private void injectRender1(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void injectRender1(BannerBlockEntity bannerBlockEntity, float f, MatrixStack matrixStack, int i, int j, Vec3d vec3d, ModelCommandRenderer.class_11792 arg, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } - @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;)V"), cancellable = true) - private void injectRender2(BannerBlockEntity bannerBlockEntity, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, Vec3d vec3d, CallbackInfo ci, @Local(ordinal = 1) float rotation, @Local BannerBlockModel bannerBlockModel) { + @Inject(method = "render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73490(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V"), cancellable = true) + private static void injectRender2(SpriteHolder spriteHolder, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel bannerBlockModel, BannerFlagBlockModel bannerFlagBlockModel, float g, DyeColor dyeColor, BannerPatternsComponent bannerPatternsComponent, ModelCommandRenderer.class_11792 arg, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.Pillar) { - renderPillar(matrixStack, vertexConsumerProvider, light, overlay, rotation, bannerBlockModel); + renderPillar(matrixStack, entityRenderCommandQueue, light, overlay, rotation, bannerBlockModel, spriteHolder, arg); ci.cancel(); } } @Unique - private void renderPillar(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, float rotation, BannerBlockModel model) { + private static void renderPillar(MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel model, SpriteHolder spriteHolder, ModelCommandRenderer.class_11792 arg) { matrices.push(); matrices.translate(0.5F, 0.0F, 0.5F); matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(rotation)); matrices.scale(0.6666667F, -0.6666667F, -0.6666667F); - model.render(matrices, ModelBaker.BANNER_BASE.getVertexConsumer(this.field_61779, vertexConsumers, RenderLayer::getEntitySolid), light, overlay); + SpriteIdentifier spriteIdentifier = ModelBaker.BANNER_BASE; + entityRenderCommandQueue.method_73490( + model, + Unit.INSTANCE, + matrices, + spriteIdentifier.getRenderLayer(RenderLayer::getEntitySolid), + light, + overlay, + -1, + spriteHolder.getSprite(spriteIdentifier), + 0, + arg + ); matrices.pop(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java index 7f8c3a9d4e..53d986f942 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java @@ -9,11 +9,13 @@ import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.BeamEmitter; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.Vec3d; +import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -22,7 +24,7 @@ @Mixin(BeaconBlockEntityRenderer.class) public abstract class BeaconBlockEntityRendererMixin implements BlockEntityRenderer { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRender(T entity, float tickProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, Vec3d cameraPos, CallbackInfo ci) { + private void onRender(T entity, float tickProgress, MatrixStack matrices, int i, int light, Vec3d vec3d, @Nullable ModelCommandRenderer.class_11792 arg, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noBeaconBeams()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index 397ff0a358..f68749de6c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -8,9 +8,11 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderManager; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.util.math.MatrixStack; +import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -18,9 +20,9 @@ @Mixin(BlockEntityRenderManager.class) public abstract class BlockEntityRenderManagerMixin { - @Inject(method = "render(Lnet/minecraft/block/entity/BlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;)V", at = @At("HEAD"), cancellable = true) - private void onRenderEntity(E blockEntity, float tickDelta, MatrixStack matrix, VertexConsumerProvider vertexConsumerProvider, CallbackInfo info) { + @Inject(method = "render", at = @At("HEAD"), cancellable = true) + private void onRenderEntity(E blockEntity, float tickProgress, MatrixStack matrices, @Nullable ModelCommandRenderer.class_11792 arg, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(blockEntity)); - if (event.isCancelled()) info.cancel(); + if (event.isCancelled()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java index c3a97b0075..b3b54dafb9 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java @@ -8,17 +8,20 @@ import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.model.Model; +import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.EnchantingTableBlockEntityRenderer; -import net.minecraft.client.render.entity.model.BookModel; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.ModelCommandRenderer; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @Mixin(EnchantingTableBlockEntityRenderer.class) public abstract class EnchantingTableBlockEntityRendererMixin { - @WrapWithCondition(method = "render(Lnet/minecraft/block/entity/EnchantingTableBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/model/BookModel;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V")) - private boolean onRenderBookModelRenderProxy(BookModel instance, MatrixStack matrixStack, VertexConsumer vertexConsumer, int light, int overlay) { + @WrapWithCondition(method = "render(Lnet/minecraft/block/entity/EnchantingTableBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73490(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V")) + private boolean onRenderBookModelRenderProxy(EntityRenderCommandQueue instance, Model model, Object o, MatrixStack matrixStack, RenderLayer renderLayer, int i, int j, int k, Sprite sprite, int l, ModelCommandRenderer.class_11792 class11792) { return !Modules.get().get(NoRender.class).noEnchTableBook(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java index 7f00f9610c..ebab5eac56 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java @@ -9,10 +9,10 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Chams; import net.minecraft.client.model.Model; -import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.entity.EndCrystalEntityRenderer; import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.render.entity.state.EndCrystalEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; @@ -61,19 +61,19 @@ private void onInit(CallbackInfo info) { // Chams - Color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;pushModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;III)V")) - private boolean render$color(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrices, RenderLayer renderLayer, int light, int overlay, int outlineColor) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73489(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V")) + private boolean render$color(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrices, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.class_11792 class11792) { if (chams.isActive() && chams.crystals.get()) { - instance.pushModel(model, + instance.method_73490(model, state, matrices, END_CRYSTAL, - ((EndCrystalEntityRenderState) state).light, - OverlayTexture.DEFAULT_UV, + light, + uv, chams.crystalsColor.get().getPacked(), null, - ((EndCrystalEntityRenderState) state).outlineColor, - 0); + outlineColor, + null); return false; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java index ecd31e046f..e9b8fd287d 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/FishingBobberEntityMixin.java @@ -20,7 +20,7 @@ public abstract class FishingBobberEntityMixin { @WrapOperation(method = "handleStatus", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/projectile/FishingBobberEntity;pullHookedEntity(Lnet/minecraft/entity/Entity;)V")) private void preventFishingRodPull(FishingBobberEntity instance, Entity entity, Operation original) { - if (!instance.world().isClient() || entity != mc.player) original.call(instance, entity); + if (!instance.getEntityWorld().isClient() || entity != mc.player) original.call(instance, entity); Velocity velocity = Modules.get().get(Velocity.class); if (!velocity.isActive() || !velocity.fishing.get()) original.call(instance, entity); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java index fcea6516b8..c778f4c5f8 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java @@ -13,7 +13,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.HandView; import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.item.HeldItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; @@ -47,7 +47,7 @@ public abstract class HeldItemRendererMixin { @Shadow protected abstract boolean shouldSkipHandAnimationOnSwap(ItemStack from, ItemStack to); - @ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6) + @ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6) private float modifySwing(float swingProgress) { HandView module = Modules.get().get(HandView.class); Hand hand = MoreObjects.firstNonNull(mc.player.preferredHand, Hand.MAIN_HAND); @@ -82,13 +82,13 @@ private float modifyEquipProgressOffhand(float value) { return (shouldSkipHandAnimationOnSwap(offHand, mc.player.getOffHandStack()) ? 1 : 0) - equipProgressOffHand; } - @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", shift = At.Shift.BEFORE)) - private void onRenderItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) { + @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;I)V", shift = At.Shift.BEFORE)) + private void onRenderItem(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, CallbackInfo ci) { MeteorClient.EVENT_BUS.post(HeldItemRendererEvent.get(hand, matrices)); } - @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IFFLnet/minecraft/util/Arm;)V")) - private void onRenderArm(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) { + @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;IFFLnet/minecraft/util/Arm;)V")) + private void onRenderArm(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, CallbackInfo ci) { MeteorClient.EVENT_BUS.post(ArmRenderEvent.get(hand, matrices)); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java index 57d653dc0d..bfa2ce1a8b 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java @@ -30,7 +30,7 @@ public abstract class ItemEntityRendererMixin { @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { // todo fix to work with entity render batching - RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager)); + RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager, entityRenderCommandQueue)); if (event.isCancelled()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java index 1cf5bc8ceb..5d8dc9cadc 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java @@ -18,6 +18,7 @@ import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.state.LivingEntityRenderState; import net.minecraft.client.texture.Sprite; @@ -26,7 +27,6 @@ import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.scoreboard.Team; -import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -64,12 +64,12 @@ private Team hasLabelClientPlayerEntityGetScoreboardTeamProxy(Team team) { // Chams - player color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;pushModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;II)V")) - private boolean render$render(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int tintedColor, @Nullable Sprite sprite, int outlineColor, int order) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73490(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V")) + private boolean render$render(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.class_11792 class11792) { if (!chams.isActive() || !chams.players.get() || !(((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player)) return true; if (chams.ignoreSelf.get() && player == mc.player) return true; - instance.pushModel(model, state, matrixStack, renderLayer, light, overlay, PlayerUtils.getPlayerColor(player, chams.playersColor.get()).getPacked(), sprite, outlineColor, order); + instance.method_73490(model, state, matrixStack, renderLayer, light, overlay, PlayerUtils.getPlayerColor(player, chams.playersColor.get()).getPacked(), sprite, outlineColor, null); return false; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java index 57b5ecb430..ed2c2919c8 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java @@ -5,10 +5,8 @@ package meteordevelopment.meteorclient.mixin; -import com.mojang.authlib.minecraft.MinecraftSessionService; import com.mojang.authlib.minecraft.UserApiService; import com.mojang.authlib.yggdrasil.ProfileResult; -import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.SocialInteractionsManager; import net.minecraft.client.resource.ResourceReloadLogger; @@ -16,12 +14,12 @@ import net.minecraft.client.session.Session; import net.minecraft.client.session.report.AbuseReportContext; import net.minecraft.client.texture.PlayerSkinProvider; +import net.minecraft.util.ApiServices; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; -import java.net.Proxy; import java.util.concurrent.CompletableFuture; @Mixin(MinecraftClient.class) @@ -35,9 +33,6 @@ public interface MinecraftClientAccessor { @Accessor("session") void meteor$setSession(Session session); - @Accessor("networkProxy") - Proxy meteor$getProxy(); - @Accessor("resourceReloadLogger") ResourceReloadLogger meteor$getResourceReloadLogger(); @@ -54,21 +49,10 @@ public interface MinecraftClientAccessor { @Accessor("profileKeys") void meteor$setProfileKeys(ProfileKeys keys); - @Accessor("authenticationService") - YggdrasilAuthenticationService meteor$getAuthenticationService(); - @Mutable @Accessor("userApiService") void meteor$setUserApiService(UserApiService apiService); - @Mutable - @Accessor("sessionService") - void meteor$setSessionService(MinecraftSessionService sessionService); - - @Mutable - @Accessor("authenticationService") - void meteor$setAuthenticationService(YggdrasilAuthenticationService authenticationService); - @Mutable @Accessor("skinProvider") void meteor$setSkinProvider(PlayerSkinProvider skinProvider); @@ -84,4 +68,8 @@ public interface MinecraftClientAccessor { @Mutable @Accessor("gameProfileFuture") void meteor$setGameProfileFuture(CompletableFuture future); + + @Mutable + @Accessor("field_62106") + void meteor$setApiServices(ApiServices apiServices); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java index 85e051fb80..a1e6b94bcd 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java @@ -63,7 +63,7 @@ private void onInit(CallbackInfo info) { ); } - @Inject(method = "render", at = @At("TAIL")) + //@Inject(method = "render", at = @At("TAIL")) private void onRender(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { int x = 3; int y = 3; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java index 2377e95257..71e8f01c61 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityMixin.java @@ -47,7 +47,7 @@ protected PlayerEntityMixin(EntityType entityType, World @Inject(method = "clipAtLedge", at = @At("HEAD"), cancellable = true) protected void clipAtLedge(CallbackInfoReturnable info) { - if (!world().isClient()) return; + if (!getEntityWorld().isClient()) return; ClipAtLedgeEvent event = MeteorClient.EVENT_BUS.post(ClipAtLedgeEvent.get()); if (event.isSet()) info.setReturnValue(event.isClip()); @@ -55,7 +55,7 @@ protected void clipAtLedge(CallbackInfoReturnable info) { @Inject(method = "dropItem", at = @At("HEAD"), cancellable = true) private void onDropItem(ItemStack stack, boolean retainOwnership, CallbackInfoReturnable cir) { - if (world().isClient() && !stack.isEmpty()) { + if (getEntityWorld().isClient() && !stack.isEmpty()) { if (MeteorClient.EVENT_BUS.post(DropItemsEvent.get(stack)).isCancelled()) cir.setReturnValue(null); } } @@ -72,7 +72,7 @@ private void onIsCreative(CallbackInfoReturnable info) { @ModifyReturnValue(method = "getBlockBreakingSpeed", at = @At(value = "RETURN")) public float onGetBlockBreakingSpeed(float breakSpeed, BlockState block) { - if (!world().isClient()) return breakSpeed; + if (!getEntityWorld().isClient()) return breakSpeed; SpeedMine speedMine = Modules.get().get(SpeedMine.class); if (!speedMine.isActive() || speedMine.mode.get() != SpeedMine.Mode.Normal || !speedMine.filter(block.getBlock())) return breakSpeed; @@ -93,7 +93,7 @@ public float onGetBlockBreakingSpeed(float breakSpeed, BlockState block) { @ModifyReturnValue(method = "getMovementSpeed", at = @At("RETURN")) private float onGetMovementSpeed(float original) { - if (!world().isClient()) return original; + if (!getEntityWorld().isClient()) return original; if (!Modules.get().get(NoSlow.class).slowness()) return original; float walkSpeed = getAbilities().getWalkSpeed(); @@ -108,7 +108,7 @@ private float onGetMovementSpeed(float original) { @Inject(method = "getOffGroundSpeed", at = @At("HEAD"), cancellable = true) private void onGetOffGroundSpeed(CallbackInfoReturnable info) { - if (!world().isClient()) return; + if (!getEntityWorld().isClient()) return; float speed = Modules.get().get(Flight.class).getOffGroundSpeed(); if (speed != -1) info.setReturnValue(speed); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java index 60e33cedce..5f7ea1c085 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java @@ -14,10 +14,10 @@ import net.minecraft.client.model.ModelPart; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.entity.PlayerEntityRenderer; +import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; +import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; @@ -57,7 +57,7 @@ public abstract class PlayerEntityRendererMixin { // Chams - Hand Texture @ModifyExpressionValue(method = "renderArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getEntityTranslucent(Lnet/minecraft/util/Identifier;)Lnet/minecraft/client/render/RenderLayer;")) - private RenderLayer renderArm$texture(RenderLayer original, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, Identifier skinTexture, ModelPart arm, boolean sleeveVisible) { + private RenderLayer renderArm$texture(RenderLayer original, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int light, Identifier skinTexture, ModelPart modelPart, boolean sleeveVisible) { if (chams.isActive() && chams.hand.get()) { Identifier texture = chams.handTexture.get() ? skinTexture : Chams.BLANK; return RenderLayer.getEntityTranslucent(texture); @@ -68,10 +68,10 @@ public abstract class PlayerEntityRendererMixin { // Chams - Hand Color - @WrapWithCondition(method = "renderArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V")) - private boolean renderArm$color(ModelPart instance, MatrixStack matrices, VertexConsumer vertices, int light, int overlay) { + @WrapWithCondition(method = "renderArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73491(Lnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IILnet/minecraft/client/texture/Sprite;)V")) + private boolean renderArm$color(EntityRenderCommandQueue instance, ModelPart modelPart, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, Sprite sprite) { if (chams.isActive() && chams.hand.get()) { - instance.render(matrices, vertices, light, overlay, chams.handColor.get().getPacked()); + instance.method_73492(modelPart, matrixStack, renderLayer, light, uv, null, chams.handColor.get().getPacked()); return false; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java index 10af2cedf3..be0bf950b3 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ServerPlayerEntityMixin.java @@ -25,7 +25,7 @@ protected ServerPlayerEntityMixin(EntityType entityType, @Inject(method = "jump", at = @At("HEAD"), cancellable = true) public void dontJump(CallbackInfo ci) { - if (!world().isClient()) return; + if (!getEntityWorld().isClient()) return; Anchor module = Modules.get().get(Anchor.class); if (module.isActive() && module.cancelJump) ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java index 3b5e19e151..9f3c8c4cb5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java @@ -5,7 +5,6 @@ package meteordevelopment.meteorclient.systems.accounts; -import com.mojang.authlib.minecraft.MinecraftSessionService; import com.mojang.authlib.minecraft.UserApiService; import com.mojang.authlib.yggdrasil.ServicesKeyType; import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; @@ -22,6 +21,7 @@ import net.minecraft.client.texture.PlayerSkinProvider; import net.minecraft.nbt.NbtCompound; import net.minecraft.network.encryption.SignatureVerifier; +import net.minecraft.util.ApiServices; import net.minecraft.util.Util; import java.nio.file.Path; @@ -44,8 +44,8 @@ protected Account(AccountType type, String name) { public abstract boolean fetchInfo(); public boolean login() { - YggdrasilAuthenticationService authenticationService = new YggdrasilAuthenticationService(((MinecraftClientAccessor) mc).meteor$getProxy()); - applyLoginEnvironment(authenticationService, authenticationService.createMinecraftSessionService()); + YggdrasilAuthenticationService authenticationService = new YggdrasilAuthenticationService(mc.getNetworkProxy()); + applyLoginEnvironment(authenticationService); return true; } @@ -66,23 +66,24 @@ public AccountCache getCache() { public static void setSession(Session session) { MinecraftClientAccessor mca = (MinecraftClientAccessor) mc; mca.meteor$setSession(session); - UserApiService apiService; - apiService = mca.meteor$getAuthenticationService().createUserApiService(session.getAccessToken()); + + YggdrasilAuthenticationService yggdrasilAuthenticationService = new YggdrasilAuthenticationService(mc.getNetworkProxy()); + + UserApiService apiService = yggdrasilAuthenticationService.createUserApiService(session.getAccessToken()); mca.meteor$setUserApiService(apiService); mca.meteor$setSocialInteractionsManager(new SocialInteractionsManager(mc, apiService)); mca.meteor$setProfileKeys(ProfileKeys.create(apiService, session, mc.runDirectory.toPath())); mca.meteor$setAbuseReportContext(AbuseReportContext.create(ReporterEnvironment.ofIntegratedServer(), apiService)); - mca.meteor$setGameProfileFuture(CompletableFuture.supplyAsync(() -> mc.getSessionService().fetchProfile(mc.getSession().getUuidOrNull(), true), Util.getIoWorkerExecutor())); + mca.meteor$setGameProfileFuture(CompletableFuture.supplyAsync(() -> mc.method_73361().sessionService().fetchProfile(mc.getSession().getUuidOrNull(), true), Util.getIoWorkerExecutor())); } - public static void applyLoginEnvironment(YggdrasilAuthenticationService authService, MinecraftSessionService sessService) { + public static void applyLoginEnvironment(YggdrasilAuthenticationService authService) { MinecraftClientAccessor mca = (MinecraftClientAccessor) mc; - mca.meteor$setAuthenticationService(authService); SignatureVerifier.create(authService.getServicesKeySet(), ServicesKeyType.PROFILE_KEY); - mca.meteor$setSessionService(sessService); PlayerSkinProvider.FileCache skinCache = ((PlayerSkinProviderAccessor) mc.getSkinProvider()).meteor$getSkinCache(); Path skinCachePath = ((FileCacheAccessor) skinCache).meteor$getDirectory(); - mca.meteor$setSkinProvider(new PlayerSkinProvider(skinCachePath, sessService, mc)); + mca.meteor$setApiServices(ApiServices.create(authService, mc.runDirectory)); + mca.meteor$setSkinProvider(new PlayerSkinProvider(skinCachePath, mc.method_73361(), mc)); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java index 0e910ccbef..0ae88fb62f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java @@ -10,8 +10,6 @@ import de.florianmichael.waybackauthlib.InvalidCredentialsException; import de.florianmichael.waybackauthlib.WaybackAuthLib; import meteordevelopment.meteorclient.MeteorClient; -import meteordevelopment.meteorclient.mixin.MinecraftClientAccessor; -import meteordevelopment.meteorclient.mixin.YggdrasilMinecraftSessionServiceAccessor; import meteordevelopment.meteorclient.systems.accounts.Account; import meteordevelopment.meteorclient.systems.accounts.AccountType; import meteordevelopment.meteorclient.systems.accounts.TokenAccount; @@ -26,7 +24,7 @@ public class TheAlteningAccount extends Account implements TokenAccount { private static final Environment ENVIRONMENT = new Environment("http://sessionserver.thealtening.com", "http://authserver.thealtening.com", "The Altening"); - private static final YggdrasilAuthenticationService SERVICE = new YggdrasilAuthenticationService(((MinecraftClientAccessor) mc).meteor$getProxy(), ENVIRONMENT); + private static final YggdrasilAuthenticationService SERVICE = new YggdrasilAuthenticationService(mc.getNetworkProxy(), ENVIRONMENT); private String token; private @Nullable WaybackAuthLib auth; @@ -59,7 +57,7 @@ public boolean fetchInfo() { @Override public boolean login() { if (auth == null) return false; - applyLoginEnvironment(SERVICE, YggdrasilMinecraftSessionServiceAccessor.meteor$createYggdrasilMinecraftSessionService(SERVICE.getServicesKeySet(), SERVICE.getProxy(), ENVIRONMENT)); + applyLoginEnvironment(SERVICE); try { setSession(new Session(auth.getCurrentProfile().getName(), auth.getCurrentProfile().getId(), auth.getAccessToken(), Optional.empty(), Optional.empty())); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java index c65fdac6e9..c85285fa57 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java @@ -253,7 +253,7 @@ private void abilitiesOff() { // Copied from ServerPlayNetworkHandler#isEntityOnAir private boolean isEntityOnAir(Entity entity) { - return entity.world().getStatesInBox(entity.getBoundingBox().expand(0.0625).stretch(0.0, -0.55, 0.0)).allMatch(AbstractBlock.AbstractBlockState::isAir); + return entity.getEntityWorld().getStatesInBox(entity.getBoundingBox().expand(0.0625).stretch(0.0, -0.55, 0.0)).allMatch(AbstractBlock.AbstractBlockState::isAir); } public float getOffGroundSpeed() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java index dfc62934ee..97752de1b7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java @@ -99,7 +99,7 @@ private void renderNametag(String name) { private String getOwnerName(LazyEntityReference owner) { // Check if the player is online - @Nullable LivingEntity ownerEntity = owner.resolve(mc.world, LivingEntity.class); + @Nullable LivingEntity ownerEntity = LazyEntityReference.resolve(owner, mc.world, LivingEntity.class); if (ownerEntity instanceof PlayerEntity playerEntity) return playerEntity.getName().getString(); UUID uuid = owner.getUuid(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java index 0eef408ffd..6d1e3171e6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java @@ -105,7 +105,7 @@ private void renderLayer(RenderItemEntityEvent event, ModelInfo info) { translate(matrices, info, x, 0, z); } - event.renderState.itemRenderState.render(matrices, event.vertexConsumerProvider, event.light, OverlayTexture.DEFAULT_UV); + event.renderState.itemRenderState.render(matrices, event.renderCommandQueue, event.light, OverlayTexture.DEFAULT_UV, event.renderState.outlineColor); matrices.pop(); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index d5a555190d..9a5349364d 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -41,7 +41,7 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { Vec3d camera = mc.gameRenderer.getCamera().getPos(); - renderer.render(blockEntity, tickDelta, MATRICES, vertexConsumerProvider, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, camera); + renderer.render(blockEntity, tickDelta, MATRICES, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, camera, null, mc.gameRenderer.getEntityRenderDispatcher().getQueue()); } vertexConsumerProvider.setOffset(0, 0, 0); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java index 02c9d25136..1654bde1ed 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java @@ -12,8 +12,9 @@ import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.DiffuseLighting; import net.minecraft.client.render.OverlayTexture; -import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; +import net.minecraft.client.render.entity.command.BatchingEntityRenderCommandQueue; +import net.minecraft.client.render.entity.command.EntityRenderDispatcher; import net.minecraft.client.render.entity.model.EntityModelLayers; import net.minecraft.client.render.model.ModelBaker; import net.minecraft.client.util.math.MatrixStack; @@ -78,12 +79,13 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he float s = Math.min(width, height); matrices.scale(s * 0.75f, s * 0.75f, 1); - VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers(); + EntityRenderDispatcher entityRenderDispatcher = mc.gameRenderer.getEntityRenderDispatcher(); + BatchingEntityRenderCommandQueue batchingEntityRenderCommandQueue = entityRenderDispatcher.getQueue(); BannerBlockEntityRenderer.renderCanvas( ((BlockEntityRenderManagerAccessor) mc.getBlockEntityRenderDispatcher()).getSpriteHolder(), matrices, - immediate, + batchingEntityRenderCommandQueue, 15728880, OverlayTexture.DEFAULT_UV, bannerField, @@ -93,8 +95,6 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he patterns ); - immediate.draw(); - matrices.pop(); } } From 7f7e57f8a5029e17b0d2800ce5b5bddd1a72683d Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 26 Aug 2025 16:24:19 +0100 Subject: [PATCH 05/20] Update to 25w35a --- gradle.properties | 4 ++-- .../PlayerListEntryArgumentType.java | 4 ++-- .../commands/commands/FriendsCommand.java | 2 +- .../commands/commands/NameHistoryCommand.java | 4 ++-- .../events/render/RenderItemEntityEvent.java | 6 +++--- .../mixin/ArmorFeatureRendererMixin.java | 6 +++--- .../mixin/BannerBlockEntityRendererMixin.java | 18 ++++++++--------- .../mixin/BeaconBlockEntityRendererMixin.java | 6 +++--- .../mixin/BlockEntityRenderManagerMixin.java | 6 +++--- .../mixin/CapeFeatureRendererMixin.java | 6 +++--- .../mixin/ElytraFeatureRendererMixin.java | 6 +++--- ...chantingTableBlockEntityRendererMixin.java | 8 ++++---- .../mixin/EndCrystalEntityRendererMixin.java | 20 +++++++++---------- .../mixin/HeadFeatureRendererMixin.java | 6 +++--- .../mixin/HeldItemRendererMixin.java | 12 +++++------ .../mixin/ItemEntityRendererMixin.java | 8 ++++---- .../mixin/LivingEntityRendererMixin.java | 18 ++++++++--------- .../meteorclient/mixin/MapRendererMixin.java | 4 ++-- .../mixin/MinecraftClientAccessor.java | 2 +- .../mixin/PlayerEntityRendererMixin.java | 10 +++++----- .../mixin/PlayerListEntryMixin.java | 2 +- .../systems/accounts/Account.java | 3 ++- .../accounts/types/TheAlteningAccount.java | 6 +++--- .../meteorclient/systems/friends/Friends.java | 2 +- .../systems/modules/misc/BetterChat.java | 2 +- .../systems/modules/misc/BookBot.java | 2 +- .../systems/modules/misc/Notifier.java | 8 ++++---- .../systems/modules/movement/Blink.java | 2 +- .../systems/modules/render/BetterTab.java | 4 ++-- .../systems/modules/render/LogoutSpots.java | 2 +- .../systems/modules/render/Tracers.java | 4 ++-- .../utils/render/WireframeEntityRenderer.java | 6 +++--- .../utils/tooltip/BannerTooltipComponent.java | 13 ++++++------ 33 files changed, 107 insertions(+), 105 deletions(-) diff --git a/gradle.properties b/gradle.properties index 4a4c479f1e..778e188c78 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,8 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w34b -yarn_mappings=25w34b+build.1 +minecraft_version=25w35a +yarn_mappings=25w35a+build.1 loader_version=0.17.0 fapi_version=0.132.1+1.21.9 diff --git a/src/main/java/meteordevelopment/meteorclient/commands/arguments/PlayerListEntryArgumentType.java b/src/main/java/meteordevelopment/meteorclient/commands/arguments/PlayerListEntryArgumentType.java index db7c3eae36..8d195da02b 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/arguments/PlayerListEntryArgumentType.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/arguments/PlayerListEntryArgumentType.java @@ -44,7 +44,7 @@ public PlayerListEntry parse(StringReader reader) throws CommandSyntaxException PlayerListEntry playerListEntry = null; for (PlayerListEntry p : mc.getNetworkHandler().getPlayerList()) { - if (p.getProfile().getName().equalsIgnoreCase(argument)) { + if (p.getProfile().name().equalsIgnoreCase(argument)) { playerListEntry = p; break; } @@ -56,7 +56,7 @@ public PlayerListEntry parse(StringReader reader) throws CommandSyntaxException @Override public CompletableFuture listSuggestions(CommandContext context, SuggestionsBuilder builder) { - return CommandSource.suggestMatching(mc.getNetworkHandler().getPlayerList().stream().map(playerListEntry -> playerListEntry.getProfile().getName()), builder); + return CommandSource.suggestMatching(mc.getNetworkHandler().getPlayerList().stream().map(playerListEntry -> playerListEntry.getProfile().name()), builder); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java index 20c2996fbc..23ae209cad 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java @@ -27,7 +27,7 @@ public void build(LiteralArgumentBuilder builder) { .then(argument("player", PlayerListEntryArgumentType.create()) .executes(context -> { GameProfile profile = PlayerListEntryArgumentType.get(context).getProfile(); - Friend friend = new Friend(profile.getName(), profile.getId()); + Friend friend = new Friend(profile.name(), profile.id()); if (Friends.get().add(friend)) { ChatUtils.sendMsg(friend.hashCode(), Formatting.GRAY, "Added (highlight)%s (default)to friends.".formatted(friend.getName())); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java index 4e443dacfa..db1a317183 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java @@ -35,7 +35,7 @@ public void build(LiteralArgumentBuilder builder) { builder.then(argument("player", PlayerListEntryArgumentType.create()).executes(context -> { MeteorExecutor.execute(() -> { PlayerListEntry lookUpTarget = PlayerListEntryArgumentType.get(context); - UUID uuid = lookUpTarget.getProfile().getId(); + UUID uuid = lookUpTarget.getProfile().id(); NameHistory history = Http.get("https://laby.net/api/v2/user/" + uuid + "/get-profile") .exceptionHandler(e -> error("There was an error fetching that users name history.")) @@ -47,7 +47,7 @@ public void build(LiteralArgumentBuilder builder) { error("There was an error fetching that users name history."); } - String name = lookUpTarget.getProfile().getName(); + String name = lookUpTarget.getProfile().name(); MutableText initial = Text.literal(name); initial.append(Text.literal(name.endsWith("s") ? "'" : "'s")); diff --git a/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java b/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java index 901903d135..25fa0d8c7c 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/render/RenderItemEntityEvent.java @@ -9,7 +9,7 @@ import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import net.minecraft.client.item.ItemModelManager; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.state.ItemEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.ItemEntity; @@ -24,9 +24,9 @@ public class RenderItemEntityEvent extends Cancellable { public VertexConsumerProvider vertexConsumerProvider; public int light; public ItemModelManager itemModelManager; - public EntityRenderCommandQueue renderCommandQueue; + public OrderedRenderCommandQueue renderCommandQueue; - public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, ItemModelManager itemModelManager, EntityRenderCommandQueue renderCommandQueue) { + public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, ItemModelManager itemModelManager, OrderedRenderCommandQueue renderCommandQueue) { INSTANCE.setCancelled(false); INSTANCE.itemEntity = (ItemEntity) ((IEntityRenderState) renderState).meteor$getEntity(); INSTANCE.renderState = renderState; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java index 70a81c217b..80a9b53858 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ArmorFeatureRendererMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.feature.ArmorFeatureRenderer; import net.minecraft.client.render.entity.model.BipedEntityModel; import net.minecraft.client.render.entity.state.BipedEntityRenderState; @@ -20,8 +20,8 @@ @Mixin(ArmorFeatureRenderer.class) public abstract class ArmorFeatureRendererMixin, A extends BipedEntityModel> { - @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) - private void onRender(MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int i, S bipedEntityRenderState, float f, float g, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) + private void onRender(MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, int i, S bipedEntityRenderState, float f, float g, CallbackInfo ci) { if (bipedEntityRenderState instanceof PlayerEntityRenderState && Modules.get().get(NoRender.class).noArmor()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 698f9d5ca4..90af179a78 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -12,8 +12,8 @@ import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; import net.minecraft.client.render.block.entity.model.BannerFlagBlockModel; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.ModelCommandRenderer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.model.ModelBaker; import net.minecraft.client.texture.SpriteHolder; import net.minecraft.client.util.SpriteIdentifier; @@ -31,27 +31,27 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { - @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void injectRender1(BannerBlockEntity bannerBlockEntity, float f, MatrixStack matrixStack, int i, int j, Vec3d vec3d, ModelCommandRenderer.class_11792 arg, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void injectRender1(BannerBlockEntity bannerBlockEntity, float f, MatrixStack matrixStack, int i, int j, Vec3d vec3d, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } - @Inject(method = "render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73490(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V"), cancellable = true) - private static void injectRender2(SpriteHolder spriteHolder, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel bannerBlockModel, BannerFlagBlockModel bannerFlagBlockModel, float g, DyeColor dyeColor, BannerPatternsComponent bannerPatternsComponent, ModelCommandRenderer.class_11792 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V"), cancellable = true) + private static void injectRender2(SpriteHolder spriteHolder, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel bannerBlockModel, BannerFlagBlockModel bannerFlagBlockModel, float g, DyeColor dyeColor, BannerPatternsComponent bannerPatternsComponent, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.Pillar) { - renderPillar(matrixStack, entityRenderCommandQueue, light, overlay, rotation, bannerBlockModel, spriteHolder, arg); + renderPillar(matrixStack, orderedRenderCommandQueue, light, overlay, rotation, bannerBlockModel, spriteHolder, crumblingOverlayCommand); ci.cancel(); } } @Unique - private static void renderPillar(MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel model, SpriteHolder spriteHolder, ModelCommandRenderer.class_11792 arg) { + private static void renderPillar(MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel model, SpriteHolder spriteHolder, ModelCommandRenderer.CrumblingOverlayCommand arg) { matrices.push(); matrices.translate(0.5F, 0.0F, 0.5F); matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(rotation)); matrices.scale(0.6666667F, -0.6666667F, -0.6666667F); SpriteIdentifier spriteIdentifier = ModelBaker.BANNER_BASE; - entityRenderCommandQueue.method_73490( + entityRenderCommandQueue.submitModel( model, Unit.INSTANCE, matrices, diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java index 53d986f942..869adc3c08 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java @@ -11,8 +11,8 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.ModelCommandRenderer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.Vec3d; import org.jetbrains.annotations.Nullable; @@ -24,7 +24,7 @@ @Mixin(BeaconBlockEntityRenderer.class) public abstract class BeaconBlockEntityRendererMixin implements BlockEntityRenderer { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRender(T entity, float tickProgress, MatrixStack matrices, int i, int light, Vec3d vec3d, @Nullable ModelCommandRenderer.class_11792 arg, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + private void onRender(T entity, float tickProgress, MatrixStack matrices, int light, int overlay, Vec3d cameraPos, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noBeaconBeams()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index f68749de6c..5cb4142f24 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -9,8 +9,8 @@ import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.render.block.entity.BlockEntityRenderManager; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.ModelCommandRenderer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -21,7 +21,7 @@ @Mixin(BlockEntityRenderManager.class) public abstract class BlockEntityRenderManagerMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRenderEntity(E blockEntity, float tickProgress, MatrixStack matrices, @Nullable ModelCommandRenderer.class_11792 arg, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + private void onRenderEntity(E blockEntity, float tickProgress, MatrixStack matrices, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, OrderedRenderCommandQueue queue, CallbackInfo ci) { RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(blockEntity)); if (event.isCancelled()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java index d28161b1f2..b4d57b43e7 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java @@ -8,7 +8,7 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import meteordevelopment.meteorclient.utils.network.Capes; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.feature.CapeFeatureRenderer; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; @@ -19,8 +19,8 @@ @Mixin(CapeFeatureRenderer.class) public abstract class CapeFeatureRendererMixin { - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;")) - private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;")) + private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); return id == null ? original : id; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java index bf72f14413..91aa29b3ff 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ElytraFeatureRendererMixin.java @@ -8,7 +8,7 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import meteordevelopment.meteorclient.utils.network.Capes; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.feature.ElytraFeatureRenderer; import net.minecraft.client.render.entity.feature.FeatureRenderer; import net.minecraft.client.render.entity.feature.FeatureRendererContext; @@ -26,8 +26,8 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { super(context); } - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/feature/ElytraFeatureRenderer;getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;")) - private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int i, S state, float f, float g) { + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/feature/ElytraFeatureRenderer;getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;")) + private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, S state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); return id == null ? original : id; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java index b3b54dafb9..f01e6a9bc7 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java @@ -11,8 +11,8 @@ import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.EnchantingTableBlockEntityRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.ModelCommandRenderer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Mixin; @@ -20,8 +20,8 @@ @Mixin(EnchantingTableBlockEntityRenderer.class) public abstract class EnchantingTableBlockEntityRendererMixin { - @WrapWithCondition(method = "render(Lnet/minecraft/block/entity/EnchantingTableBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73490(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V")) - private boolean onRenderBookModelRenderProxy(EntityRenderCommandQueue instance, Model model, Object o, MatrixStack matrixStack, RenderLayer renderLayer, int i, int j, int k, Sprite sprite, int l, ModelCommandRenderer.class_11792 class11792) { + @WrapWithCondition(method = "render(Lnet/minecraft/block/entity/EnchantingTableBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + private boolean onRenderBookModelRenderProxy(OrderedRenderCommandQueue instance, Model model, Object o, MatrixStack matrixStack, RenderLayer renderLayer, int i, int j, int k, Sprite sprite, int l, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { return !Modules.get().get(NoRender.class).noEnchTableBook(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java index ebab5eac56..ceb986b0cd 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java @@ -10,9 +10,9 @@ import meteordevelopment.meteorclient.systems.modules.render.Chams; import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.EndCrystalEntityRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.render.entity.state.EndCrystalEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; @@ -44,15 +44,15 @@ private void onInit(CallbackInfo info) { @Final private static Identifier TEXTURE; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD")) - private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD")) + private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { END_CRYSTAL = RenderLayer.getEntityTranslucent((chams.isActive() && chams.crystals.get() && !chams.crystalsTexture.get()) ? Chams.BLANK : TEXTURE); } // Chams - Scale - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) - private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) + private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { if (!chams.isActive() || !chams.crystals.get()) return; float v = chams.crystalsScale.get().floatValue(); @@ -61,12 +61,12 @@ private void onInit(CallbackInfo info) { // Chams - Color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73489(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V")) - private boolean render$color(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrices, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.class_11792 class11792) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + private boolean render$color(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (chams.isActive() && chams.crystals.get()) { - instance.method_73490(model, + instance.submitModel(model, state, - matrices, + matrixStack, END_CRYSTAL, light, uv, diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java index 61ad995e97..fb0c4badd7 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HeadFeatureRendererMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.feature.HeadFeatureRenderer; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.model.ModelWithHead; @@ -21,8 +21,8 @@ @Mixin(HeadFeatureRenderer.class) public abstract class HeadFeatureRendererMixin & ModelWithHead> { - @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) - private void onRender(MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int i, S livingEntityRenderState, float f, float g, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/LivingEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true) + private void onRender(MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, int i, S livingEntityRenderState, float f, float g, CallbackInfo ci) { if (livingEntityRenderState instanceof PlayerEntityRenderState && Modules.get().get(NoRender.class).noArmor()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java index c778f4c5f8..fe33f79316 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HeldItemRendererMixin.java @@ -13,7 +13,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.HandView; import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.item.HeldItemRenderer; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; @@ -47,7 +47,7 @@ public abstract class HeldItemRendererMixin { @Shadow protected abstract boolean shouldSkipHandAnimationOnSwap(ItemStack from, ItemStack to); - @ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6) + @ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6) private float modifySwing(float swingProgress) { HandView module = Modules.get().get(HandView.class); Hand hand = MoreObjects.firstNonNull(mc.player.preferredHand, Hand.MAIN_HAND); @@ -82,13 +82,13 @@ private float modifyEquipProgressOffhand(float value) { return (shouldSkipHandAnimationOnSwap(offHand, mc.player.getOffHandStack()) ? 1 : 0) - equipProgressOffHand; } - @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;I)V", shift = At.Shift.BEFORE)) - private void onRenderItem(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, CallbackInfo ci) { + @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;I)V", shift = At.Shift.BEFORE)) + private void onRenderItem(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, CallbackInfo ci) { MeteorClient.EVENT_BUS.post(HeldItemRendererEvent.get(hand, matrices)); } - @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;IFFLnet/minecraft/util/Arm;)V")) - private void onRenderArm(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, int light, CallbackInfo ci) { + @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IFFLnet/minecraft/util/Arm;)V")) + private void onRenderArm(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, CallbackInfo ci) { MeteorClient.EVENT_BUS.post(ArmRenderEvent.get(hand, matrices)); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java index bfa2ce1a8b..fc0cc93530 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java @@ -8,8 +8,8 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderItemEntityEvent; import net.minecraft.client.item.ItemModelManager; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.ItemEntityRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.ItemEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Final; @@ -27,10 +27,10 @@ public abstract class ItemEntityRendererMixin { @Final private ItemModelManager itemModelManager; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { // todo fix to work with entity render batching - RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager, entityRenderCommandQueue)); + RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager, orderedRenderCommandQueue)); if (event.isCancelled()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java index 5d8dc9cadc..bfa8a9da5f 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java @@ -16,9 +16,9 @@ import meteordevelopment.meteorclient.utils.player.PlayerUtils; import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.command.ModelCommandRenderer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.LivingEntityRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.ModelCommandRenderer; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.state.LivingEntityRenderState; import net.minecraft.client.texture.Sprite; @@ -64,12 +64,12 @@ private Team hasLabelClientPlayerEntityGetScoreboardTeamProxy(Team team) { // Chams - player color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73490(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/entity/command/ModelCommandRenderer$class_11792;)V")) - private boolean render$render(EntityRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.class_11792 class11792) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + private boolean render$render(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (!chams.isActive() || !chams.players.get() || !(((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player)) return true; if (chams.ignoreSelf.get() && player == mc.player) return true; - instance.method_73490(model, state, matrixStack, renderLayer, light, overlay, PlayerUtils.getPlayerColor(player, chams.playersColor.get()).getPacked(), sprite, outlineColor, null); + instance.submitModel(model, state, matrixStack, renderLayer, light, overlay, PlayerUtils.getPlayerColor(player, chams.playersColor.get()).getPacked(), sprite, outlineColor, null); return false; } @@ -90,8 +90,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB // Chams - Through walls - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void render$Head(S state, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void render$Head(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; @@ -103,8 +103,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB } } - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;)V", at = @At("TAIL")) - private void render$Tail(S state, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("TAIL")) + private void render$Tail(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java index 8f9ca86e0d..551b29c6dd 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java @@ -10,7 +10,7 @@ import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.client.render.MapRenderState; import net.minecraft.client.render.MapRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.map.MapDecoration; import org.spongepowered.asm.mixin.Mixin; @@ -28,7 +28,7 @@ private List getIconsProxy(List original) { } @Inject(method = "draw", at = @At("HEAD"), cancellable = true) - private void onDraw(MapRenderState state, MatrixStack matrices, EntityRenderCommandQueue entityRenderCommandQueue, boolean bl, int light, CallbackInfo ci) { + private void onDraw(MapRenderState state, MatrixStack matrices, OrderedRenderCommandQueue queue, boolean bl, int light, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMapContents()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java index ed2c2919c8..ef985ca8d3 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MinecraftClientAccessor.java @@ -70,6 +70,6 @@ public interface MinecraftClientAccessor { void meteor$setGameProfileFuture(CompletableFuture future); @Mutable - @Accessor("field_62106") + @Accessor("apiServices") void meteor$setApiServices(ApiServices apiServices); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java index 5f7ea1c085..172e091aef 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java @@ -14,8 +14,8 @@ import net.minecraft.client.model.ModelPart; import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.PlayerEntityRenderer; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; @@ -57,7 +57,7 @@ public abstract class PlayerEntityRendererMixin { // Chams - Hand Texture @ModifyExpressionValue(method = "renderArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/RenderLayer;getEntityTranslucent(Lnet/minecraft/util/Identifier;)Lnet/minecraft/client/render/RenderLayer;")) - private RenderLayer renderArm$texture(RenderLayer original, MatrixStack matrixStack, EntityRenderCommandQueue entityRenderCommandQueue, int light, Identifier skinTexture, ModelPart modelPart, boolean sleeveVisible) { + private RenderLayer renderArm$texture(RenderLayer original, MatrixStack matrixStack, OrderedRenderCommandQueue entityRenderCommandQueue, int light, Identifier skinTexture, ModelPart modelPart, boolean sleeveVisible) { if (chams.isActive() && chams.hand.get()) { Identifier texture = chams.handTexture.get() ? skinTexture : Chams.BLANK; return RenderLayer.getEntityTranslucent(texture); @@ -68,10 +68,10 @@ public abstract class PlayerEntityRendererMixin { // Chams - Hand Color - @WrapWithCondition(method = "renderArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/command/EntityRenderCommandQueue;method_73491(Lnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IILnet/minecraft/client/texture/Sprite;)V")) - private boolean renderArm$color(EntityRenderCommandQueue instance, ModelPart modelPart, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, Sprite sprite) { + @WrapWithCondition(method = "renderArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModelPart(Lnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IILnet/minecraft/client/texture/Sprite;)V")) + private boolean renderArm$color(OrderedRenderCommandQueue instance, ModelPart modelPart, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, Sprite sprite) { if (chams.isActive() && chams.hand.get()) { - instance.method_73492(modelPart, matrixStack, renderLayer, light, uv, null, chams.handColor.get().getPacked()); + instance.submitModelPart(modelPart, matrixStack, renderLayer, light, uv, null, chams.handColor.get().getPacked(), null); return false; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java index 298b7e610e..d02c672c3d 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java @@ -25,7 +25,7 @@ public abstract class PlayerListEntryMixin { @Inject(method = "getSkinTextures", at = @At("HEAD"), cancellable = true) private void onGetTexture(CallbackInfoReturnable info) { - if (getProfile().getName().equals(MinecraftClient.getInstance().getSession().getUsername())) { + if (getProfile().name().equals(MinecraftClient.getInstance().getSession().getUsername())) { if (Modules.get().get(NameProtect.class).skinProtect()) { info.setReturnValue(DefaultSkinHelper.getSkinTextures(getProfile())); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java index 9f3c8c4cb5..fe91d490c5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java @@ -19,6 +19,7 @@ import net.minecraft.client.session.report.AbuseReportContext; import net.minecraft.client.session.report.ReporterEnvironment; import net.minecraft.client.texture.PlayerSkinProvider; +import net.minecraft.client.texture.PlayerSkinTextureDownloader; import net.minecraft.nbt.NbtCompound; import net.minecraft.network.encryption.SignatureVerifier; import net.minecraft.util.ApiServices; @@ -83,7 +84,7 @@ public static void applyLoginEnvironment(YggdrasilAuthenticationService authServ PlayerSkinProvider.FileCache skinCache = ((PlayerSkinProviderAccessor) mc.getSkinProvider()).meteor$getSkinCache(); Path skinCachePath = ((FileCacheAccessor) skinCache).meteor$getDirectory(); mca.meteor$setApiServices(ApiServices.create(authService, mc.runDirectory)); - mca.meteor$setSkinProvider(new PlayerSkinProvider(skinCachePath, mc.method_73361(), mc)); + mca.meteor$setSkinProvider(new PlayerSkinProvider(skinCachePath, mc.method_73361(), new PlayerSkinTextureDownloader(mc.getNetworkProxy(), mc.getTextureManager(), mc), mc)); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java index 0ae88fb62f..48fec20cd4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java @@ -40,8 +40,8 @@ public boolean fetchInfo() { try { auth.logIn(); - cache.username = auth.getCurrentProfile().getName(); - cache.uuid = auth.getCurrentProfile().getId().toString(); + cache.username = auth.getCurrentProfile().name(); + cache.uuid = auth.getCurrentProfile().id().toString(); cache.loadHead(); return true; @@ -60,7 +60,7 @@ public boolean login() { applyLoginEnvironment(SERVICE); try { - setSession(new Session(auth.getCurrentProfile().getName(), auth.getCurrentProfile().getId(), auth.getAccessToken(), Optional.empty(), Optional.empty())); + setSession(new Session(auth.getCurrentProfile().name(), auth.getCurrentProfile().id (), auth.getAccessToken(), Optional.empty(), Optional.empty())); return true; } catch (Exception e) { MeteorClient.LOG.error("Failed to login with TheAltening."); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/friends/Friends.java b/src/main/java/meteordevelopment/meteorclient/systems/friends/Friends.java index c6168edfdc..271d6ae92e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/friends/Friends.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/friends/Friends.java @@ -69,7 +69,7 @@ public Friend get(PlayerEntity player) { } public Friend get(PlayerListEntry player) { - return get(player.getProfile().getName()); + return get(player.getProfile().name()); } public boolean isFriend(PlayerEntity player) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java index 89b212984f..e08f77d15e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java @@ -465,7 +465,7 @@ private void drawTexture(DrawContext context, IChatHudLine line, int y, int colo GameProfile sender = getSender(line, text); if (sender == null) return; - PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(sender.getId()); + PlayerListEntry entry = mc.getNetworkHandler().getPlayerListEntry(sender.id()); if (entry == null) return; PlayerSkinDrawer.draw(context, entry.getSkinTextures(), 0, y, 8); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java index 037678a497..7c467f3dce 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java @@ -317,7 +317,7 @@ private void writeBook(PrimitiveIterator.OfInt chars) { if (count.get() && bookCount != 0) title += " #" + bookCount; // Write data to book - mc.player.getMainHandStack().set(DataComponentTypes.WRITTEN_BOOK_CONTENT, new WrittenBookContentComponent(RawFilteredPair.of(title), mc.player.getGameProfile().getName(), 0, filteredPages, true)); + mc.player.getMainHandStack().set(DataComponentTypes.WRITTEN_BOOK_CONTENT, new WrittenBookContentComponent(RawFilteredPair.of(title), mc.player.getGameProfile().name(), 0, filteredPages, true)); // Send book update to server mc.player.networkHandler.sendPacket(new BookUpdateC2SPacket(mc.player.getInventory().getSelectedSlot(), pages, sign.get() ? Optional.of(title) : Optional.empty())); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java index 70f4156986..65e0bde320 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java @@ -369,12 +369,12 @@ private void createJoinNotifications(PlayerListS2CPacket packet) { Formatting.GRAY + "[" + Formatting.GREEN + "+" + Formatting.GRAY + "] " - + entry.profile().getName() + + entry.profile().name() )); } else { messageQueue.addLast(Text.literal( Formatting.WHITE - + entry.profile().getName() + + entry.profile().name() + Formatting.GRAY + " joined." )); } @@ -393,12 +393,12 @@ private void createLeaveNotification(PlayerRemoveS2CPacket packet) { Formatting.GRAY + "[" + Formatting.RED + "-" + Formatting.GRAY + "] " - + toRemove.getProfile().getName() + + toRemove.getProfile().name() )); } else { messageQueue.addLast(Text.literal( Formatting.WHITE - + toRemove.getProfile().getName() + + toRemove.getProfile().name() + Formatting.GRAY + " left." )); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java index 28f1817c2e..e161c1028d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java @@ -66,7 +66,7 @@ public Blink() { @Override public void onActivate() { if (renderOriginal.get()) { - model = new FakePlayerEntity(mc.player, mc.player.getGameProfile().getName(), 20, true); + model = new FakePlayerEntity(mc.player, mc.player.getGameProfile().name(), 20, true); model.doNotPush = true; model.hideWhenInsideCamera = true; model.noHit = true; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java index e0aa93a3d8..ac4ed36104 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java @@ -88,9 +88,9 @@ public Text getPlayerName(PlayerListEntry playerListEntry) { Color color = null; name = playerListEntry.getDisplayName(); - if (name == null) name = Text.literal(playerListEntry.getProfile().getName()); + if (name == null) name = Text.literal(playerListEntry.getProfile().name()); - if (playerListEntry.getProfile().getId().toString().equals(mc.player.getGameProfile().getId().toString()) && self.get()) { + if (playerListEntry.getProfile().id().toString().equals(mc.player.getGameProfile().id().toString()) && self.get()) { color = selfColor.get(); } else if (friends.get() && Friends.get().isFriend(playerListEntry)) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java index 657242aa13..d6efcdc7d5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java @@ -152,7 +152,7 @@ private void onTick(TickEvent.Post event) { if (mc.getNetworkHandler().getPlayerList().stream().anyMatch(playerListEntry -> playerListEntry.getProfile().equals(entry.getProfile()))) continue; for (PlayerEntity player : lastPlayers) { - if (player.getUuid().equals(entry.getProfile().getId())) { + if (player.getUuid().equals(entry.getProfile().id())) { add(new Entry(player)); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java index 30c98d8757..6a19c73502 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java @@ -284,7 +284,7 @@ public void onRender2D(Render2DEvent event) { Color color = getEntityColor(entity); if (blinkOffscreen.get()) - color.a *= getAlpha(); + color.a *= (int) getAlpha(); Vec2f screenCenter = new Vec2f(mc.getWindow().getFramebufferWidth() / 2.f, mc.getWindow().getFramebufferHeight() / 2.f); @@ -365,7 +365,7 @@ private float getAlpha() { double speed = blinkOffscreenSpeed.get() / 4.0; double duration = Math.abs(Duration.between(Instant.now(), initTimer).toMillis()) * speed; - return (float)Math.abs((duration % 1000) - 500) / 500.f; + return (float) Math.abs((duration % 1000) - 500) / 500.f; } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java index 36bbc9447d..55fd734366 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java @@ -16,9 +16,9 @@ import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; +import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl; import net.minecraft.client.render.entity.EntityRenderer; -import net.minecraft.client.render.entity.command.BatchingEntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.EntityRenderCommandQueue; import net.minecraft.client.render.entity.state.EntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; @@ -31,7 +31,7 @@ public class WireframeEntityRenderer { private static final MatrixStack matrices = new MatrixStack(); private static Renderer3D renderer; - private static final EntityRenderCommandQueue entityRenderCommandQueue = new BatchingEntityRenderCommandQueue(); + private static final OrderedRenderCommandQueue entityRenderCommandQueue = new OrderedRenderCommandQueueImpl(); private static Color sideColor; private static Color lineColor; diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java index 1654bde1ed..5c2147b79c 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java @@ -13,8 +13,8 @@ import net.minecraft.client.render.DiffuseLighting; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; -import net.minecraft.client.render.entity.command.BatchingEntityRenderCommandQueue; -import net.minecraft.client.render.entity.command.EntityRenderDispatcher; +import net.minecraft.client.render.command.OrderedRenderCommandQueue; +import net.minecraft.client.render.command.RenderDispatcher; import net.minecraft.client.render.entity.model.EntityModelLayers; import net.minecraft.client.render.model.ModelBaker; import net.minecraft.client.util.math.MatrixStack; @@ -79,20 +79,21 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he float s = Math.min(width, height); matrices.scale(s * 0.75f, s * 0.75f, 1); - EntityRenderDispatcher entityRenderDispatcher = mc.gameRenderer.getEntityRenderDispatcher(); - BatchingEntityRenderCommandQueue batchingEntityRenderCommandQueue = entityRenderDispatcher.getQueue(); + RenderDispatcher entityRenderDispatcher = mc.gameRenderer.getEntityRenderDispatcher(); + OrderedRenderCommandQueue renderCommandQueue = entityRenderDispatcher.getQueue(); BannerBlockEntityRenderer.renderCanvas( ((BlockEntityRenderManagerAccessor) mc.getBlockEntityRenderDispatcher()).getSpriteHolder(), matrices, - batchingEntityRenderCommandQueue, + renderCommandQueue, 15728880, OverlayTexture.DEFAULT_UV, bannerField, ModelBaker.BANNER_BASE, true, color, - patterns + patterns, + null ); matrices.pop(); From c8f2f9afe6eb5b5f7386e1e0dcdf629667d3d8f9 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 2 Sep 2025 17:29:01 +0100 Subject: [PATCH 06/20] Update to 25w36a We need to do a lot of refactoring to deal with the vanilla changes to screens and such. A task for when the new stuff is mapped, maybe. --- gradle.properties | 8 ++-- .../meteorclient/MeteorClient.java | 4 +- .../commands/commands/SpectateCommand.java | 3 +- .../meteorclient/events/meteor/KeyEvent.java | 6 ++- .../events/meteor/MouseButtonEvent.java | 6 ++- .../events/render/RenderBlockEntityEvent.java | 8 ++-- .../meteorclient/gui/WidgetScreen.java | 42 ++++++++++++------- .../gui/themes/meteor/MeteorGuiTheme.java | 4 +- .../gui/widgets/input/WTextBox.java | 18 ++++---- .../mixin/BannerBlockEntityRendererMixin.java | 7 ++-- .../mixin/BeaconBlockEntityRendererMixin.java | 11 +++-- .../mixin/BlockEntityRenderManagerMixin.java | 6 +-- .../mixin/ClientPlayNetworkHandlerMixin.java | 4 +- .../meteorclient/mixin/ClientWorldMixin.java | 13 ++++++ .../mixin/FireworksSparkParticleSubMixin.java | 6 +-- .../mixin/HandledScreenMixin.java | 13 +++--- .../mixin/KeyBindingAccessor.java | 3 -- .../meteorclient/mixin/KeyboardMixin.java | 21 ++++++---- .../MobSpawnerBlockEntityRendererMixin.java | 5 ++- .../meteorclient/mixin/MouseMixin.java | 22 ++++++++-- .../mixin/ParticleManagerMixin.java | 16 ------- .../mixin/PlayerEntityRendererMixin.java | 21 +++++++--- .../meteorclient/mixin/ScreenMixin.java | 5 ++- .../meteorclient/mixin/TitleScreenMixin.java | 7 ++-- .../systems/accounts/Account.java | 4 +- .../systems/hud/screens/HudEditorScreen.java | 34 +++++++++------ .../systems/modules/combat/Burrow.java | 2 +- .../systems/modules/movement/AirJump.java | 4 +- .../systems/modules/movement/AutoWalk.java | 22 +++++----- .../systems/modules/movement/GUIMove.java | 6 +-- .../systems/modules/render/Freecam.java | 24 +++++------ .../systems/modules/render/NoRender.java | 2 +- .../systems/modules/render/Xray.java | 2 +- .../entity/fakeplayer/FakePlayerEntity.java | 8 +--- .../utils/misc/input/KeyBinds.java | 23 ++++------ .../meteorclient/utils/render/PeekScreen.java | 16 +++---- .../utils/render/SimpleBlockRenderer.java | 12 ++++-- 37 files changed, 232 insertions(+), 186 deletions(-) diff --git a/gradle.properties b/gradle.properties index 778e188c78..f801bd7f6a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w35a -yarn_mappings=25w35a+build.1 -loader_version=0.17.0 -fapi_version=0.132.1+1.21.9 +minecraft_version=25w36a +yarn_mappings=25w36a+build.3 +loader_version=0.17.2 +fapi_version=0.133.0+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java index 46abc1d315..2769f26c09 100644 --- a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java +++ b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java @@ -156,14 +156,14 @@ private void onTick(TickEvent.Post event) { @EventHandler private void onKey(KeyEvent event) { - if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesKey(event.key, 0)) { + if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesKey(event.arg)) { toggleGui(); } } @EventHandler private void onMouseButton(MouseButtonEvent event) { - if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesMouse(event.button)) { + if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesMouse(event.arg)) { toggleGui(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java index a3e21115a0..401e227ec8 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java @@ -10,6 +10,7 @@ import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.commands.arguments.PlayerArgumentType; import meteordevelopment.meteorclient.events.meteor.KeyEvent; +import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.orbit.EventHandler; import net.minecraft.command.CommandSource; import net.minecraft.text.Text; @@ -40,7 +41,7 @@ public void build(LiteralArgumentBuilder builder) { private static class StaticListener { @EventHandler private void onKey(KeyEvent event) { - if (mc.options.sneakKey.matchesKey(event.key, 0) || mc.options.sneakKey.matchesMouse(event.key)) { + if (Input.isPressed(mc.options.sneakKey)) { mc.setCameraEntity(mc.player); event.cancel(); MeteorClient.EVENT_BUS.unsubscribe(this); diff --git a/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java b/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java index 97df70f8a5..a59afba490 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java @@ -7,15 +7,19 @@ import meteordevelopment.meteorclient.events.Cancellable; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; +import net.minecraft.class_11908; public class KeyEvent extends Cancellable { private static final KeyEvent INSTANCE = new KeyEvent(); public int key, modifiers; public KeyAction action; + public class_11908 arg; - public static KeyEvent get(int key, int modifiers, KeyAction action) { + // todo clean this up + public static KeyEvent get(class_11908 arg, int key, int modifiers, KeyAction action) { INSTANCE.setCancelled(false); + INSTANCE.arg = arg; INSTANCE.key = key; INSTANCE.modifiers = modifiers; INSTANCE.action = action; diff --git a/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java b/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java index bb0e2b3b11..8644cab86a 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java @@ -7,15 +7,19 @@ import meteordevelopment.meteorclient.events.Cancellable; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; +import net.minecraft.class_11909; public class MouseButtonEvent extends Cancellable { private static final MouseButtonEvent INSTANCE = new MouseButtonEvent(); public int button; public KeyAction action; + public class_11909 arg; - public static MouseButtonEvent get(int button, KeyAction action) { + // todo cleanup + public static MouseButtonEvent get(class_11909 arg, int button, KeyAction action) { INSTANCE.setCancelled(false); + INSTANCE.arg = arg; INSTANCE.button = button; INSTANCE.action = action; return INSTANCE; diff --git a/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java b/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java index f232273fc4..e1f2a13bf6 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java @@ -6,16 +6,16 @@ package meteordevelopment.meteorclient.events.render; import meteordevelopment.meteorclient.events.Cancellable; -import net.minecraft.block.entity.BlockEntity; +import net.minecraft.class_11954; public class RenderBlockEntityEvent extends Cancellable { private static final RenderBlockEntityEvent INSTANCE = new RenderBlockEntityEvent(); - public BlockEntity blockEntity; + public class_11954 blockEntityState; - public static RenderBlockEntityEvent get(BlockEntity blockEntity) { + public static RenderBlockEntityEvent get(class_11954 blockEntityState) { INSTANCE.setCancelled(false); - INSTANCE.blockEntity = blockEntity; + INSTANCE.blockEntityState = blockEntityState; return INSTANCE; } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java index 2df2b7747a..2c9677c50f 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java @@ -17,9 +17,13 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.CursorStyle; import meteordevelopment.meteorclient.utils.misc.input.Input; +import net.minecraft.class_11905; +import net.minecraft.class_11908; +import net.minecraft.class_11909; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.util.MacWindowUtil; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; @@ -115,25 +119,31 @@ public void onClosed(Runnable action) { @Override // todo rename bl when appropriate - public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl) { + public boolean mouseClicked(class_11909 arg, boolean bl) { if (locked) return false; + double mouseX = arg.x(); + double mouseY = arg.y(); double s = mc.getWindow().getScaleFactor(); + mouseX *= s; mouseY *= s; - return root.mouseClicked(mouseX, mouseY, button, false); + return root.mouseClicked(mouseX, mouseY, arg.method_74245(), bl); } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(class_11909 arg) { if (locked) return false; + double mouseX = arg.x(); + double mouseY = arg.y(); double s = mc.getWindow().getScaleFactor(); + mouseX *= s; mouseY *= s; - return root.mouseReleased(mouseX, mouseY, button); + return root.mouseReleased(mouseX, mouseY, arg.method_74245()); } @Override @@ -160,31 +170,31 @@ public boolean mouseScrolled(double mouseX, double mouseY, double horizontalAmou } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { + public boolean keyReleased(class_11908 arg) { if (locked) return false; - if ((modifiers == GLFW_MOD_CONTROL || modifiers == GLFW_MOD_SUPER) && keyCode == GLFW_KEY_9) { + if ((arg.modifiers() == GLFW_MOD_CONTROL || arg.modifiers() == GLFW_MOD_SUPER) && arg.key() == GLFW_KEY_9) { debug = !debug; return true; } - if ((keyCode == GLFW_KEY_ENTER || keyCode == GLFW_KEY_KP_ENTER) && enterAction != null) { + if ((arg.key() == GLFW_KEY_ENTER || arg.key() == GLFW_KEY_KP_ENTER) && enterAction != null) { enterAction.run(); return true; } - return super.keyReleased(keyCode, scanCode, modifiers); + return super.keyReleased(arg); } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(class_11908 arg) { if (locked) return false; - boolean shouldReturn = root.keyPressed(keyCode, modifiers) || super.keyPressed(keyCode, scanCode, modifiers); + boolean shouldReturn = root.keyPressed(arg.key(), arg.modifiers()) || super.keyPressed(arg); if (shouldReturn) return true; // Select next text box if TAB was pressed - if (keyCode == GLFW_KEY_TAB) { + if (arg.key() == GLFW_KEY_TAB) { AtomicReference firstTextBox = new AtomicReference<>(null); AtomicBoolean done = new AtomicBoolean(false); AtomicBoolean foundFocused = new AtomicBoolean(false); @@ -215,10 +225,10 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return true; } - boolean control = MinecraftClient.IS_SYSTEM_MAC ? modifiers == GLFW_MOD_SUPER : modifiers == GLFW_MOD_CONTROL; + boolean control = MacWindowUtil.IS_MAC ? arg.modifiers() == GLFW_MOD_SUPER : arg.modifiers() == GLFW_MOD_CONTROL; - return (control && keyCode == GLFW_KEY_C && toClipboard()) - || (control && keyCode == GLFW_KEY_V && fromClipboard()); + return (control && arg.key() == GLFW_KEY_C && toClipboard()) + || (control && arg.key() == GLFW_KEY_V && fromClipboard()); } public void keyRepeated(int key, int modifiers) { @@ -228,10 +238,10 @@ public void keyRepeated(int key, int modifiers) { } @Override - public boolean charTyped(char chr, int keyCode) { + public boolean charTyped(class_11905 arg) { if (locked) return false; - return root.charTyped(chr); + return root.charTyped(((char) arg.codepoint())); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java index c59f195631..00f59a156b 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java @@ -30,9 +30,9 @@ import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.utils.render.color.Color; import meteordevelopment.meteorclient.utils.render.color.SettingColor; +import net.minecraft.client.util.MacWindowUtil; import static meteordevelopment.meteorclient.MeteorClient.mc; -import static net.minecraft.client.MinecraftClient.IS_SYSTEM_MAC; public class MeteorGuiTheme extends GuiTheme { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -360,7 +360,7 @@ public TextRenderer textRenderer() { public double scale(double value) { double scaled = value * scale.get(); - if (IS_SYSTEM_MAC) { + if (MacWindowUtil.IS_MAC) { scaled /= (double) mc.getWindow().getWidth() / mc.getWindow().getFramebufferWidth(); } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WTextBox.java b/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WTextBox.java index 2aa35dc543..05eba15a01 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WTextBox.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/widgets/input/WTextBox.java @@ -14,7 +14,7 @@ import meteordevelopment.meteorclient.gui.widgets.WWidget; import meteordevelopment.meteorclient.gui.widgets.containers.WContainer; import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.client.MinecraftClient; +import net.minecraft.client.util.MacWindowUtil; import net.minecraft.util.math.MathHelper; import org.apache.commons.lang3.SystemUtils; @@ -200,7 +200,7 @@ else if (selectionEnd > preSelectionCursor && preSelectionCursor == selectionSta public boolean onKeyPressed(int key, int mods) { if (!focused) return false; - boolean control = MinecraftClient.IS_SYSTEM_MAC ? mods == GLFW_MOD_SUPER : mods == GLFW_MOD_CONTROL; + boolean control = MacWindowUtil.IS_MAC ? mods == GLFW_MOD_SUPER : mods == GLFW_MOD_CONTROL; if (control && key == GLFW_KEY_C) { if (cursor != selectionStart || cursor != selectionEnd) { @@ -221,7 +221,7 @@ else if (control && key == GLFW_KEY_A) { selectionStart = 0; selectionEnd = cursor; } - else if (mods == ((MinecraftClient.IS_SYSTEM_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL) | GLFW_MOD_SHIFT) && key == GLFW_KEY_A) { + else if (mods == ((MacWindowUtil.IS_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL) | GLFW_MOD_SHIFT) && key == GLFW_KEY_A) { resetSelection(); } else if (key == GLFW_KEY_ENTER || key == GLFW_KEY_KP_ENTER) { @@ -264,9 +264,9 @@ else if (key == GLFW_KEY_TAB && completionsW != null) { public boolean onKeyRepeated(int key, int mods) { if (!focused) return false; - boolean control = MinecraftClient.IS_SYSTEM_MAC ? mods == GLFW_MOD_SUPER : mods == GLFW_MOD_CONTROL; + boolean control = MacWindowUtil.IS_MAC ? mods == GLFW_MOD_SUPER : mods == GLFW_MOD_CONTROL; boolean shift = mods == GLFW_MOD_SHIFT; - boolean controlShift = mods == ((SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MinecraftClient.IS_SYSTEM_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL) | GLFW_MOD_SHIFT); + boolean controlShift = mods == ((SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MacWindowUtil.IS_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL) | GLFW_MOD_SHIFT); boolean altShift = mods == ((SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_CONTROL : GLFW_MOD_ALT) | GLFW_MOD_SHIFT); if (control && key == GLFW_KEY_V) { @@ -298,7 +298,7 @@ else if (key == GLFW_KEY_BACKSPACE) { if (cursor > 0 && cursor == selectionStart && cursor == selectionEnd) { String preText = text; - int count = (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MinecraftClient.IS_SYSTEM_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL)) + int count = (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MacWindowUtil.IS_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL)) ? cursor : (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_CONTROL : GLFW_MOD_ALT)) ? countToNextSpace(true) @@ -321,7 +321,7 @@ else if (key == GLFW_KEY_DELETE) { if (cursor < text.length()) { String preText = text; - int count = mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MinecraftClient.IS_SYSTEM_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL) + int count = mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MacWindowUtil.IS_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL) ? text.length() - cursor : (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_CONTROL : GLFW_MOD_ALT)) ? countToNextSpace(false) @@ -343,7 +343,7 @@ else if (key == GLFW_KEY_LEFT) { cursor -= countToNextSpace(true); resetSelection(); } - else if (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MinecraftClient.IS_SYSTEM_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL)) { + else if (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MacWindowUtil.IS_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL)) { cursor = 0; resetSelection(); } @@ -402,7 +402,7 @@ else if (key == GLFW_KEY_RIGHT) { cursor += countToNextSpace(false); resetSelection(); } - else if (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MinecraftClient.IS_SYSTEM_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL)) { + else if (mods == (SystemUtils.IS_OS_WINDOWS ? GLFW_MOD_ALT : MacWindowUtil.IS_MAC ? GLFW_MOD_SUPER : GLFW_MOD_CONTROL)) { cursor = text.length(); resetSelection(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 90af179a78..7f533fc6af 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.block.entity.BannerBlockEntity; +import net.minecraft.class_11949; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; @@ -22,7 +22,6 @@ import net.minecraft.util.DyeColor; import net.minecraft.util.Unit; import net.minecraft.util.math.RotationAxis; -import net.minecraft.util.math.Vec3d; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -31,8 +30,8 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { - @Inject(method = "render(Lnet/minecraft/block/entity/BannerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void injectRender1(BannerBlockEntity bannerBlockEntity, float f, MatrixStack matrixStack, int i, int j, Vec3d vec3d, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/class_11949;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void injectRender1(class_11949 arg, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java index 869adc3c08..7fa226d358 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java @@ -9,22 +9,21 @@ import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.BeamEmitter; import net.minecraft.block.entity.BlockEntity; +import net.minecraft.class_11950; import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.command.ModelCommandRenderer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.Vec3d; -import org.jetbrains.annotations.Nullable; +import net.minecraft.util.Identifier; 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; @Mixin(BeaconBlockEntityRenderer.class) -public abstract class BeaconBlockEntityRendererMixin implements BlockEntityRenderer { - @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRender(T entity, float tickProgress, MatrixStack matrices, int light, int overlay, Vec3d cameraPos, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { +public abstract class BeaconBlockEntityRendererMixin implements BlockEntityRenderer { + @Inject(method = "renderBeam(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/util/Identifier;FFIIIFF)V", at = @At("HEAD"), cancellable = true) + private static void onRender(MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, Identifier textureId, float tickProgress, float heightScale, int i, int j, int k, float f, float g, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noBeaconBeams()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index 5cb4142f24..750923f6ff 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -7,12 +7,10 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; -import net.minecraft.block.entity.BlockEntity; +import net.minecraft.class_11954; import net.minecraft.client.render.block.entity.BlockEntityRenderManager; -import net.minecraft.client.render.command.ModelCommandRenderer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; -import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -21,7 +19,7 @@ @Mixin(BlockEntityRenderManager.class) public abstract class BlockEntityRenderManagerMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRenderEntity(E blockEntity, float tickProgress, MatrixStack matrices, @Nullable ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, OrderedRenderCommandQueue queue, CallbackInfo ci) { + private void onRenderEntity(S blockEntity, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(blockEntity)); if (event.isCancelled()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java index 1bd58a0c6c..e4e836e0d2 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java @@ -84,7 +84,7 @@ private void onGameJoinTail(GameJoinS2CPacket packet, CallbackInfo info) { } // the server sends a GameJoin packet after the reconfiguration phase - @Inject(method = "onEnterReconfiguration", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/util/thread/ThreadExecutor;)V", shift = At.Shift.AFTER)) + @Inject(method = "onEnterReconfiguration", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/class_11980;)V", shift = At.Shift.AFTER)) private void onEnterReconfiguration(EnterReconfigurationS2CPacket packet, CallbackInfo info) { MeteorClient.EVENT_BUS.post(GameLeftEvent.get()); } @@ -117,7 +117,7 @@ private void onEntitiesDestroy(EntitiesDestroyS2CPacket packet, CallbackInfo ci) } } - @Inject(method = "onExplosion", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/util/thread/ThreadExecutor;)V", shift = At.Shift.AFTER)) + @Inject(method = "onExplosion", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/class_11980;)V", shift = At.Shift.AFTER)) private void onExplosionVelocity(ExplosionS2CPacket packet, CallbackInfo ci) { Velocity velocity = Modules.get().get(Velocity.class); if (!velocity.explosions.get()) return; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java index e47dd8e1b0..004a9c18f5 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java @@ -11,10 +11,13 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.systems.modules.world.Ambience; +import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.client.render.DimensionEffects; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -86,4 +89,14 @@ private void doRandomBlockDisplayTicks(Args args) { args.set(5, Blocks.BARRIER); } } + + @Inject(method = "addBlockBreakParticles", at = @At("HEAD"), cancellable = true) + private void onAddBlockBreakParticles(BlockPos blockPos, BlockState state, CallbackInfo info) { + if (Modules.get().get(NoRender.class).noBlockBreakParticles()) info.cancel(); + } + + @Inject(method = "method_74254", at = @At("HEAD"), cancellable = true) + private void onAddBlockBreakingParticles(BlockPos blockPos, Direction direction, CallbackInfo info) { + if (Modules.get().get(NoRender.class).noBlockBreakParticles()) info.cancel(); + } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java index 388a02cbdf..5a0b01113a 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java @@ -7,9 +7,9 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; +import net.minecraft.class_11944; import net.minecraft.client.particle.FireworksSparkParticle; import net.minecraft.client.render.Camera; -import net.minecraft.client.render.VertexConsumer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -18,7 +18,7 @@ @Mixin(value = {FireworksSparkParticle.Explosion.class, FireworksSparkParticle.Flash.class}) public abstract class FireworksSparkParticleSubMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void buildExplosionGeometry(VertexConsumer vertexConsumer, Camera camera, float tickDelta, CallbackInfo info) { - if (Modules.get().get(NoRender.class).noFireworkExplosions()) info.cancel(); + private void buildExplosionGeometry(class_11944 arg, Camera camera, float f, CallbackInfo ci) { + if (Modules.get().get(NoRender.class).noFireworkExplosions()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java index 4c85e31603..a3dcfe0359 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java @@ -10,6 +10,7 @@ import meteordevelopment.meteorclient.systems.modules.render.BetterTooltips; import meteordevelopment.meteorclient.systems.modules.render.ItemHighlight; import meteordevelopment.meteorclient.utils.Utils; +import net.minecraft.class_11909; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.BookScreen; @@ -92,19 +93,19 @@ private void onInit(CallbackInfo info) { // Inventory Tweaks @Inject(method = "mouseDragged", at = @At("TAIL")) - private void onMouseDragged(double mouseX, double mouseY, int button, double deltaX, double deltaY, CallbackInfoReturnable info) { - if (button != GLFW_MOUSE_BUTTON_LEFT || doubleClicking || !Modules.get().get(InventoryTweaks.class).mouseDragItemMove()) return; + private void onMouseDragged(class_11909 arg, double d, double e, CallbackInfoReturnable cir) { + if (arg.method_74245() != GLFW_MOUSE_BUTTON_LEFT || doubleClicking || !Modules.get().get(InventoryTweaks.class).mouseDragItemMove()) return; - Slot slot = getSlotAt(mouseX, mouseY); - if (slot != null && slot.hasStack() && hasShiftDown()) onMouseClick(slot, slot.id, button, SlotActionType.QUICK_MOVE); + Slot slot = getSlotAt(arg.x(), arg.y()); + if (slot != null && slot.hasStack() && mc.method_74187()) onMouseClick(slot, slot.id, arg.method_74245(), SlotActionType.QUICK_MOVE); } // Middle click open @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void mouseClicked(double mouseX, double mouseY, int button, boolean bl, CallbackInfoReturnable cir) { + private void mouseClicked(class_11909 arg, boolean bl, CallbackInfoReturnable cir) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); - if (button == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && getScreenHandler().getCursorStack().isEmpty() && tooltips.middleClickOpen()) { + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && getScreenHandler().getCursorStack().isEmpty() && tooltips.middleClickOpen()) { ItemStack itemStack = focusedSlot.getStack(); if (Utils.hasItems(itemStack) || itemStack.getItem() == Items.ENDER_CHEST) { cir.setReturnValue(Utils.openContainer(focusedSlot.getStack(), ITEMS, false)); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingAccessor.java index 4107d1585b..86feac3b16 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingAccessor.java @@ -15,9 +15,6 @@ @Mixin(KeyBinding.class) public interface KeyBindingAccessor { - @Accessor("CATEGORY_ORDER_MAP") - static Map getCategoryOrderMap() { return null; } - @Accessor("KEYS_BY_ID") static Map getKeysById() { return null; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java index a174506f36..1a9fb83744 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java @@ -13,6 +13,8 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; +import net.minecraft.class_11905; +import net.minecraft.class_11908; import net.minecraft.client.Keyboard; import net.minecraft.client.MinecraftClient; import org.lwjgl.glfw.GLFW; @@ -28,31 +30,32 @@ public abstract class KeyboardMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "onKey", at = @At("HEAD"), cancellable = true) - public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info) { - if (key != GLFW.GLFW_KEY_UNKNOWN) { + public void onKey(long window, int action, class_11908 arg, CallbackInfo ci) { // todo verify this is correct when they update the mappings + int modifiers = arg.modifiers(); + if (arg.key() != GLFW.GLFW_KEY_UNKNOWN) { // on Linux/X11 the modifier is not active when the key is pressed and still active when the key is released // https://github.com/glfw/glfw/issues/1630 if (action == GLFW.GLFW_PRESS) { - modifiers |= Input.getModifier(key); + modifiers |= Input.getModifier(arg.key()); } else if (action == GLFW.GLFW_RELEASE) { - modifiers &= ~Input.getModifier(key); + modifiers &= ~Input.getModifier(arg.key()); } if (client.currentScreen instanceof WidgetScreen && action == GLFW.GLFW_REPEAT) { - ((WidgetScreen) client.currentScreen).keyRepeated(key, modifiers); + ((WidgetScreen) client.currentScreen).keyRepeated(arg.key(), modifiers); } if (GuiKeyEvents.canUseKeys) { - Input.setKeyState(key, action != GLFW.GLFW_RELEASE); - if (MeteorClient.EVENT_BUS.post(KeyEvent.get(key, modifiers, KeyAction.get(action))).isCancelled()) info.cancel(); + Input.setKeyState(arg.key(), action != GLFW.GLFW_RELEASE); + if (MeteorClient.EVENT_BUS.post(KeyEvent.get(arg, arg.key(), modifiers, KeyAction.get(action))).isCancelled()) ci.cancel(); } } } @Inject(method = "onChar", at = @At("HEAD"), cancellable = true) - private void onChar(long window, int i, int j, CallbackInfo info) { + private void onChar(long window, class_11905 arg, CallbackInfo ci) { if (Utils.canUpdate() && !client.isPaused() && (client.currentScreen == null || client.currentScreen instanceof WidgetScreen)) { - if (MeteorClient.EVENT_BUS.post(CharTypedEvent.get((char) i)).isCancelled()) info.cancel(); + if (MeteorClient.EVENT_BUS.post(CharTypedEvent.get((char) arg.codepoint())).isCancelled()) ci.cancel(); } } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java index 52e75eb792..d43c723c52 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java @@ -8,6 +8,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.MobSpawnerBlockEntity; +import net.minecraft.class_11973; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.MobSpawnerBlockEntityRenderer; import org.spongepowered.asm.mixin.Mixin; @@ -16,8 +17,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(MobSpawnerBlockEntityRenderer.class) -public abstract class MobSpawnerBlockEntityRendererMixin implements BlockEntityRenderer { - @Inject(method = "render(Lnet/minecraft/block/entity/MobSpawnerBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/util/math/Vec3d;)V", at = @At("HEAD"), cancellable = true) +public abstract class MobSpawnerBlockEntityRendererMixin implements BlockEntityRenderer { + @Inject(method = "render(Lnet/minecraft/class_11973;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) private void onRender(CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMobInSpawner()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java index 3e2b20d565..a1945244d5 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java @@ -10,8 +10,14 @@ import meteordevelopment.meteorclient.events.meteor.MouseScrollEvent; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; +import net.minecraft.class_11909; +import net.minecraft.class_11910; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; +import net.minecraft.client.util.Window; +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; @@ -20,11 +26,21 @@ @Mixin(Mouse.class) public abstract class MouseMixin { + @Shadow + public abstract double getScaledX(Window window); + + @Shadow + public abstract double getScaledY(Window window); + + @Shadow + @Final + private MinecraftClient client; + @Inject(method = "onMouseButton", at = @At("HEAD"), cancellable = true) - private void onMouseButton(long window, int button, int action, int mods, CallbackInfo info) { - Input.setButtonState(button, action != GLFW_RELEASE); + private void onMouseButton(long window, class_11910 arg, int action, CallbackInfo ci) { + Input.setButtonState(arg.button(), action != GLFW_RELEASE); - if (MeteorClient.EVENT_BUS.post(MouseButtonEvent.get(button, KeyAction.get(action))).isCancelled()) info.cancel(); + if (MeteorClient.EVENT_BUS.post(MouseButtonEvent.get(new class_11909(getScaledX(client.getWindow()), getScaledY(client.getWindow()), arg), arg.button(), KeyAction.get(action))).isCancelled()) ci.cancel(); } @Inject(method = "onMouseScroll", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ParticleManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ParticleManagerMixin.java index 8f89772093..2167e68517 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ParticleManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ParticleManagerMixin.java @@ -7,21 +7,15 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.world.ParticleEvent; -import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.block.BlockState; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleManager; import net.minecraft.particle.ParticleEffect; import net.minecraft.particle.ParticleTypes; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; import org.jetbrains.annotations.Nullable; 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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ParticleManager.class) @@ -39,14 +33,4 @@ private void onAddParticle(ParticleEffect parameters, double x, double y, double else info.cancel(); } } - - @Inject(method = "addBlockBreakParticles", at = @At("HEAD"), cancellable = true) - private void onAddBlockBreakParticles(BlockPos blockPos, BlockState state, CallbackInfo info) { - if (Modules.get().get(NoRender.class).noBlockBreakParticles()) info.cancel(); - } - - @Inject(method = "addBlockBreakingParticles", at = @At("HEAD"), cancellable = true) - private void onAddBlockBreakingParticles(BlockPos blockPos, Direction direction, CallbackInfo info) { - if (Modules.get().get(NoRender.class).noBlockBreakParticles()) info.cancel(); - } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java index 172e091aef..3245bdfd2e 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java @@ -11,11 +11,15 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Chams; import meteordevelopment.meteorclient.utils.player.Rotations; +import net.minecraft.class_11890; +import net.minecraft.class_11901; import net.minecraft.client.model.ModelPart; -import net.minecraft.client.network.AbstractClientPlayerEntity; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.PlayerEntityRenderer; +import net.minecraft.client.render.entity.model.PlayerEntityModel; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; @@ -29,12 +33,17 @@ import static meteordevelopment.meteorclient.MeteorClient.mc; @Mixin(PlayerEntityRenderer.class) -public abstract class PlayerEntityRendererMixin { +public abstract class PlayerEntityRendererMixin + extends LivingEntityRenderer { // Chams @Unique private Chams chams; + public PlayerEntityRendererMixin(EntityRendererFactory.Context ctx, PlayerEntityModel model, float shadowRadius) { + super(ctx, model, shadowRadius); + } + @Inject(method = "", at = @At("RETURN")) private void init$chams(CallbackInfo info) { chams = Modules.get().get(Chams.class); @@ -42,8 +51,8 @@ public abstract class PlayerEntityRendererMixin { // Chams - Player scale - @Inject(method = "updateRenderState(Lnet/minecraft/client/network/AbstractClientPlayerEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) - private void updateRenderState$scale(AbstractClientPlayerEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) { + @Inject(method = "updateRenderState(Lnet/minecraft/class_11890;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) + private void updateRenderState$scale(AvatarlikeEntity player, PlayerEntityRenderState state, float f, CallbackInfo ci) { if (!chams.isActive() || !chams.players.get()) return; if (chams.ignoreSelf.get() && player == mc.player) return; @@ -80,8 +89,8 @@ public abstract class PlayerEntityRendererMixin { // Rotations - @Inject(method = "updateRenderState(Lnet/minecraft/client/network/AbstractClientPlayerEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) - private void updateRenderState$rotations(AbstractClientPlayerEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) { + @Inject(method = "updateRenderState(Lnet/minecraft/class_11890;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) + private void updateRenderState$rotations(AvatarlikeEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) { if (Rotations.rotating && player == mc.player) { state.bodyYaw = Rotations.serverYaw; state.pitch = Rotations.serverPitch; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java index 55f66d72da..758262039f 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java @@ -15,6 +15,7 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.text.MeteorClickEvent; import meteordevelopment.meteorclient.utils.misc.text.RunnableClickEvent; +import net.minecraft.class_11908; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.Screen; @@ -59,11 +60,11 @@ private static void onHandleBasicClickEvent(ClickEvent clickEvent, MinecraftClie } @Inject(method = "keyPressed", at = @At("HEAD"), cancellable = true) - private void onKeyPressed(int keyCode, int scanCode, int modifiers, CallbackInfoReturnable cir) { + private void onKeyPressed(class_11908 arg, CallbackInfoReturnable cir) { if ((Object) (this) instanceof ChatScreen) return; GUIMove guiMove = Modules.get().get(GUIMove.class); List arrows = List.of(GLFW_KEY_RIGHT, GLFW_KEY_LEFT, GLFW_KEY_DOWN, GLFW_KEY_UP); - if ((guiMove.disableArrows() && arrows.contains(keyCode)) || (guiMove.disableSpace() && keyCode == GLFW_KEY_SPACE)) { + if ((guiMove.disableArrows() && arrows.contains(arg.key())) || (guiMove.disableSpace() && arg.key() == GLFW_KEY_SPACE)) { cir.setReturnValue(true); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java index 34bbcde34a..6987b22086 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java @@ -7,6 +7,7 @@ import meteordevelopment.meteorclient.systems.config.Config; import meteordevelopment.meteorclient.utils.player.TitleScreenCredits; +import net.minecraft.class_11909; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; @@ -30,9 +31,9 @@ private void onRender(DrawContext context, int mouseX, int mouseY, float delta, } @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void onMouseClicked(double mouseX, double mouseY, int button, boolean bl, CallbackInfoReturnable info) { - if (Config.get().titleScreenCredits.get() && button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { - if (TitleScreenCredits.onClicked(mouseX, mouseY)) info.setReturnValue(true); + private void onMouseClicked(class_11909 arg, boolean bl, CallbackInfoReturnable cir) { + if (Config.get().titleScreenCredits.get() && arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (TitleScreenCredits.onClicked(arg.x(), arg.y())) cir.setReturnValue(true); } } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java index fe91d490c5..30c4734ce9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/Account.java @@ -75,7 +75,7 @@ public static void setSession(Session session) { mca.meteor$setSocialInteractionsManager(new SocialInteractionsManager(mc, apiService)); mca.meteor$setProfileKeys(ProfileKeys.create(apiService, session, mc.runDirectory.toPath())); mca.meteor$setAbuseReportContext(AbuseReportContext.create(ReporterEnvironment.ofIntegratedServer(), apiService)); - mca.meteor$setGameProfileFuture(CompletableFuture.supplyAsync(() -> mc.method_73361().sessionService().fetchProfile(mc.getSession().getUuidOrNull(), true), Util.getIoWorkerExecutor())); + mca.meteor$setGameProfileFuture(CompletableFuture.supplyAsync(() -> mc.getApiServices().sessionService().fetchProfile(mc.getSession().getUuidOrNull(), true), Util.getIoWorkerExecutor())); } public static void applyLoginEnvironment(YggdrasilAuthenticationService authService) { @@ -84,7 +84,7 @@ public static void applyLoginEnvironment(YggdrasilAuthenticationService authServ PlayerSkinProvider.FileCache skinCache = ((PlayerSkinProviderAccessor) mc.getSkinProvider()).meteor$getSkinCache(); Path skinCachePath = ((FileCacheAccessor) skinCache).meteor$getDirectory(); mca.meteor$setApiServices(ApiServices.create(authService, mc.runDirectory)); - mca.meteor$setSkinProvider(new PlayerSkinProvider(skinCachePath, mc.method_73361(), new PlayerSkinTextureDownloader(mc.getNetworkProxy(), mc.getTextureManager(), mc), mc)); + mca.meteor$setSkinProvider(new PlayerSkinProvider(skinCachePath, mc.getApiServices(), new PlayerSkinTextureDownloader(mc.getNetworkProxy(), mc.getTextureManager(), mc), mc)); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java index 58a0be72c4..9b086b7f4c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java @@ -16,6 +16,8 @@ import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.other.Snapper; import meteordevelopment.meteorclient.utils.render.color.Color; +import net.minecraft.class_11908; +import net.minecraft.class_11909; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.util.math.MathHelper; @@ -65,13 +67,16 @@ public HudEditorScreen(GuiTheme theme) { public void initWidgets() {} @Override - public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl) { + public boolean mouseClicked(class_11909 arg, boolean bl) { double s = mc.getWindow().getScaleFactor(); + double mouseX = arg.x(); + double mouseY = arg.y(); + mouseX *= s; mouseY *= s; - if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { pressed = true; selectionSnapBox = null; @@ -112,13 +117,16 @@ public void mouseMoved(double mouseX, double mouseY) { } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(class_11909 arg) { double s = mc.getWindow().getScaleFactor(); + double mouseX = arg.x(); + double mouseY = arg.y(); + mouseX *= s; mouseY *= s; - if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) pressed = false; + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) pressed = false; if (addedHoveredToSelectionWhenClickedElement != null) { selection.remove(addedHoveredToSelectionWhenClickedElement); @@ -126,14 +134,14 @@ public boolean mouseReleased(double mouseX, double mouseY, int button) { } if (moved) { - if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT && !dragging) fillSelection((int) mouseX, (int)mouseY); + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT && !dragging) fillSelection((int) mouseX, (int)mouseY); } else { - if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { HudElement hovered = getHovered((int) mouseX, (int) mouseY); if (hovered != null) hovered.toggle(); } - else if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { + else if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { HudElement hovered = getHovered((int) mouseX, (int) mouseY); if (hovered != null) mc.setScreen(new HudElementScreen(theme, hovered)); @@ -141,7 +149,7 @@ else if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { } } - if (button == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { snapper.unsnap(); moved = dragging = false; } @@ -150,13 +158,13 @@ else if (button == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { + public boolean keyPressed(class_11908 arg) { if (!pressed) { - if (keyCode == GLFW.GLFW_KEY_ENTER || keyCode == GLFW.GLFW_KEY_KP_ENTER) { + if (arg.key() == GLFW.GLFW_KEY_ENTER || arg.key() == GLFW.GLFW_KEY_KP_ENTER) { HudElement hovered = getHovered(lastMouseX, lastMouseY); if (hovered != null) hovered.toggle(); } - else if (keyCode == GLFW.GLFW_KEY_DELETE) { + else if (arg.key() == GLFW.GLFW_KEY_DELETE) { HudElement hovered = getHovered(lastMouseX, lastMouseY); if (hovered != null) hovered.remove(); @@ -168,7 +176,7 @@ else if (keyCode == GLFW.GLFW_KEY_DELETE) { int pixels = (Input.isKeyPressed(GLFW.GLFW_KEY_LEFT_CONTROL) || Input.isKeyPressed(GLFW.GLFW_KEY_RIGHT_CONTROL)) ? 10 : 1; int dx = 0, dy = 0; - switch (keyCode) { + switch (arg.key()) { case GLFW.GLFW_KEY_UP -> dy = -pixels; case GLFW.GLFW_KEY_DOWN -> dy = pixels; case GLFW.GLFW_KEY_RIGHT -> dx = pixels; @@ -182,7 +190,7 @@ else if (keyCode == GLFW.GLFW_KEY_DELETE) { } } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.keyPressed(arg); } private void fillSelection(int mouseX, int mouseY) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java index 232ea1837c..87b4dc2ae7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java @@ -176,7 +176,7 @@ private void onTick(TickEvent.Pre event) { @EventHandler private void onKey(KeyEvent event) { if (instant.get() && !shouldBurrow) { - if (event.action == KeyAction.Press && mc.options.jumpKey.matchesKey(event.key, 0)) { + if (event.action == KeyAction.Press && mc.options.jumpKey.matchesKey(event.arg)) { shouldBurrow = true; } blockPos.set(mc.player.getBlockPos()); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java index 6cf2293681..24e535b8bd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java @@ -44,11 +44,11 @@ private void onKey(KeyEvent event) { if (event.action != KeyAction.Press) return; - if (mc.options.jumpKey.matchesKey(event.key, 0)) { + if (mc.options.jumpKey.matchesKey(event.arg)) { level = mc.player.getBlockPos().getY(); mc.player.jump(); } - else if (mc.options.sneakKey.matchesKey(event.key, 0)) { + else if (mc.options.sneakKey.matchesKey(event.arg)) { level--; } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java index 42320ed2fc..c14bb2334a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java @@ -23,6 +23,8 @@ import meteordevelopment.meteorclient.utils.misc.input.KeyAction; import meteordevelopment.orbit.EventHandler; import meteordevelopment.orbit.EventPriority; +import net.minecraft.class_11908; +import net.minecraft.class_11909; public class AutoWalk extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -128,12 +130,12 @@ private void onMovement() { @EventHandler private void onKey(KeyEvent event) { - if (isMovementKey(event.key) && event.action == KeyAction.Press) onMovement(); + if (isMovementKey(event.arg) && event.action == KeyAction.Press) onMovement(); } @EventHandler private void onMouseButton(MouseButtonEvent event) { - if (isMovementButton(event.button) && event.action == KeyAction.Press) onMovement(); + if (isMovementButton(event.arg) && event.action == KeyAction.Press) onMovement(); } @EventHandler @@ -154,16 +156,16 @@ private void unpress() { mc.options.rightKey.setPressed(false); } - private boolean isMovementKey(int key) { - return mc.options.forwardKey.matchesKey(key, 0) - || mc.options.backKey.matchesKey(key, 0) - || mc.options.leftKey.matchesKey(key, 0) - || mc.options.rightKey.matchesKey(key, 0) - || mc.options.sneakKey.matchesKey(key, 0) - || mc.options.jumpKey.matchesKey(key, 0); + private boolean isMovementKey(class_11908 key) { + return mc.options.forwardKey.matchesKey(key) + || mc.options.backKey.matchesKey(key) + || mc.options.leftKey.matchesKey(key) + || mc.options.rightKey.matchesKey(key) + || mc.options.sneakKey.matchesKey(key) + || mc.options.jumpKey.matchesKey(key); } - private boolean isMovementButton(int button) { + private boolean isMovementButton(class_11909 button) { return mc.options.forwardKey.matchesMouse(button) || mc.options.backKey.matchesMouse(button) || mc.options.leftKey.matchesMouse(button) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java index a8ec88e3f4..e8a6e5843f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java @@ -127,7 +127,7 @@ private void onInput(int key, KeyAction action, boolean mouse) { @EventHandler private void onKey(KeyEvent event) { - onInput(event.key, event.action, false); + //onInput(event.arg, event.action, false); } @EventHandler @@ -173,8 +173,8 @@ private void onRender3D(Render3DEvent event) { } private void pass(KeyBinding bind, int key, KeyAction action, boolean mouse) { - if (!mouse && !bind.matchesKey(key, 0)) return; - if (mouse && !bind.matchesMouse(key)) return; + //if (!mouse && !bind.matchesKey(key)) return; + //if (mouse && !bind.matchesMouse(key)) return; if (action == KeyAction.Press) bind.setPressed(true); if (action == KeyAction.Release) bind.setPressed(false); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java index 96a9623f9c..55f72007ff 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java @@ -286,27 +286,27 @@ public void onKey(KeyEvent event) { boolean cancel = true; - if (mc.options.forwardKey.matchesKey(event.key, 0)) { + if (mc.options.forwardKey.matchesKey(event.arg)) { forward = event.action != KeyAction.Release; mc.options.forwardKey.setPressed(false); } - else if (mc.options.backKey.matchesKey(event.key, 0)) { + else if (mc.options.backKey.matchesKey(event.arg)) { backward = event.action != KeyAction.Release; mc.options.backKey.setPressed(false); } - else if (mc.options.rightKey.matchesKey(event.key, 0)) { + else if (mc.options.rightKey.matchesKey(event.arg)) { right = event.action != KeyAction.Release; mc.options.rightKey.setPressed(false); } - else if (mc.options.leftKey.matchesKey(event.key, 0)) { + else if (mc.options.leftKey.matchesKey(event.arg)) { left = event.action != KeyAction.Release; mc.options.leftKey.setPressed(false); } - else if (mc.options.jumpKey.matchesKey(event.key, 0)) { + else if (mc.options.jumpKey.matchesKey(event.arg)) { up = event.action != KeyAction.Release; mc.options.jumpKey.setPressed(false); } - else if (mc.options.sneakKey.matchesKey(event.key, 0)) { + else if (mc.options.sneakKey.matchesKey(event.arg)) { down = event.action != KeyAction.Release; mc.options.sneakKey.setPressed(false); } @@ -323,27 +323,27 @@ private void onMouseButton(MouseButtonEvent event) { boolean cancel = true; - if (mc.options.forwardKey.matchesMouse(event.button)) { + if (mc.options.forwardKey.matchesMouse(event.arg)) { forward = event.action != KeyAction.Release; mc.options.forwardKey.setPressed(false); } - else if (mc.options.backKey.matchesMouse(event.button)) { + else if (mc.options.backKey.matchesMouse(event.arg)) { backward = event.action != KeyAction.Release; mc.options.backKey.setPressed(false); } - else if (mc.options.rightKey.matchesMouse(event.button)) { + else if (mc.options.rightKey.matchesMouse(event.arg)) { right = event.action != KeyAction.Release; mc.options.rightKey.setPressed(false); } - else if (mc.options.leftKey.matchesMouse(event.button)) { + else if (mc.options.leftKey.matchesMouse(event.arg)) { left = event.action != KeyAction.Release; mc.options.leftKey.setPressed(false); } - else if (mc.options.jumpKey.matchesMouse(event.button)) { + else if (mc.options.jumpKey.matchesMouse(event.arg)) { up = event.action != KeyAction.Release; mc.options.jumpKey.setPressed(false); } - else if (mc.options.sneakKey.matchesMouse(event.button)) { + else if (mc.options.sneakKey.matchesMouse(event.arg)) { down = event.action != KeyAction.Release; mc.options.sneakKey.setPressed(false); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java index a6503f91ce..e200004168 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java @@ -576,7 +576,7 @@ public boolean noTextureRotations() { @EventHandler private void onRenderBlockEntity(RenderBlockEntityEvent event) { - if (blockEntities.get().contains(event.blockEntity.getCachedState().getBlock())) event.cancel(); + if (blockEntities.get().contains(event.blockEntityState.field_62674.getBlock())) event.cancel(); } // Entity diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java index 4664987c29..8dca5850b2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java @@ -87,7 +87,7 @@ public WWidget getWidget(GuiTheme theme) { @EventHandler private void onRenderBlockEntity(RenderBlockEntityEvent event) { - if (isBlocked(event.blockEntity.getCachedState().getBlock(), event.blockEntity.getPos())) event.cancel(); + if (isBlocked(event.blockEntityState.field_62674.getBlock(), event.blockEntityState.field_62673)) event.cancel(); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java b/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java index eddc2f6a44..ba3bdfba8a 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java @@ -31,16 +31,12 @@ public FakePlayerEntity(PlayerEntity player, String name, float health, boolean bodyYaw = player.bodyYaw; lastBodyYaw = bodyYaw; - Byte playerModel = player.getDataTracker().get(PlayerEntity.PLAYER_MODEL_PARTS); - dataTracker.set(PlayerEntity.PLAYER_MODEL_PARTS, playerModel); + Byte playerModel = player.getDataTracker().get(PlayerEntity.field_62514); + dataTracker.set(PlayerEntity.field_62514, playerModel); getAttributes().setFrom(player.getAttributes()); setPose(player.getPose()); - capeX = getX(); - capeY = getY(); - capeZ = getZ(); - if (health <= 20) { setHealth(health); } else { diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java index 50de9a9314..2fcd170220 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java @@ -5,33 +5,26 @@ package meteordevelopment.meteorclient.utils.misc.input; -import meteordevelopment.meteorclient.mixin.KeyBindingAccessor; import net.minecraft.client.option.KeyBinding; import net.minecraft.client.util.InputUtil; import org.lwjgl.glfw.GLFW; -import java.util.Map; - public class KeyBinds { + /* + todo + mojang changed how keybindings work, they used to take a String for the category but now take one of an enum + hopefully fabric adds a helper method to sort this out because the alternative will be doing it ourselves + with ASM or Unsafe, which will be a pain + */ private static final String CATEGORY = "Meteor Client"; - public static KeyBinding OPEN_GUI = new KeyBinding("key.meteor-client.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, CATEGORY); - public static KeyBinding OPEN_COMMANDS = new KeyBinding("key.meteor-client.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, CATEGORY); + public static KeyBinding OPEN_GUI = new KeyBinding("key.meteor-client.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, KeyBinding.class_11900.INTERFACE); + public static KeyBinding OPEN_COMMANDS = new KeyBinding("key.meteor-client.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, KeyBinding.class_11900.INTERFACE); private KeyBinds() { } public static KeyBinding[] apply(KeyBinding[] binds) { - // Add category - Map categories = KeyBindingAccessor.getCategoryOrderMap(); - - int highest = 0; - for (int i : categories.values()) { - if (i > highest) highest = i; - } - - categories.put(CATEGORY, highest + 1); - // Add key binding KeyBinding[] newBinds = new KeyBinding[binds.length + 2]; diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java index dc12ebef16..1ffa1dcac1 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java @@ -9,6 +9,8 @@ import meteordevelopment.meteorclient.systems.modules.render.BetterTooltips; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.render.color.Color; +import net.minecraft.class_11908; +import net.minecraft.class_11909; import net.minecraft.client.gl.RenderPipelines; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.BookScreen; @@ -36,10 +38,10 @@ public PeekScreen(ItemStack storageBlock, ItemStack[] contents) { } @Override - public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl) { + public boolean mouseClicked(class_11909 arg, boolean bl) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); - if (button == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && mc.player.currentScreenHandler.getCursorStack().isEmpty() && tooltips.middleClickOpen()) { + if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && mc.player.currentScreenHandler.getCursorStack().isEmpty() && tooltips.middleClickOpen()) { ItemStack itemStack = focusedSlot.getStack(); if (Utils.hasItems(itemStack) || itemStack.getItem() == Items.ENDER_CHEST) { return Utils.openContainer(focusedSlot.getStack(), contents, false); @@ -54,13 +56,13 @@ public boolean mouseClicked(double mouseX, double mouseY, int button, boolean bl } @Override - public boolean mouseReleased(double mouseX, double mouseY, int button) { + public boolean mouseReleased(class_11909 arg) { return false; } @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_ESCAPE || mc.options.inventoryKey.matchesKey(keyCode, scanCode)) { + public boolean keyPressed(class_11908 arg) { + if (arg.key() == GLFW.GLFW_KEY_ESCAPE || mc.options.inventoryKey.matchesKey(arg)) { close(); return true; } @@ -68,8 +70,8 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @Override - public boolean keyReleased(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_ESCAPE) { + public boolean keyReleased(class_11908 arg) { + if (arg.key() == GLFW.GLFW_KEY_ESCAPE) { close(); return true; } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index 9a5349364d..59320681e3 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -9,7 +9,10 @@ import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.client.render.*; +import net.minecraft.class_11954; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BlockModelPart; @@ -37,11 +40,12 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt vertexConsumerProvider.setOffset(blockEntity.getPos().getX(), blockEntity.getPos().getY(), blockEntity.getPos().getZ()); SimpleBlockRenderer.render(blockEntity.getPos(), blockEntity.getCachedState(), vertexConsumerProvider); - BlockEntityRenderer renderer = mc.getBlockEntityRenderDispatcher().get(blockEntity); + BlockEntityRenderer renderer = mc.getBlockEntityRenderDispatcher().get(blockEntity); if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { - Vec3d camera = mc.gameRenderer.getCamera().getPos(); - renderer.render(blockEntity, tickDelta, MATRICES, LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV, camera, null, mc.gameRenderer.getEntityRenderDispatcher().getQueue()); + class_11954 c = new class_11954(); + class_11954.method_74399(blockEntity, c, null); + renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue()); } vertexConsumerProvider.setOffset(0, 0, 0); From dc923d80d275e3565d7cc0eccd33dbcb94e0ebe1 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 9 Sep 2025 17:44:20 +0100 Subject: [PATCH 07/20] Update to 25w37a --- gradle.properties | 6 ++--- .../commands/commands/InputCommand.java | 4 ++-- .../meteorclient/events/meteor/KeyEvent.java | 6 ++--- .../events/meteor/MouseButtonEvent.java | 6 ++--- .../events/render/RenderBlockEntityEvent.java | 6 ++--- .../meteorclient/gui/WidgetScreen.java | 20 ++++++++--------- .../mixin/BannerBlockEntityRendererMixin.java | 6 ++--- .../mixin/BeaconBlockEntityRendererMixin.java | 4 ++-- .../mixin/BlockEntityRenderManagerMixin.java | 4 ++-- .../mixin/ChunkSkyLightProviderMixin.java | 22 ------------------- .../mixin/ClientPlayNetworkHandlerMixin.java | 4 ++-- .../mixin/ClientPlayerEntityMixin.java | 9 +------- .../meteorclient/mixin/ClientWorldMixin.java | 2 +- .../mixin/FireworksSparkParticleSubMixin.java | 4 ++-- .../meteorclient/mixin/GameRendererMixin.java | 8 +++---- .../mixin/HandledScreenMixin.java | 12 +++++----- .../meteorclient/mixin/KeyboardMixin.java | 8 +++---- .../MobSpawnerBlockEntityRendererMixin.java | 6 ++--- .../meteorclient/mixin/MouseMixin.java | 8 +++---- .../mixin/PlayerEntityRendererMixin.java | 10 ++++----- .../meteorclient/mixin/ScreenMixin.java | 4 ++-- .../meteorclient/mixin/TitleScreenMixin.java | 6 ++--- .../mixin/WorldRendererMixin.java | 3 ++- .../systems/hud/screens/HudEditorScreen.java | 22 +++++++++---------- .../systems/modules/movement/AutoWalk.java | 8 +++---- .../systems/modules/render/NoRender.java | 13 +---------- .../systems/modules/render/Xray.java | 2 +- .../entity/fakeplayer/FakePlayerEntity.java | 3 --- .../utils/misc/input/KeyBinds.java | 15 +++++-------- .../meteorclient/utils/render/PeekScreen.java | 14 ++++++------ .../utils/render/SimpleBlockRenderer.java | 8 +++---- .../utils/tooltip/BannerTooltipComponent.java | 7 +++++- .../assets/meteor-client/lang/en_gb.json | 3 ++- .../assets/meteor-client/lang/en_us.json | 3 ++- src/main/resources/meteor-client.mixins.json | 1 - 35 files changed, 113 insertions(+), 154 deletions(-) delete mode 100644 src/main/java/meteordevelopment/meteorclient/mixin/ChunkSkyLightProviderMixin.java diff --git a/gradle.properties b/gradle.properties index f801bd7f6a..bb07651b87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w36a -yarn_mappings=25w36a+build.3 +minecraft_version=25w37a +yarn_mappings=25w37a+build.1 loader_version=0.17.2 -fapi_version=0.133.0+1.21.9 +fapi_version=0.133.4+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java index 8852feccce..323785bbe7 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java @@ -67,7 +67,7 @@ public void build(LiteralArgumentBuilder builder) { } for (KeyBinding keyBinding : mc.options.hotbarKeys) { - builder.then(literal(keyBinding.getTranslationKey().substring(4)) + builder.then(literal(keyBinding.getBoundKeyTranslationKey().substring(4)) .executes(context -> { press(keyBinding); return SINGLE_SUCCESS; @@ -91,7 +91,7 @@ public void build(LiteralArgumentBuilder builder) { info("Active keypress handlers: "); for (int i = 0; i < activeHandlers.size(); i++) { KeypressHandler handler = activeHandlers.get(i); - info("(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", i, I18n.translate(handler.key.getTranslationKey()), handler.ticks, handler.totalTicks); + info("(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", i, I18n.translate(handler.key.getBoundKeyTranslationKey()), handler.ticks, handler.totalTicks); } } return SINGLE_SUCCESS; diff --git a/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java b/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java index a59afba490..1c230e3cc6 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java @@ -7,17 +7,17 @@ import meteordevelopment.meteorclient.events.Cancellable; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; -import net.minecraft.class_11908; +import net.minecraft.client.input.KeyInput; public class KeyEvent extends Cancellable { private static final KeyEvent INSTANCE = new KeyEvent(); public int key, modifiers; public KeyAction action; - public class_11908 arg; + public KeyInput arg; // todo clean this up - public static KeyEvent get(class_11908 arg, int key, int modifiers, KeyAction action) { + public static KeyEvent get(KeyInput arg, int key, int modifiers, KeyAction action) { INSTANCE.setCancelled(false); INSTANCE.arg = arg; INSTANCE.key = key; diff --git a/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java b/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java index 8644cab86a..fc7f3bc0b5 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java @@ -7,17 +7,17 @@ import meteordevelopment.meteorclient.events.Cancellable; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; -import net.minecraft.class_11909; +import net.minecraft.client.gui.Click; public class MouseButtonEvent extends Cancellable { private static final MouseButtonEvent INSTANCE = new MouseButtonEvent(); public int button; public KeyAction action; - public class_11909 arg; + public Click arg; // todo cleanup - public static MouseButtonEvent get(class_11909 arg, int button, KeyAction action) { + public static MouseButtonEvent get(Click arg, int button, KeyAction action) { INSTANCE.setCancelled(false); INSTANCE.arg = arg; INSTANCE.button = button; diff --git a/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java b/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java index e1f2a13bf6..27c1595816 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/render/RenderBlockEntityEvent.java @@ -6,14 +6,14 @@ package meteordevelopment.meteorclient.events.render; import meteordevelopment.meteorclient.events.Cancellable; -import net.minecraft.class_11954; +import net.minecraft.client.render.block.entity.state.BlockEntityRenderState; public class RenderBlockEntityEvent extends Cancellable { private static final RenderBlockEntityEvent INSTANCE = new RenderBlockEntityEvent(); - public class_11954 blockEntityState; + public BlockEntityRenderState blockEntityState; - public static RenderBlockEntityEvent get(class_11954 blockEntityState) { + public static RenderBlockEntityEvent get(BlockEntityRenderState blockEntityState) { INSTANCE.setCancelled(false); INSTANCE.blockEntityState = blockEntityState; return INSTANCE; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java index 2c9677c50f..64608d17fc 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java @@ -17,12 +17,12 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.CursorStyle; import meteordevelopment.meteorclient.utils.misc.input.Input; -import net.minecraft.class_11905; -import net.minecraft.class_11908; -import net.minecraft.class_11909; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.input.CharInput; +import net.minecraft.client.input.KeyInput; import net.minecraft.client.util.MacWindowUtil; import net.minecraft.text.Text; import net.minecraft.util.math.MathHelper; @@ -119,7 +119,7 @@ public void onClosed(Runnable action) { @Override // todo rename bl when appropriate - public boolean mouseClicked(class_11909 arg, boolean bl) { + public boolean mouseClicked(Click arg, boolean bl) { if (locked) return false; double mouseX = arg.x(); @@ -129,11 +129,11 @@ public boolean mouseClicked(class_11909 arg, boolean bl) { mouseX *= s; mouseY *= s; - return root.mouseClicked(mouseX, mouseY, arg.method_74245(), bl); + return root.mouseClicked(mouseX, mouseY, arg.button(), bl); } @Override - public boolean mouseReleased(class_11909 arg) { + public boolean mouseReleased(Click arg) { if (locked) return false; double mouseX = arg.x(); @@ -143,7 +143,7 @@ public boolean mouseReleased(class_11909 arg) { mouseX *= s; mouseY *= s; - return root.mouseReleased(mouseX, mouseY, arg.method_74245()); + return root.mouseReleased(mouseX, mouseY, arg.button()); } @Override @@ -170,7 +170,7 @@ public boolean mouseScrolled(double mouseX, double mouseY, double horizontalAmou } @Override - public boolean keyReleased(class_11908 arg) { + public boolean keyReleased(KeyInput arg) { if (locked) return false; if ((arg.modifiers() == GLFW_MOD_CONTROL || arg.modifiers() == GLFW_MOD_SUPER) && arg.key() == GLFW_KEY_9) { @@ -187,7 +187,7 @@ public boolean keyReleased(class_11908 arg) { } @Override - public boolean keyPressed(class_11908 arg) { + public boolean keyPressed(KeyInput arg) { if (locked) return false; boolean shouldReturn = root.keyPressed(arg.key(), arg.modifiers()) || super.keyPressed(arg); @@ -238,7 +238,7 @@ public void keyRepeated(int key, int modifiers) { } @Override - public boolean charTyped(class_11905 arg) { + public boolean charTyped(CharInput arg) { if (locked) return false; return root.charTyped(((char) arg.codepoint())); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 7f533fc6af..71490a80c3 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -7,11 +7,11 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.class_11949; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; import net.minecraft.client.render.block.entity.model.BannerFlagBlockModel; +import net.minecraft.client.render.block.entity.state.BannerBlockEntityRenderState; import net.minecraft.client.render.command.ModelCommandRenderer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.model.ModelBaker; @@ -30,8 +30,8 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { - @Inject(method = "render(Lnet/minecraft/class_11949;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void injectRender1(class_11949 arg, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) + private void injectRender1(BannerBlockEntityRenderState arg, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java index 7fa226d358..49e45c49db 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconBlockEntityRendererMixin.java @@ -9,9 +9,9 @@ import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.BeamEmitter; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.class_11950; import net.minecraft.client.render.block.entity.BeaconBlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.block.entity.state.BeaconBlockEntityRenderState; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; @@ -21,7 +21,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(BeaconBlockEntityRenderer.class) -public abstract class BeaconBlockEntityRendererMixin implements BlockEntityRenderer { +public abstract class BeaconBlockEntityRendererMixin implements BlockEntityRenderer { @Inject(method = "renderBeam(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/util/Identifier;FFIIIFF)V", at = @At("HEAD"), cancellable = true) private static void onRender(MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, Identifier textureId, float tickProgress, float heightScale, int i, int j, int k, float f, float g, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noBeaconBeams()) ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index 750923f6ff..ca0366c2fe 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -7,8 +7,8 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; -import net.minecraft.class_11954; import net.minecraft.client.render.block.entity.BlockEntityRenderManager; +import net.minecraft.client.render.block.entity.state.BlockEntityRenderState; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Mixin; @@ -19,7 +19,7 @@ @Mixin(BlockEntityRenderManager.class) public abstract class BlockEntityRenderManagerMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRenderEntity(S blockEntity, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + private void onRenderEntity(S blockEntity, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(blockEntity)); if (event.isCancelled()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ChunkSkyLightProviderMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ChunkSkyLightProviderMixin.java deleted file mode 100644 index e05e1e90f4..0000000000 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ChunkSkyLightProviderMixin.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). - * Copyright (c) Meteor Development. - */ - -package meteordevelopment.meteorclient.mixin; - -import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.world.chunk.light.ChunkSkyLightProvider; -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; - -@Mixin(ChunkSkyLightProvider.class) -public abstract class ChunkSkyLightProviderMixin { - @Inject(at = @At("HEAD"), method = "method_51531", cancellable = true) - private void recalculateLevel(long blockPos, long l, int lightLevel, CallbackInfo ci) { - if (Modules.get().get(NoRender.class).noSkylightUpdates()) ci.cancel(); - } -} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java index e4e836e0d2..7f2beede27 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayNetworkHandlerMixin.java @@ -84,7 +84,7 @@ private void onGameJoinTail(GameJoinS2CPacket packet, CallbackInfo info) { } // the server sends a GameJoin packet after the reconfiguration phase - @Inject(method = "onEnterReconfiguration", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/class_11980;)V", shift = At.Shift.AFTER)) + @Inject(method = "onEnterReconfiguration", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/network/PacketApplyBatcher;)V", shift = At.Shift.AFTER)) private void onEnterReconfiguration(EnterReconfigurationS2CPacket packet, CallbackInfo info) { MeteorClient.EVENT_BUS.post(GameLeftEvent.get()); } @@ -117,7 +117,7 @@ private void onEntitiesDestroy(EntitiesDestroyS2CPacket packet, CallbackInfo ci) } } - @Inject(method = "onExplosion", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/class_11980;)V", shift = At.Shift.AFTER)) + @Inject(method = "onExplosion", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/network/PacketApplyBatcher;)V", shift = At.Shift.AFTER)) private void onExplosionVelocity(ExplosionS2CPacket packet, CallbackInfo ci) { Velocity velocity = Modules.get().get(Velocity.class); if (!velocity.explosions.get()) return; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayerEntityMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayerEntityMixin.java index cce4b62324..cb95e58c6c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ClientPlayerEntityMixin.java @@ -74,19 +74,12 @@ private void onPushOutOfBlocks(double x, double d, CallbackInfo info) { } } - @ModifyExpressionValue(method = "canSprint", at = @At(value = "CONSTANT", args = "floatValue=6.0f")) + @ModifyExpressionValue(method = "canSprint()Z", at = @At(value = "CONSTANT", args = "floatValue=6.0f")) private float onHunger(float constant) { if (Modules.get().get(NoSlow.class).hunger()) return -1; return constant; } - /* - @ModifyExpressionValue(method = "sendSneakingPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;isSneaking()Z")) - private boolean isSneaking(boolean sneaking) { - return Modules.get().get(Sneak.class).doPacket() || Modules.get().get(NoSlow.class).airStrict() || sneaking; - } - */ - @Inject(method = "tickMovement", at = @At("HEAD")) private void preTickMovement(CallbackInfo ci) { MeteorClient.EVENT_BUS.post(PlayerTickMovementEvent.get()); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java index 004a9c18f5..7ace512dcf 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ClientWorldMixin.java @@ -95,7 +95,7 @@ private void onAddBlockBreakParticles(BlockPos blockPos, BlockState state, Callb if (Modules.get().get(NoRender.class).noBlockBreakParticles()) info.cancel(); } - @Inject(method = "method_74254", at = @At("HEAD"), cancellable = true) + @Inject(method = "spawnBlockBreakingParticle", at = @At("HEAD"), cancellable = true) private void onAddBlockBreakingParticles(BlockPos blockPos, Direction direction, CallbackInfo info) { if (Modules.get().get(NoRender.class).noBlockBreakParticles()) info.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java index 5a0b01113a..225501c517 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/FireworksSparkParticleSubMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.class_11944; +import net.minecraft.client.particle.BillboardParticleSubmittable; import net.minecraft.client.particle.FireworksSparkParticle; import net.minecraft.client.render.Camera; import org.spongepowered.asm.mixin.Mixin; @@ -18,7 +18,7 @@ @Mixin(value = {FireworksSparkParticle.Explosion.class, FireworksSparkParticle.Flash.class}) public abstract class FireworksSparkParticleSubMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void buildExplosionGeometry(class_11944 arg, Camera camera, float f, CallbackInfo ci) { + private void buildExplosionGeometry(BillboardParticleSubmittable arg, Camera camera, float f, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noFireworkExplosions()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java index a3c6ae5d44..243cc51f69 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java @@ -79,7 +79,7 @@ public abstract class GameRendererMixin { protected abstract void tiltViewWhenHurt(MatrixStack matrices, float tickDelta); @Inject(method = "renderWorld", at = @At(value = "INVOKE_STRING", target = "Lnet/minecraft/util/profiler/Profiler;swap(Ljava/lang/String;)V", args = {"ldc=hand"})) - private void onRenderWorld(RenderTickCounter tickCounter, CallbackInfo ci, @Local(ordinal = 0) Matrix4f projection, @Local(ordinal = 2) Matrix4f view, @Local(ordinal = 1) float tickDelta, @Local MatrixStack matrixStack) { + private void onRenderWorld(RenderTickCounter tickCounter, CallbackInfo ci, @Local(ordinal = 0) Matrix4f projection, @Local(ordinal = 1) Matrix4f position, @Local(ordinal = 1) float tickDelta, @Local MatrixStack matrixStack) { if (!Utils.canUpdate()) return; Profilers.get().push(MeteorClient.MOD_ID + "_render"); @@ -92,12 +92,12 @@ private void onRenderWorld(RenderTickCounter tickCounter, CallbackInfo ci, @Loca // Call utility classes - RenderUtils.updateScreenCenter(projection, view); - NametagUtils.onRender(view); + RenderUtils.updateScreenCenter(projection, position); + NametagUtils.onRender(position); // Update model view matrix - RenderSystem.getModelViewStack().pushMatrix().mul(view); + RenderSystem.getModelViewStack().pushMatrix().mul(position); matrices.push(); tiltViewWhenHurt(matrices, camera.getLastTickProgress()); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java index a3dcfe0359..86c3d2b6dd 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java @@ -10,7 +10,7 @@ import meteordevelopment.meteorclient.systems.modules.render.BetterTooltips; import meteordevelopment.meteorclient.systems.modules.render.ItemHighlight; import meteordevelopment.meteorclient.utils.Utils; -import net.minecraft.class_11909; +import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.BookScreen; @@ -93,19 +93,19 @@ private void onInit(CallbackInfo info) { // Inventory Tweaks @Inject(method = "mouseDragged", at = @At("TAIL")) - private void onMouseDragged(class_11909 arg, double d, double e, CallbackInfoReturnable cir) { - if (arg.method_74245() != GLFW_MOUSE_BUTTON_LEFT || doubleClicking || !Modules.get().get(InventoryTweaks.class).mouseDragItemMove()) return; + private void onMouseDragged(Click arg, double d, double e, CallbackInfoReturnable cir) { + if (arg.button() != GLFW_MOUSE_BUTTON_LEFT || doubleClicking || !Modules.get().get(InventoryTweaks.class).mouseDragItemMove()) return; Slot slot = getSlotAt(arg.x(), arg.y()); - if (slot != null && slot.hasStack() && mc.method_74187()) onMouseClick(slot, slot.id, arg.method_74245(), SlotActionType.QUICK_MOVE); + if (slot != null && slot.hasStack() && mc.isShiftPressed()) onMouseClick(slot, slot.id, arg.button(), SlotActionType.QUICK_MOVE); } // Middle click open @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void mouseClicked(class_11909 arg, boolean bl, CallbackInfoReturnable cir) { + private void mouseClicked(Click arg, boolean bl, CallbackInfoReturnable cir) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && getScreenHandler().getCursorStack().isEmpty() && tooltips.middleClickOpen()) { + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && getScreenHandler().getCursorStack().isEmpty() && tooltips.middleClickOpen()) { ItemStack itemStack = focusedSlot.getStack(); if (Utils.hasItems(itemStack) || itemStack.getItem() == Items.ENDER_CHEST) { cir.setReturnValue(Utils.openContainer(focusedSlot.getStack(), ITEMS, false)); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java index 1a9fb83744..242503648a 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java @@ -13,10 +13,10 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; -import net.minecraft.class_11905; -import net.minecraft.class_11908; import net.minecraft.client.Keyboard; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.input.CharInput; +import net.minecraft.client.input.KeyInput; import org.lwjgl.glfw.GLFW; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -30,7 +30,7 @@ public abstract class KeyboardMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "onKey", at = @At("HEAD"), cancellable = true) - public void onKey(long window, int action, class_11908 arg, CallbackInfo ci) { // todo verify this is correct when they update the mappings + public void onKey(long window, int action, KeyInput arg, CallbackInfo ci) { // todo verify this is correct when they update the mappings int modifiers = arg.modifiers(); if (arg.key() != GLFW.GLFW_KEY_UNKNOWN) { // on Linux/X11 the modifier is not active when the key is pressed and still active when the key is released @@ -53,7 +53,7 @@ public void onKey(long window, int action, class_11908 arg, CallbackInfo ci) { / } @Inject(method = "onChar", at = @At("HEAD"), cancellable = true) - private void onChar(long window, class_11905 arg, CallbackInfo ci) { + private void onChar(long window, CharInput arg, CallbackInfo ci) { if (Utils.canUpdate() && !client.isPaused() && (client.currentScreen == null || client.currentScreen instanceof WidgetScreen)) { if (MeteorClient.EVENT_BUS.post(CharTypedEvent.get((char) arg.codepoint())).isCancelled()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java index d43c723c52..01adef9cc3 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java @@ -8,17 +8,17 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import net.minecraft.block.entity.MobSpawnerBlockEntity; -import net.minecraft.class_11973; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.MobSpawnerBlockEntityRenderer; +import net.minecraft.client.render.block.entity.state.MobSpawnerBlockEntityRenderState; 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; @Mixin(MobSpawnerBlockEntityRenderer.class) -public abstract class MobSpawnerBlockEntityRendererMixin implements BlockEntityRenderer { - @Inject(method = "render(Lnet/minecraft/class_11973;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) +public abstract class MobSpawnerBlockEntityRendererMixin implements BlockEntityRenderer { + @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/MobSpawnerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) private void onRender(CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMobInSpawner()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java index a1945244d5..776b6d0a66 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java @@ -10,10 +10,10 @@ import meteordevelopment.meteorclient.events.meteor.MouseScrollEvent; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; -import net.minecraft.class_11909; -import net.minecraft.class_11910; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; +import net.minecraft.client.gui.Click; +import net.minecraft.client.input.MouseInput; import net.minecraft.client.util.Window; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -37,10 +37,10 @@ public abstract class MouseMixin { private MinecraftClient client; @Inject(method = "onMouseButton", at = @At("HEAD"), cancellable = true) - private void onMouseButton(long window, class_11910 arg, int action, CallbackInfo ci) { + private void onMouseButton(long window, MouseInput arg, int action, CallbackInfo ci) { Input.setButtonState(arg.button(), action != GLFW_RELEASE); - if (MeteorClient.EVENT_BUS.post(MouseButtonEvent.get(new class_11909(getScaledX(client.getWindow()), getScaledY(client.getWindow()), arg), arg.button(), KeyAction.get(action))).isCancelled()) ci.cancel(); + if (MeteorClient.EVENT_BUS.post(MouseButtonEvent.get(new Click(getScaledX(client.getWindow()), getScaledY(client.getWindow()), arg), arg.button(), KeyAction.get(action))).isCancelled()) ci.cancel(); } @Inject(method = "onMouseScroll", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java index 3245bdfd2e..f429f4782e 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java @@ -11,9 +11,8 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Chams; import meteordevelopment.meteorclient.utils.player.Rotations; -import net.minecraft.class_11890; -import net.minecraft.class_11901; import net.minecraft.client.model.ModelPart; +import net.minecraft.client.network.ClientPlayerLikeEntity; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.EntityRendererFactory; @@ -23,6 +22,7 @@ import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.PlayerLikeEntity; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -33,7 +33,7 @@ import static meteordevelopment.meteorclient.MeteorClient.mc; @Mixin(PlayerEntityRenderer.class) -public abstract class PlayerEntityRendererMixin +public abstract class PlayerEntityRendererMixin extends LivingEntityRenderer { // Chams @@ -51,7 +51,7 @@ public PlayerEntityRendererMixin(EntityRendererFactory.Context ctx, PlayerEntity // Chams - Player scale - @Inject(method = "updateRenderState(Lnet/minecraft/class_11890;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) + @Inject(method = "updateRenderState(Lnet/minecraft/entity/PlayerLikeEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) private void updateRenderState$scale(AvatarlikeEntity player, PlayerEntityRenderState state, float f, CallbackInfo ci) { if (!chams.isActive() || !chams.players.get()) return; if (chams.ignoreSelf.get() && player == mc.player) return; @@ -89,7 +89,7 @@ public PlayerEntityRendererMixin(EntityRendererFactory.Context ctx, PlayerEntity // Rotations - @Inject(method = "updateRenderState(Lnet/minecraft/class_11890;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) + @Inject(method = "updateRenderState(Lnet/minecraft/entity/PlayerLikeEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) private void updateRenderState$rotations(AvatarlikeEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) { if (Rotations.rotating && player == mc.player) { state.bodyYaw = Rotations.serverYaw; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java index 758262039f..7d299935de 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ScreenMixin.java @@ -15,10 +15,10 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.text.MeteorClickEvent; import meteordevelopment.meteorclient.utils.misc.text.RunnableClickEvent; -import net.minecraft.class_11908; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ChatScreen; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.input.KeyInput; import net.minecraft.text.ClickEvent; import net.minecraft.text.Style; import org.jetbrains.annotations.Nullable; @@ -60,7 +60,7 @@ private static void onHandleBasicClickEvent(ClickEvent clickEvent, MinecraftClie } @Inject(method = "keyPressed", at = @At("HEAD"), cancellable = true) - private void onKeyPressed(class_11908 arg, CallbackInfoReturnable cir) { + private void onKeyPressed(KeyInput arg, CallbackInfoReturnable cir) { if ((Object) (this) instanceof ChatScreen) return; GUIMove guiMove = Modules.get().get(GUIMove.class); List arrows = List.of(GLFW_KEY_RIGHT, GLFW_KEY_LEFT, GLFW_KEY_DOWN, GLFW_KEY_UP); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java index 6987b22086..07dcd38db1 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.systems.config.Config; import meteordevelopment.meteorclient.utils.player.TitleScreenCredits; -import net.minecraft.class_11909; +import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.TitleScreen; @@ -31,8 +31,8 @@ private void onRender(DrawContext context, int mouseX, int mouseY, float delta, } @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void onMouseClicked(class_11909 arg, boolean bl, CallbackInfoReturnable cir) { - if (Config.get().titleScreenCredits.get() && arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + private void onMouseClicked(Click arg, boolean bl, CallbackInfoReturnable cir) { + if (Config.get().titleScreenCredits.get() && arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { if (TitleScreenCredits.onClicked(arg.x(), arg.y())) cir.setReturnValue(true); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java index f116039ff9..2db90f7fe5 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java @@ -50,7 +50,7 @@ private void onDrawHighlightedBlockOutline(MatrixStack matrices, VertexConsumer if (Modules.get().isActive(BlockSelection.class)) ci.cancel(); } - @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;setupTerrain(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;ZZ)V"), index = 3) + @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;method_74752(Lnet/minecraft/client/render/Camera;Lnet/minecraft/client/render/Frustum;Z)V"), index = 2) private boolean renderSetupTerrainModifyArg(boolean spectator) { return Modules.get().isActive(Freecam.class) || spectator; } @@ -81,6 +81,7 @@ private void onRenderHead(ObjectAllocator allocator, Camera camera, Matrix4f positionMatrix, Matrix4f projectionMatrix, + Matrix4f matrix4f2, GpuBufferSlice fog, Vector4f fogColor, boolean shouldRenderSky, diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java index 9b086b7f4c..1404a12bdf 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java @@ -16,10 +16,10 @@ import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.other.Snapper; import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.class_11908; -import net.minecraft.class_11909; +import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.input.KeyInput; import net.minecraft.util.math.MathHelper; import org.lwjgl.glfw.GLFW; @@ -67,7 +67,7 @@ public HudEditorScreen(GuiTheme theme) { public void initWidgets() {} @Override - public boolean mouseClicked(class_11909 arg, boolean bl) { + public boolean mouseClicked(Click arg, boolean bl) { double s = mc.getWindow().getScaleFactor(); double mouseX = arg.x(); @@ -76,7 +76,7 @@ public boolean mouseClicked(class_11909 arg, boolean bl) { mouseX *= s; mouseY *= s; - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { pressed = true; selectionSnapBox = null; @@ -117,7 +117,7 @@ public void mouseMoved(double mouseX, double mouseY) { } @Override - public boolean mouseReleased(class_11909 arg) { + public boolean mouseReleased(Click arg) { double s = mc.getWindow().getScaleFactor(); double mouseX = arg.x(); @@ -126,7 +126,7 @@ public boolean mouseReleased(class_11909 arg) { mouseX *= s; mouseY *= s; - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) pressed = false; + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT) pressed = false; if (addedHoveredToSelectionWhenClickedElement != null) { selection.remove(addedHoveredToSelectionWhenClickedElement); @@ -134,14 +134,14 @@ public boolean mouseReleased(class_11909 arg) { } if (moved) { - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT && !dragging) fillSelection((int) mouseX, (int)mouseY); + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT && !dragging) fillSelection((int) mouseX, (int)mouseY); } else { - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { HudElement hovered = getHovered((int) mouseX, (int) mouseY); if (hovered != null) hovered.toggle(); } - else if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { + else if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { HudElement hovered = getHovered((int) mouseX, (int) mouseY); if (hovered != null) mc.setScreen(new HudElementScreen(theme, hovered)); @@ -149,7 +149,7 @@ else if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { } } - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { snapper.unsnap(); moved = dragging = false; } @@ -158,7 +158,7 @@ else if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_RIGHT) { } @Override - public boolean keyPressed(class_11908 arg) { + public boolean keyPressed(KeyInput arg) { if (!pressed) { if (arg.key() == GLFW.GLFW_KEY_ENTER || arg.key() == GLFW.GLFW_KEY_KP_ENTER) { HudElement hovered = getHovered(lastMouseX, lastMouseY); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java index c14bb2334a..2b2e56a97b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java @@ -23,8 +23,8 @@ import meteordevelopment.meteorclient.utils.misc.input.KeyAction; import meteordevelopment.orbit.EventHandler; import meteordevelopment.orbit.EventPriority; -import net.minecraft.class_11908; -import net.minecraft.class_11909; +import net.minecraft.client.gui.Click; +import net.minecraft.client.input.KeyInput; public class AutoWalk extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -156,7 +156,7 @@ private void unpress() { mc.options.rightKey.setPressed(false); } - private boolean isMovementKey(class_11908 key) { + private boolean isMovementKey(KeyInput key) { return mc.options.forwardKey.matchesKey(key) || mc.options.backKey.matchesKey(key) || mc.options.leftKey.matchesKey(key) @@ -165,7 +165,7 @@ private boolean isMovementKey(class_11908 key) { || mc.options.jumpKey.matchesKey(key); } - private boolean isMovementButton(class_11909 button) { + private boolean isMovementButton(Click button) { return mc.options.forwardKey.matchesMouse(button) || mc.options.backKey.matchesMouse(button) || mc.options.leftKey.matchesMouse(button) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java index e200004168..145a1ee45a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java @@ -244,13 +244,6 @@ public class NoRender extends Module { .build() ); - private final Setting noSkylightUpdates = sgWorld.add(new BoolSetting.Builder() - .name("skylight-updates") - .description("Disables rendering of skylight updates.") - .defaultValue(false) - .build() - ); - private final Setting noBeaconBeams = sgWorld.add(new BoolSetting.Builder() .name("beacon-beams") .description("Disables rendering of beacon beams.") @@ -525,10 +518,6 @@ public boolean noBlockBreakOverlay() { return isActive() && noBlockBreakOverlay.get(); } - public boolean noSkylightUpdates() { - return isActive() && noSkylightUpdates.get(); - } - public boolean noBeaconBeams() { return isActive() && noBeaconBeams.get(); } @@ -576,7 +565,7 @@ public boolean noTextureRotations() { @EventHandler private void onRenderBlockEntity(RenderBlockEntityEvent event) { - if (blockEntities.get().contains(event.blockEntityState.field_62674.getBlock())) event.cancel(); + if (blockEntities.get().contains(event.blockEntityState.blockState.getBlock())) event.cancel(); } // Entity diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java index 8dca5850b2..c93e81283c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java @@ -87,7 +87,7 @@ public WWidget getWidget(GuiTheme theme) { @EventHandler private void onRenderBlockEntity(RenderBlockEntityEvent event) { - if (isBlocked(event.blockEntityState.field_62674.getBlock(), event.blockEntityState.field_62673)) event.cancel(); + if (isBlocked(event.blockEntityState.blockState.getBlock(), event.blockEntityState.pos)) event.cancel(); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java b/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java index ba3bdfba8a..ecddcc750b 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java @@ -31,9 +31,6 @@ public FakePlayerEntity(PlayerEntity player, String name, float health, boolean bodyYaw = player.bodyYaw; lastBodyYaw = bodyYaw; - Byte playerModel = player.getDataTracker().get(PlayerEntity.field_62514); - dataTracker.set(PlayerEntity.field_62514, playerModel); - getAttributes().setFrom(player.getAttributes()); setPose(player.getPose()); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java index 2fcd170220..1e6d68de16 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java @@ -5,21 +5,16 @@ package meteordevelopment.meteorclient.utils.misc.input; +import meteordevelopment.meteorclient.MeteorClient; import net.minecraft.client.option.KeyBinding; import net.minecraft.client.util.InputUtil; import org.lwjgl.glfw.GLFW; public class KeyBinds { - /* - todo - mojang changed how keybindings work, they used to take a String for the category but now take one of an enum - hopefully fabric adds a helper method to sort this out because the alternative will be doing it ourselves - with ASM or Unsafe, which will be a pain - */ - private static final String CATEGORY = "Meteor Client"; - - public static KeyBinding OPEN_GUI = new KeyBinding("key.meteor-client.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, KeyBinding.class_11900.INTERFACE); - public static KeyBinding OPEN_COMMANDS = new KeyBinding("key.meteor-client.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, KeyBinding.class_11900.INTERFACE); + private static final KeyBinding.Category CATEGORY = KeyBinding.Category.method_74698(MeteorClient.identifier("meteor-client")); + + public static KeyBinding OPEN_GUI = new KeyBinding("key.meteor-client.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, CATEGORY); + public static KeyBinding OPEN_COMMANDS = new KeyBinding("key.meteor-client.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, CATEGORY); private KeyBinds() { } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java index 1ffa1dcac1..2f5b439825 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java @@ -9,12 +9,12 @@ import meteordevelopment.meteorclient.systems.modules.render.BetterTooltips; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.class_11908; -import net.minecraft.class_11909; import net.minecraft.client.gl.RenderPipelines; +import net.minecraft.client.gui.Click; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ingame.BookScreen; import net.minecraft.client.gui.screen.ingame.ShulkerBoxScreen; +import net.minecraft.client.input.KeyInput; import net.minecraft.component.DataComponentTypes; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.ItemStack; @@ -38,10 +38,10 @@ public PeekScreen(ItemStack storageBlock, ItemStack[] contents) { } @Override - public boolean mouseClicked(class_11909 arg, boolean bl) { + public boolean mouseClicked(Click arg, boolean bl) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); - if (arg.method_74245() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && mc.player.currentScreenHandler.getCursorStack().isEmpty() && tooltips.middleClickOpen()) { + if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && mc.player.currentScreenHandler.getCursorStack().isEmpty() && tooltips.middleClickOpen()) { ItemStack itemStack = focusedSlot.getStack(); if (Utils.hasItems(itemStack) || itemStack.getItem() == Items.ENDER_CHEST) { return Utils.openContainer(focusedSlot.getStack(), contents, false); @@ -56,12 +56,12 @@ public boolean mouseClicked(class_11909 arg, boolean bl) { } @Override - public boolean mouseReleased(class_11909 arg) { + public boolean mouseReleased(Click arg) { return false; } @Override - public boolean keyPressed(class_11908 arg) { + public boolean keyPressed(KeyInput arg) { if (arg.key() == GLFW.GLFW_KEY_ESCAPE || mc.options.inventoryKey.matchesKey(arg)) { close(); return true; @@ -70,7 +70,7 @@ public boolean keyPressed(class_11908 arg) { } @Override - public boolean keyReleased(class_11908 arg) { + public boolean keyReleased(KeyInput arg) { if (arg.key() == GLFW.GLFW_KEY_ESCAPE) { close(); return true; diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index 59320681e3..3ebbf1b618 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -9,11 +9,11 @@ import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.class_11954; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.block.entity.state.BlockEntityRenderState; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BlockModelPart; import net.minecraft.client.render.model.BlockStateModel; @@ -40,11 +40,11 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt vertexConsumerProvider.setOffset(blockEntity.getPos().getX(), blockEntity.getPos().getY(), blockEntity.getPos().getZ()); SimpleBlockRenderer.render(blockEntity.getPos(), blockEntity.getCachedState(), vertexConsumerProvider); - BlockEntityRenderer renderer = mc.getBlockEntityRenderDispatcher().get(blockEntity); + BlockEntityRenderer renderer = mc.getBlockEntityRenderDispatcher().get(blockEntity); if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { - class_11954 c = new class_11954(); - class_11954.method_74399(blockEntity, c, null); + BlockEntityRenderState c = new BlockEntityRenderState(); + BlockEntityRenderState.updateBlockEntityRenderState(blockEntity, c, null); renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue()); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java index 5c2147b79c..27210c6bb4 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java @@ -13,6 +13,7 @@ import net.minecraft.client.render.DiffuseLighting; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; +import net.minecraft.client.render.block.entity.model.BannerFlagBlockModel; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.command.RenderDispatcher; import net.minecraft.client.render.entity.model.EntityModelLayers; @@ -30,18 +31,21 @@ public class BannerTooltipComponent implements MeteorTooltipData, TooltipCompone private final DyeColor color; private final BannerPatternsComponent patterns; private final ModelPart bannerField; + private final BannerFlagBlockModel bannerFlag; // should only be used when the ItemStack is a banner public BannerTooltipComponent(ItemStack banner) { this.color = ((BannerItem) banner.getItem()).getColor(); this.patterns = banner.getOrDefault(DataComponentTypes.BANNER_PATTERNS, BannerPatternsComponent.DEFAULT); this.bannerField = mc.getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG).getChild("flag"); + this.bannerFlag = new BannerFlagBlockModel(bannerField); } public BannerTooltipComponent(DyeColor color, BannerPatternsComponent patterns) { this.color = color; this.patterns = patterns; this.bannerField = mc.getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG).getChild("flag"); + this.bannerFlag = new BannerFlagBlockModel(bannerField); } @Override @@ -88,7 +92,8 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he renderCommandQueue, 15728880, OverlayTexture.DEFAULT_UV, - bannerField, + bannerFlag, + null, ModelBaker.BANNER_BASE, true, color, diff --git a/src/main/resources/assets/meteor-client/lang/en_gb.json b/src/main/resources/assets/meteor-client/lang/en_gb.json index eba1690a62..7b02207810 100644 --- a/src/main/resources/assets/meteor-client/lang/en_gb.json +++ b/src/main/resources/assets/meteor-client/lang/en_gb.json @@ -1,4 +1,5 @@ { "key.meteor-client.open-gui": "Open GUI", - "key.meteor-client.open-commands": "Open Commands" + "key.meteor-client.open-commands": "Open Commands", + "key.category.meteor-client.meteor-client": "Meteor Client" } diff --git a/src/main/resources/assets/meteor-client/lang/en_us.json b/src/main/resources/assets/meteor-client/lang/en_us.json index eba1690a62..7b02207810 100644 --- a/src/main/resources/assets/meteor-client/lang/en_us.json +++ b/src/main/resources/assets/meteor-client/lang/en_us.json @@ -1,4 +1,5 @@ { "key.meteor-client.open-gui": "Open GUI", - "key.meteor-client.open-commands": "Open Commands" + "key.meteor-client.open-commands": "Open Commands", + "key.category.meteor-client.meteor-client": "Meteor Client" } diff --git a/src/main/resources/meteor-client.mixins.json b/src/main/resources/meteor-client.mixins.json index a38b6622d6..e1bd2370a3 100644 --- a/src/main/resources/meteor-client.mixins.json +++ b/src/main/resources/meteor-client.mixins.json @@ -49,7 +49,6 @@ "ChunkAccessor", "ChunkBorderDebugRendererMixin", "ChunkOcclusionDataBuilderMixin", - "ChunkSkyLightProviderMixin", "ClientChunkManagerAccessor", "ClientChunkMapAccessor", "ClientConnectionAccessor", From 28b3c5e2cf077916e46d3d890d86b8e007d86075 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Wed, 17 Sep 2025 12:52:55 +0100 Subject: [PATCH 08/20] Update to 1.21.9-pre.1 Regenerated PacketUtils --- gradle.properties | 6 +++--- .../mixin/BannerBlockEntityRendererMixin.java | 5 +++-- .../mixin/BlockEntityRenderManagerMixin.java | 5 +++-- .../mixin/CapeFeatureRendererMixin.java | 7 ++++--- .../mixin/EndCrystalEntityRendererMixin.java | 11 ++++++----- .../mixin/EntityRenderDispatcherMixin.java | 5 ----- .../mixin/ItemEntityRendererMixin.java | 5 +++-- .../mixin/LivingEntityRendererMixin.java | 11 ++++++----- .../meteorclient/mixin/WorldRendererMixin.java | 18 ++++++++---------- .../utils/network/PacketUtils.java | 18 ++++++++++++++++-- .../utils/render/SimpleBlockRenderer.java | 3 ++- .../utils/render/WireframeEntityRenderer.java | 3 ++- 12 files changed, 56 insertions(+), 41 deletions(-) diff --git a/gradle.properties b/gradle.properties index bb07651b87..c48545c20e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=25w37a -yarn_mappings=25w37a+build.1 +minecraft_version=1.21.9-pre1 +yarn_mappings=1.21.9-pre1+build.2 loader_version=0.17.2 -fapi_version=0.133.4+1.21.9 +fapi_version=0.133.7+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 71490a80c3..857b593a23 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -7,6 +7,7 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; +import net.minecraft.class_12075; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; @@ -30,8 +31,8 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { - @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void injectRender1(BannerBlockEntityRenderState arg, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD"), cancellable = true) + private void injectRender1(BannerBlockEntityRenderState bannerBlockEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index ca0366c2fe..91b4cb2d58 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -7,6 +7,7 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; +import net.minecraft.class_12075; import net.minecraft.client.render.block.entity.BlockEntityRenderManager; import net.minecraft.client.render.block.entity.state.BlockEntityRenderState; import net.minecraft.client.render.command.OrderedRenderCommandQueue; @@ -19,8 +20,8 @@ @Mixin(BlockEntityRenderManager.class) public abstract class BlockEntityRenderManagerMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRenderEntity(S blockEntity, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { - RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(blockEntity)); + private void onRenderEntity(S renderState, MatrixStack matrices, OrderedRenderCommandQueue queue, class_12075 arg, CallbackInfo ci) { + RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(renderState)); if (event.isCancelled()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java index b4d57b43e7..ee5993692f 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java @@ -8,6 +8,7 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import meteordevelopment.meteorclient.utils.network.Capes; +import net.minecraft.class_12079; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.feature.CapeFeatureRenderer; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; @@ -19,11 +20,11 @@ @Mixin(CapeFeatureRenderer.class) public abstract class CapeFeatureRendererMixin { - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;")) - private Identifier modifyCapeTexture(Identifier original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;cape()Lnet/minecraft/class_12079$class_12081;")) + private class_12079.class_12081 modifyCapeTexture(class_12079.class_12081 original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); - return id == null ? original : id; + return id == null ? original : new class_12079.AssetInfo(id); } return original; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java index ceb986b0cd..1f7e24bdc7 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java @@ -8,6 +8,7 @@ import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Chams; +import net.minecraft.class_12075; import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.command.ModelCommandRenderer; @@ -44,15 +45,15 @@ private void onInit(CallbackInfo info) { @Final private static Identifier TEXTURE; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD")) - private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD")) + private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { END_CRYSTAL = RenderLayer.getEntityTranslucent((chams.isActive() && chams.crystals.get() && !chams.crystalsTexture.get()) ? Chams.BLANK : TEXTURE); } // Chams - Scale - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) - private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) + private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { if (!chams.isActive() || !chams.crystals.get()) return; float v = chams.crystalsScale.get().floatValue(); @@ -61,7 +62,7 @@ private void onInit(CallbackInfo info) { // Chams - Color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) private boolean render$color(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (chams.isActive() && chams.crystals.get()) { instance.submitModel(model, diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java index 2f3161a69c..23ef96a7f9 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java @@ -80,9 +80,4 @@ private static void onRenderShadow(MatrixStack matrices, VertexConsumerProvider private void onGetSquaredDistanceToCameraEntity(Entity entity, CallbackInfoReturnable info) { if (camera == null) info.setReturnValue(0.0); } - - @Inject(method = "getSquaredDistanceToCamera(DDD)D", at = @At("HEAD"), cancellable = true) - private void onGetSquaredDistanceToCameraXYZ(double x, double y, double z, CallbackInfoReturnable info) { - if (camera == null) info.setReturnValue(0.0); - } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java index fc0cc93530..72120aea4a 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java @@ -7,6 +7,7 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderItemEntityEvent; +import net.minecraft.class_12075; import net.minecraft.client.item.ItemModelManager; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.ItemEntityRenderer; @@ -27,8 +28,8 @@ public abstract class ItemEntityRendererMixin { @Final private ItemModelManager itemModelManager; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD"), cancellable = true) + private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { // todo fix to work with entity render batching RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager, orderedRenderCommandQueue)); if (event.isCancelled()) ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java index bfa8a9da5f..166cf0edd4 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java @@ -14,6 +14,7 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import net.minecraft.class_12075; import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.command.ModelCommandRenderer; @@ -64,7 +65,7 @@ private Team hasLabelClientPlayerEntityGetScoreboardTeamProxy(Team team) { // Chams - player color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) private boolean render$render(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (!chams.isActive() || !chams.players.get() || !(((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player)) return true; if (chams.ignoreSelf.get() && player == mc.player) return true; @@ -90,8 +91,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB // Chams - Through walls - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void render$Head(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD"), cancellable = true) + private void render$Head(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; @@ -103,8 +104,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB } } - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("TAIL")) - private void render$Tail(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("TAIL")) + private void render$Tail(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java index 2db90f7fe5..efcb623765 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java @@ -15,17 +15,15 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.utils.render.postprocess.PostProcessShaders; -import net.minecraft.block.BlockState; +import net.minecraft.class_12074; +import net.minecraft.class_12077; +import net.minecraft.class_12078; import net.minecraft.client.gl.Framebuffer; import net.minecraft.client.render.*; import net.minecraft.client.util.Handle; import net.minecraft.client.util.ObjectAllocator; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraft.world.border.WorldBorder; import org.joml.Matrix4f; import org.joml.Vector4f; import org.spongepowered.asm.mixin.Final; @@ -46,7 +44,7 @@ private void onCheckEmpty(MatrixStack matrixStack, CallbackInfo info) { } @Inject(method = "drawBlockOutline", at = @At("HEAD"), cancellable = true) - private void onDrawHighlightedBlockOutline(MatrixStack matrices, VertexConsumer vertexConsumer, Entity entity, double cameraX, double cameraY, double cameraZ, BlockPos pos, BlockState state, int i, CallbackInfo ci) { + private void onDrawHighlightedBlockOutline(MatrixStack matrixStack, VertexConsumer vertexConsumer, double d, double e, double f, class_12074 arg, int i, CallbackInfo ci) { if (Modules.get().isActive(BlockSelection.class)) ci.cancel(); } @@ -57,13 +55,13 @@ private boolean renderSetupTerrainModifyArg(boolean spectator) { // No Render - @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WeatherRendering;renderPrecipitation(Lnet/minecraft/world/World;Lnet/minecraft/client/render/VertexConsumerProvider;IFLnet/minecraft/util/math/Vec3d;)V")) - private boolean shouldRenderPrecipitation(WeatherRendering instance, World world, VertexConsumerProvider vertexConsumers, int ticks, float tickProgress, Vec3d pos) { + @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WeatherRendering;renderPrecipitation(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/class_12077;)V")) + private boolean shouldRenderPrecipitation(WeatherRendering instance, VertexConsumerProvider vertexConsumers, Vec3d pos, class_12077 arg) { return !Modules.get().get(NoRender.class).noWeather(); } - @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldBorderRendering;render(Lnet/minecraft/world/border/WorldBorder;Lnet/minecraft/util/math/Vec3d;DD)V")) - private boolean shouldRenderWorldBorder(WorldBorderRendering instance, WorldBorder border, Vec3d cameraPos, double viewDistanceBlocks, double farPlaneDistance) { + @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldBorderRendering;render(Lnet/minecraft/class_12078;Lnet/minecraft/util/math/Vec3d;DD)V")) + private boolean shouldRenderWorldBorder(WorldBorderRendering instance, class_12078 arg, Vec3d cameraPos, double viewDistanceBlocks, double farPlaneDistance) { return !Modules.get().get(NoRender.class).noWorldBorder(); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/network/PacketUtils.java b/src/main/java/meteordevelopment/meteorclient/utils/network/PacketUtils.java index 7039e5f11d..ed3a3fef4c 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/network/PacketUtils.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/network/PacketUtils.java @@ -23,6 +23,8 @@ public class PacketUtils { public static final Set>> PACKETS = Sets.union(getC2SPackets(), getS2CPackets()); static { + C2S_PACKETS.put(net.minecraft.network.packet.c2s.config.AcceptCodeOfConductC2SPacket.class, "AcceptCodeOfConductC2SPacket"); + C2S_PACKETS_R.put("AcceptCodeOfConductC2SPacket", net.minecraft.network.packet.c2s.config.AcceptCodeOfConductC2SPacket.class); C2S_PACKETS.put(net.minecraft.network.packet.c2s.play.AcknowledgeChunksC2SPacket.class, "AcknowledgeChunksC2SPacket"); C2S_PACKETS_R.put("AcknowledgeChunksC2SPacket", net.minecraft.network.packet.c2s.play.AcknowledgeChunksC2SPacket.class); C2S_PACKETS.put(net.minecraft.network.packet.c2s.play.AcknowledgeReconfigurationC2SPacket.class, "AcknowledgeReconfigurationC2SPacket"); @@ -69,8 +71,8 @@ public class PacketUtils { C2S_PACKETS_R.put("CustomClickActionC2SPacket", net.minecraft.network.packet.c2s.common.CustomClickActionC2SPacket.class); C2S_PACKETS.put(net.minecraft.network.packet.c2s.common.CustomPayloadC2SPacket.class, "CustomPayloadC2SPacket"); C2S_PACKETS_R.put("CustomPayloadC2SPacket", net.minecraft.network.packet.c2s.common.CustomPayloadC2SPacket.class); - C2S_PACKETS.put(net.minecraft.network.packet.c2s.play.DebugSampleSubscriptionC2SPacket.class, "DebugSampleSubscriptionC2SPacket"); - C2S_PACKETS_R.put("DebugSampleSubscriptionC2SPacket", net.minecraft.network.packet.c2s.play.DebugSampleSubscriptionC2SPacket.class); + C2S_PACKETS.put(net.minecraft.network.packet.c2s.play.DebugSubscriptionRequestC2SPacket.class, "DebugSubscriptionRequestC2SPacket"); + C2S_PACKETS_R.put("DebugSubscriptionRequestC2SPacket", net.minecraft.network.packet.c2s.play.DebugSubscriptionRequestC2SPacket.class); C2S_PACKETS.put(net.minecraft.network.packet.c2s.login.EnterConfigurationC2SPacket.class, "EnterConfigurationC2SPacket"); C2S_PACKETS_R.put("EnterConfigurationC2SPacket", net.minecraft.network.packet.c2s.login.EnterConfigurationC2SPacket.class); C2S_PACKETS.put(net.minecraft.network.packet.c2s.play.HandSwingC2SPacket.class, "HandSwingC2SPacket"); @@ -184,6 +186,8 @@ public class PacketUtils { S2C_PACKETS_R.put("BlockEventS2CPacket", net.minecraft.network.packet.s2c.play.BlockEventS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket.class, "BlockUpdateS2CPacket"); S2C_PACKETS_R.put("BlockUpdateS2CPacket", net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket.class); + S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.BlockValueDebugS2CPacket.class, "BlockValueDebugS2CPacket"); + S2C_PACKETS_R.put("BlockValueDebugS2CPacket", net.minecraft.network.packet.s2c.play.BlockValueDebugS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.BossBarS2CPacket.class, "BossBarS2CPacket"); S2C_PACKETS_R.put("BossBarS2CPacket", net.minecraft.network.packet.s2c.play.BossBarS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.ChatMessageS2CPacket.class, "ChatMessageS2CPacket"); @@ -202,12 +206,16 @@ public class PacketUtils { S2C_PACKETS_R.put("ChunkRenderDistanceCenterS2CPacket", net.minecraft.network.packet.s2c.play.ChunkRenderDistanceCenterS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.ChunkSentS2CPacket.class, "ChunkSentS2CPacket"); S2C_PACKETS_R.put("ChunkSentS2CPacket", net.minecraft.network.packet.s2c.play.ChunkSentS2CPacket.class); + S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.ChunkValueDebugS2CPacket.class, "ChunkValueDebugS2CPacket"); + S2C_PACKETS_R.put("ChunkValueDebugS2CPacket", net.minecraft.network.packet.s2c.play.ChunkValueDebugS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.common.ClearDialogS2CPacket.class, "ClearDialogS2CPacket"); S2C_PACKETS_R.put("ClearDialogS2CPacket", net.minecraft.network.packet.s2c.common.ClearDialogS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.ClearTitleS2CPacket.class, "ClearTitleS2CPacket"); S2C_PACKETS_R.put("ClearTitleS2CPacket", net.minecraft.network.packet.s2c.play.ClearTitleS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.CloseScreenS2CPacket.class, "CloseScreenS2CPacket"); S2C_PACKETS_R.put("CloseScreenS2CPacket", net.minecraft.network.packet.s2c.play.CloseScreenS2CPacket.class); + S2C_PACKETS.put(net.minecraft.network.packet.s2c.config.CodeOfConductS2CPacket.class, "CodeOfConductS2CPacket"); + S2C_PACKETS_R.put("CodeOfConductS2CPacket", net.minecraft.network.packet.s2c.config.CodeOfConductS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.CommandSuggestionsS2CPacket.class, "CommandSuggestionsS2CPacket"); S2C_PACKETS_R.put("CommandSuggestionsS2CPacket", net.minecraft.network.packet.s2c.play.CommandSuggestionsS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.CommandTreeS2CPacket.class, "CommandTreeS2CPacket"); @@ -278,8 +286,12 @@ public class PacketUtils { S2C_PACKETS_R.put("EntityStatusS2CPacket", net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket.class, "EntityTrackerUpdateS2CPacket"); S2C_PACKETS_R.put("EntityTrackerUpdateS2CPacket", net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket.class); + S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.EntityValueDebugS2CPacket.class, "EntityValueDebugS2CPacket"); + S2C_PACKETS_R.put("EntityValueDebugS2CPacket", net.minecraft.network.packet.s2c.play.EntityValueDebugS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket.class, "EntityVelocityUpdateS2CPacket"); S2C_PACKETS_R.put("EntityVelocityUpdateS2CPacket", net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket.class); + S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.EventDebugS2CPacket.class, "EventDebugS2CPacket"); + S2C_PACKETS_R.put("EventDebugS2CPacket", net.minecraft.network.packet.s2c.play.EventDebugS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.ExperienceBarUpdateS2CPacket.class, "ExperienceBarUpdateS2CPacket"); S2C_PACKETS_R.put("ExperienceBarUpdateS2CPacket", net.minecraft.network.packet.s2c.play.ExperienceBarUpdateS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.ExplosionS2CPacket.class, "ExplosionS2CPacket"); @@ -292,6 +304,8 @@ public class PacketUtils { S2C_PACKETS_R.put("GameMessageS2CPacket", net.minecraft.network.packet.s2c.play.GameMessageS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket.class, "GameStateChangeS2CPacket"); S2C_PACKETS_R.put("GameStateChangeS2CPacket", net.minecraft.network.packet.s2c.play.GameStateChangeS2CPacket.class); + S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.GameTestHighlightPosS2CPacket.class, "GameTestHighlightPosS2CPacket"); + S2C_PACKETS_R.put("GameTestHighlightPosS2CPacket", net.minecraft.network.packet.s2c.play.GameTestHighlightPosS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket.class, "HealthUpdateS2CPacket"); S2C_PACKETS_R.put("HealthUpdateS2CPacket", net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket.class); S2C_PACKETS.put(net.minecraft.network.packet.s2c.play.InventoryS2CPacket.class, "InventoryS2CPacket"); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index 3ebbf1b618..95dd02bdab 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -9,6 +9,7 @@ import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; +import net.minecraft.class_12075; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; @@ -45,7 +46,7 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { BlockEntityRenderState c = new BlockEntityRenderState(); BlockEntityRenderState.updateBlockEntityRenderState(blockEntity, c, null); - renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue()); + renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue(), new class_12075()); } vertexConsumerProvider.setOffset(0, 0, 0); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java index 55fd734366..72bcdd5ae7 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java @@ -12,6 +12,7 @@ import meteordevelopment.meteorclient.renderer.Renderer3D; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.utils.render.color.Color; +import net.minecraft.class_12075; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexConsumer; @@ -67,7 +68,7 @@ public static void render(Render3DEvent event, Entity entity, double scale, Colo matrices.push(); matrices.scale((float) scale, (float) scale, (float) scale); - renderer.render(state, matrices, entityRenderCommandQueue); + renderer.render(state, matrices, entityRenderCommandQueue, new class_12075()); // todo this just adds the entities to a list, we need to actually render them somewhere by calling // net.minecraft.class_11688.method_73012 matrices.pop(); From 2dcdae8d7a46fafdf7e3f99221b7cdff1819ec3a Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Fri, 19 Sep 2025 18:48:23 +0100 Subject: [PATCH 09/20] Update to 1.21.9-pre.2 Just mapping changes --- gradle.properties | 4 ++-- .../mixin/BannerBlockEntityRendererMixin.java | 6 +++--- .../mixin/BlockEntityRenderManagerMixin.java | 4 ++-- .../mixin/CapeFeatureRendererMixin.java | 8 ++++---- .../mixin/EndCrystalEntityRendererMixin.java | 12 ++++++------ .../mixin/ItemEntityRendererMixin.java | 6 +++--- .../mixin/LivingEntityRendererMixin.java | 12 ++++++------ .../meteorclient/mixin/PlayerListEntryMixin.java | 2 +- .../meteorclient/mixin/WorldRendererMixin.java | 16 ++++++++-------- .../meteorclient/utils/misc/input/KeyBinds.java | 2 +- .../utils/render/SimpleBlockRenderer.java | 4 ++-- .../utils/render/WireframeEntityRenderer.java | 4 ++-- 12 files changed, 40 insertions(+), 40 deletions(-) diff --git a/gradle.properties b/gradle.properties index c48545c20e..e025813e02 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,8 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=1.21.9-pre1 -yarn_mappings=1.21.9-pre1+build.2 +minecraft_version=1.21.9-pre2 +yarn_mappings=1.21.9-pre2+build.2 loader_version=0.17.2 fapi_version=0.133.7+1.21.9 diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 857b593a23..b28637c137 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -7,7 +7,6 @@ import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; -import net.minecraft.class_12075; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; @@ -16,6 +15,7 @@ import net.minecraft.client.render.command.ModelCommandRenderer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.model.ModelBaker; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.texture.SpriteHolder; import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.client.util.math.MatrixStack; @@ -31,8 +31,8 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { - @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD"), cancellable = true) - private void injectRender1(BannerBlockEntityRenderState bannerBlockEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("HEAD"), cancellable = true) + private void injectRender1(BannerBlockEntityRenderState bannerBlockEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java index 91b4cb2d58..4fc4ef95fc 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BlockEntityRenderManagerMixin.java @@ -7,10 +7,10 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; -import net.minecraft.class_12075; import net.minecraft.client.render.block.entity.BlockEntityRenderManager; import net.minecraft.client.render.block.entity.state.BlockEntityRenderState; import net.minecraft.client.render.command.OrderedRenderCommandQueue; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -20,7 +20,7 @@ @Mixin(BlockEntityRenderManager.class) public abstract class BlockEntityRenderManagerMixin { @Inject(method = "render", at = @At("HEAD"), cancellable = true) - private void onRenderEntity(S renderState, MatrixStack matrices, OrderedRenderCommandQueue queue, class_12075 arg, CallbackInfo ci) { + private void onRenderEntity(S renderState, MatrixStack matrices, OrderedRenderCommandQueue queue, CameraRenderState arg, CallbackInfo ci) { RenderBlockEntityEvent event = MeteorClient.EVENT_BUS.post(RenderBlockEntityEvent.get(renderState)); if (event.isCancelled()) ci.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java index ee5993692f..92e488d0aa 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java @@ -8,23 +8,23 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import meteordevelopment.meteorclient.utils.network.Capes; -import net.minecraft.class_12079; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.feature.CapeFeatureRenderer; import net.minecraft.client.render.entity.state.PlayerEntityRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.AssetInfo; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @Mixin(CapeFeatureRenderer.class) public abstract class CapeFeatureRendererMixin { - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;cape()Lnet/minecraft/class_12079$class_12081;")) - private class_12079.class_12081 modifyCapeTexture(class_12079.class_12081 original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { + @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/SkinTextures;cape()Lnet/minecraft/util/AssetInfo$TextureAsset;")) + private AssetInfo.TextureAsset modifyCapeTexture(AssetInfo.TextureAsset original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); - return id == null ? original : new class_12079.AssetInfo(id); + return id == null ? original : new AssetInfo.TextureAssetInfo(id); } return original; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java index 1f7e24bdc7..5be7a80469 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java @@ -8,13 +8,13 @@ import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.Chams; -import net.minecraft.class_12075; import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.command.ModelCommandRenderer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.EndCrystalEntityRenderer; import net.minecraft.client.render.entity.state.EndCrystalEntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.*; @@ -45,15 +45,15 @@ private void onInit(CallbackInfo info) { @Final private static Identifier TEXTURE; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD")) - private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("HEAD")) + private void render$renderLayer(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { END_CRYSTAL = RenderLayer.getEntityTranslucent((chams.isActive() && chams.crystals.get() && !chams.crystalsTexture.get()) ? Chams.BLANK : TEXTURE); } // Chams - Scale - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) - private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V")) + private void render$scale(EndCrystalEntityRenderState endCrystalEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { if (!chams.isActive() || !chams.crystals.get()) return; float v = chams.crystalsScale.get().floatValue(); @@ -62,7 +62,7 @@ private void onInit(CallbackInfo info) { // Chams - Color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) private boolean render$color(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (chams.isActive() && chams.crystals.get()) { instance.submitModel(model, diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java index 72120aea4a..8d22ab70ce 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ItemEntityRendererMixin.java @@ -7,11 +7,11 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.RenderItemEntityEvent; -import net.minecraft.class_12075; import net.minecraft.client.item.ItemModelManager; import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.entity.ItemEntityRenderer; import net.minecraft.client.render.entity.state.ItemEntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -28,8 +28,8 @@ public abstract class ItemEntityRendererMixin { @Final private ItemModelManager itemModelManager; - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD"), cancellable = true) - private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/ItemEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("HEAD"), cancellable = true) + private void renderStack(ItemEntityRenderState itemEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { // todo fix to work with entity render batching RenderItemEntityEvent event = MeteorClient.EVENT_BUS.post(RenderItemEntityEvent.get(itemEntityRenderState, mc.getRenderTickCounter().getTickProgress(true), matrixStack, null, itemEntityRenderState.light, this.itemModelManager, orderedRenderCommandQueue)); if (event.isCancelled()) ci.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java index 166cf0edd4..4ea46c1a6a 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java @@ -14,7 +14,6 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.utils.player.PlayerUtils; -import net.minecraft.class_12075; import net.minecraft.client.model.Model; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.command.ModelCommandRenderer; @@ -22,6 +21,7 @@ import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.client.render.entity.model.EntityModel; import net.minecraft.client.render.entity.state.LivingEntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; @@ -65,7 +65,7 @@ private Team hasLabelClientPlayerEntityGetScoreboardTeamProxy(Team team) { // Chams - player color - @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) private boolean render$render(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (!chams.isActive() || !chams.players.get() || !(((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player)) return true; if (chams.ignoreSelf.get() && player == mc.player) return true; @@ -91,8 +91,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB // Chams - Through walls - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("HEAD"), cancellable = true) - private void render$Head(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("HEAD"), cancellable = true) + private void render$Head(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; @@ -104,8 +104,8 @@ private RenderLayer getRenderPlayer(RenderLayer original, S state, boolean showB } } - @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/class_12075;)V", at = @At("TAIL")) - private void render$Tail(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, class_12075 arg, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("TAIL")) + private void render$Tail(S state, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { Entity entity = ((IEntityRenderState) state).meteor$getEntity(); if (!(entity instanceof LivingEntity livingEntity)) return; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java index d02c672c3d..6b330236b2 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerListEntryMixin.java @@ -11,7 +11,7 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.PlayerListEntry; import net.minecraft.client.util.DefaultSkinHelper; -import net.minecraft.client.util.SkinTextures; +import net.minecraft.entity.player.SkinTextures; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java index efcb623765..21bc407fac 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererMixin.java @@ -15,11 +15,11 @@ import meteordevelopment.meteorclient.systems.modules.render.Freecam; import meteordevelopment.meteorclient.systems.modules.render.NoRender; import meteordevelopment.meteorclient.utils.render.postprocess.PostProcessShaders; -import net.minecraft.class_12074; -import net.minecraft.class_12077; -import net.minecraft.class_12078; import net.minecraft.client.gl.Framebuffer; import net.minecraft.client.render.*; +import net.minecraft.client.render.state.OutlineRenderState; +import net.minecraft.client.render.state.WeatherRenderState; +import net.minecraft.client.render.state.WorldBorderRenderState; import net.minecraft.client.util.Handle; import net.minecraft.client.util.ObjectAllocator; import net.minecraft.client.util.math.MatrixStack; @@ -44,7 +44,7 @@ private void onCheckEmpty(MatrixStack matrixStack, CallbackInfo info) { } @Inject(method = "drawBlockOutline", at = @At("HEAD"), cancellable = true) - private void onDrawHighlightedBlockOutline(MatrixStack matrixStack, VertexConsumer vertexConsumer, double d, double e, double f, class_12074 arg, int i, CallbackInfo ci) { + private void onDrawHighlightedBlockOutline(MatrixStack matrices, VertexConsumer vertexConsumer, double x, double y, double z, OutlineRenderState state, int i, CallbackInfo ci) { if (Modules.get().isActive(BlockSelection.class)) ci.cancel(); } @@ -55,13 +55,13 @@ private boolean renderSetupTerrainModifyArg(boolean spectator) { // No Render - @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WeatherRendering;renderPrecipitation(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/class_12077;)V")) - private boolean shouldRenderPrecipitation(WeatherRendering instance, VertexConsumerProvider vertexConsumers, Vec3d pos, class_12077 arg) { + @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WeatherRendering;renderPrecipitation(Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/state/WeatherRenderState;)V")) + private boolean shouldRenderPrecipitation(WeatherRendering instance, VertexConsumerProvider vertexConsumers, Vec3d pos, WeatherRenderState weatherRenderState) { return !Modules.get().get(NoRender.class).noWeather(); } - @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldBorderRendering;render(Lnet/minecraft/class_12078;Lnet/minecraft/util/math/Vec3d;DD)V")) - private boolean shouldRenderWorldBorder(WorldBorderRendering instance, class_12078 arg, Vec3d cameraPos, double viewDistanceBlocks, double farPlaneDistance) { + @WrapWithCondition(method = "method_62216", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldBorderRendering;render(Lnet/minecraft/client/render/state/WorldBorderRenderState;Lnet/minecraft/util/math/Vec3d;DD)V")) + private boolean shouldRenderWorldBorder(WorldBorderRendering instance, WorldBorderRenderState state, Vec3d cameraPos, double viewDistanceBlocks, double farPlaneDistance) { return !Modules.get().get(NoRender.class).noWorldBorder(); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java index 1e6d68de16..6830326c87 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java @@ -11,7 +11,7 @@ import org.lwjgl.glfw.GLFW; public class KeyBinds { - private static final KeyBinding.Category CATEGORY = KeyBinding.Category.method_74698(MeteorClient.identifier("meteor-client")); + private static final KeyBinding.Category CATEGORY = KeyBinding.Category.create(MeteorClient.identifier("meteor-client")); public static KeyBinding OPEN_GUI = new KeyBinding("key.meteor-client.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, CATEGORY); public static KeyBinding OPEN_COMMANDS = new KeyBinding("key.meteor-client.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, CATEGORY); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index 95dd02bdab..1eee522ca1 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -9,7 +9,6 @@ import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.class_12075; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; @@ -18,6 +17,7 @@ import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BlockModelPart; import net.minecraft.client.render.model.BlockStateModel; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -46,7 +46,7 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { BlockEntityRenderState c = new BlockEntityRenderState(); BlockEntityRenderState.updateBlockEntityRenderState(blockEntity, c, null); - renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue(), new class_12075()); + renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue(), new CameraRenderState()); } vertexConsumerProvider.setOffset(0, 0, 0); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java index 72bcdd5ae7..571af5470a 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java @@ -12,7 +12,6 @@ import meteordevelopment.meteorclient.renderer.Renderer3D; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.utils.render.color.Color; -import net.minecraft.class_12075; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexConsumer; @@ -21,6 +20,7 @@ import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.state.EntityRenderState; +import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; @@ -68,7 +68,7 @@ public static void render(Render3DEvent event, Entity entity, double scale, Colo matrices.push(); matrices.scale((float) scale, (float) scale, (float) scale); - renderer.render(state, matrices, entityRenderCommandQueue, new class_12075()); + renderer.render(state, matrices, entityRenderCommandQueue, new CameraRenderState()); // todo this just adds the entities to a list, we need to actually render them somewhere by calling // net.minecraft.class_11688.method_73012 matrices.pop(); From fe075ee6de17506c2bd94810937be8105aecbf09 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Wed, 24 Sep 2025 20:15:24 +0100 Subject: [PATCH 10/20] Update to 1.21.9-pre.4 --- gradle.properties | 6 ++-- .../commands/commands/DamageCommand.java | 2 +- .../entity/player/CanWalkOnFluidEvent.java | 2 +- .../player/SendMovementPacketsEvent.java | 4 +-- .../gui/utils/SettingsWidgetFactory.java | 2 +- .../mixin/BannerBlockEntityRendererMixin.java | 6 ++-- .../meteorclient/mixin/BeaconScreenMixin.java | 5 +++- .../meteorclient/mixin/GameRendererMixin.java | 4 +-- .../pathing/BaritonePathManager.java | 3 +- .../systems/hud/elements/CompassHud.java | 2 +- .../systems/modules/combat/ArrowDodge.java | 4 +-- .../systems/modules/combat/AutoWeb.java | 2 +- .../systems/modules/combat/CrystalAura.java | 10 +++---- .../systems/modules/combat/HoleFiller.java | 2 +- .../systems/modules/combat/Surround.java | 2 +- .../systems/modules/misc/Notifier.java | 6 ++-- .../systems/modules/movement/AutoWasp.java | 2 +- .../systems/modules/movement/Blink.java | 2 +- .../systems/modules/movement/NoFall.java | 2 +- .../systems/modules/movement/SafeWalk.java | 2 +- .../systems/modules/movement/Scaffold.java | 8 ++--- .../systems/modules/movement/Step.java | 2 +- .../modules/movement/elytrafly/ElytraFly.java | 6 ++-- .../systems/modules/player/AutoRespawn.java | 2 +- .../systems/modules/render/HoleESP.java | 2 +- .../systems/modules/render/PopChams.java | 2 +- .../modules/render/WaypointsModule.java | 2 +- .../systems/modules/world/Flamethrower.java | 2 +- .../systems/modules/world/HighwayBuilder.java | 8 ++--- .../systems/modules/world/Nuker.java | 8 ++--- .../utils/entity/DamageUtils.java | 6 ++-- .../utils/misc/MeteorStarscript.java | 2 +- .../utils/misc/text/TextVisitor.java | 4 +-- .../meteorclient/utils/player/PathFinder.java | 14 ++++----- .../utils/player/PlayerUtils.java | 3 +- .../utils/tooltip/BannerTooltipComponent.java | 29 ++++++++++--------- .../resources/meteor-client.accesswidener | 2 ++ 37 files changed, 89 insertions(+), 83 deletions(-) diff --git a/gradle.properties b/gradle.properties index e025813e02..77e728d0c4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=1.21.9-pre2 -yarn_mappings=1.21.9-pre2+build.2 +minecraft_version=1.21.9-pre4 +yarn_mappings=1.21.9-pre4+build.2 loader_version=0.17.2 -fapi_version=0.133.7+1.21.9 +fapi_version=0.133.11+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java index 89f48f34d8..973c10bb0c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java @@ -46,7 +46,7 @@ private void damagePlayer(int amount) { boolean antiHunger = Modules.get().isActive(AntiHunger.class); if (antiHunger) Modules.get().get(AntiHunger.class).toggle(); - Vec3d pos = mc.player.getPos(); + Vec3d pos = mc.player.getEntityPos(); for(int i = 0; i < 80; i++) { sendPositionPacket(pos.x, pos.y + amount + 2.1, pos.z, false); diff --git a/src/main/java/meteordevelopment/meteorclient/events/entity/player/CanWalkOnFluidEvent.java b/src/main/java/meteordevelopment/meteorclient/events/entity/player/CanWalkOnFluidEvent.java index f89d5d38db..e5fbfabe68 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/entity/player/CanWalkOnFluidEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/entity/player/CanWalkOnFluidEvent.java @@ -15,7 +15,7 @@ * Getting the pose calls {@link meteordevelopment.meteorclient.mixin.EntityMixin#modifyGetPose(net.minecraft.entity.EntityPose)}, * which calls {@link PlayerEntity#canChangeIntoPose(net.minecraft.entity.EntityPose)}, which * calculates whether there is enough space to fit your bounding box if you change into that pose. This method ends up - * calling {@link LivingEntity#canWalkOnFluid(net.minecraft.fluid.FluidState)}, causing this event to fire + * calling {@link LivingEntity#canWalkOnFluid(FluidState)}, causing this event to fire * again and leading to a stack overflow crash. Introduced in * this pull request */ diff --git a/src/main/java/meteordevelopment/meteorclient/events/entity/player/SendMovementPacketsEvent.java b/src/main/java/meteordevelopment/meteorclient/events/entity/player/SendMovementPacketsEvent.java index 4c603397d3..cc3396c054 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/entity/player/SendMovementPacketsEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/entity/player/SendMovementPacketsEvent.java @@ -9,7 +9,7 @@ public class SendMovementPacketsEvent { public static class Pre { private static final Pre INSTANCE = new Pre(); - public static SendMovementPacketsEvent.Pre get() { + public static Pre get() { return INSTANCE; } } @@ -17,7 +17,7 @@ public static SendMovementPacketsEvent.Pre get() { public static class Post { private static final Post INSTANCE = new Post(); - public static SendMovementPacketsEvent.Post get() { + public static Post get() { return INSTANCE; } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/utils/SettingsWidgetFactory.java b/src/main/java/meteordevelopment/meteorclient/gui/utils/SettingsWidgetFactory.java index 6e890fadf7..3ba3d98ce1 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/utils/SettingsWidgetFactory.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/utils/SettingsWidgetFactory.java @@ -16,7 +16,7 @@ import java.util.function.Function; public abstract class SettingsWidgetFactory { - private static final Map, Function> customFactories = new HashMap<>(); + private static final Map, Function> customFactories = new HashMap<>(); protected final GuiTheme theme; protected final Map, Factory> factories = new HashMap<>(); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index b28637c137..560484ab68 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -36,10 +36,10 @@ private void injectRender1(BannerBlockEntityRenderState bannerBlockEntityRenderS if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } - @Inject(method = "render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V"), cancellable = true) - private static void injectRender2(SpriteHolder spriteHolder, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel bannerBlockModel, BannerFlagBlockModel bannerFlagBlockModel, float g, DyeColor dyeColor, BannerPatternsComponent bannerPatternsComponent, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V"), cancellable = true) + private static void injectRender2(SpriteHolder materials, MatrixStack matrices, OrderedRenderCommandQueue queue, int light, int overlay, float yaw, BannerBlockModel model, BannerFlagBlockModel flagModel, float pitch, DyeColor dyeColor, BannerPatternsComponent bannerPatterns, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlay, int outline, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.Pillar) { - renderPillar(matrixStack, orderedRenderCommandQueue, light, overlay, rotation, bannerBlockModel, spriteHolder, crumblingOverlayCommand); + renderPillar(matrices, queue, light, overlay, yaw, model, materials, crumblingOverlay); ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java index eb9f7250d5..9f1e6046a6 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BeaconScreenMixin.java @@ -36,11 +36,14 @@ public BeaconScreenMixin(BeaconScreenHandler handler, PlayerInventory inventory, super(handler, inventory, title); } - @Inject(method = "init", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/BeaconScreen;addButton(Lnet/minecraft/client/gui/widget/ClickableWidget;)V", ordinal = 1, shift = At.Shift.AFTER), cancellable = true) + @Inject(method = "init", at = @At(value = "INVOKE", target = "Ljava/util/List;clear()V", shift = At.Shift.AFTER), cancellable = true) private void changeButtons(CallbackInfo ci) { if (!Modules.get().get(BetterBeacons.class).isActive()) return; List> effects = BeaconBlockEntity.EFFECTS_BY_LEVEL.stream().flatMap(Collection::stream).toList(); if (MinecraftClient.getInstance().currentScreen instanceof BeaconScreen beaconScreen) { + addButton(beaconScreen.new DoneButtonWidget(this.x + 164, this.y + 107)); + addButton(beaconScreen.new CancelButtonWidget(this.x + 190, this.y + 107)); + for (int x = 0; x < 3; x++) { for (int y = 0; y < 2; y++) { RegistryEntry effect = effects.get(x * 2 + y); diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java index 243cc51f69..6641233904 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java @@ -191,7 +191,7 @@ private void updateTargetedEntityInvoke(float tickDelta, CallbackInfo info) { cameraE.setYaw(camera.getYaw()); cameraE.setPitch(camera.getPitch()); } else { - ((IVec3d) cameraE.getPos()).meteor$set(freecam.pos.x, freecam.pos.y - cameraE.getEyeHeight(cameraE.getPose()), freecam.pos.z); + ((IVec3d) cameraE.getEntityPos()).meteor$set(freecam.pos.x, freecam.pos.y - cameraE.getEyeHeight(cameraE.getPose()), freecam.pos.z); cameraE.lastX = freecam.prevPos.x; cameraE.lastY = freecam.prevPos.y - cameraE.getEyeHeight(cameraE.getPose()); cameraE.lastZ = freecam.prevPos.z; @@ -205,7 +205,7 @@ private void updateTargetedEntityInvoke(float tickDelta, CallbackInfo info) { updateCrosshairTarget(tickDelta); freecamSet = false; - ((IVec3d) cameraE.getPos()).meteor$set(x, y, z); + ((IVec3d) cameraE.getEntityPos()).meteor$set(x, y, z); cameraE.lastX = lastX; cameraE.lastY = lastY; cameraE.lastZ = lastZ; diff --git a/src/main/java/meteordevelopment/meteorclient/pathing/BaritonePathManager.java b/src/main/java/meteordevelopment/meteorclient/pathing/BaritonePathManager.java index 3fffe3720f..5a7ce7d4d1 100644 --- a/src/main/java/meteordevelopment/meteorclient/pathing/BaritonePathManager.java +++ b/src/main/java/meteordevelopment/meteorclient/pathing/BaritonePathManager.java @@ -12,7 +12,6 @@ import baritone.api.process.IBaritoneProcess; import baritone.api.process.PathingCommand; import baritone.api.process.PathingCommandType; -import baritone.api.utils.Rotation; import baritone.api.utils.SettingsUtil; import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.world.TickEvent; @@ -158,7 +157,7 @@ public void tick() { if (timer <= 0) { timer = 20; - Vec3d pos = mc.player.getPos(); + Vec3d pos = mc.player.getEntityPos(); float theta = (float) Math.toRadians(yaw); x = (int) Math.floor(pos.x - (double) MathHelper.sin(theta) * 100); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java index 610382aad7..fcd83dbdea 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java @@ -24,7 +24,7 @@ public class CompassHud extends HudElement { // General - private final Setting mode = sgGeneral.add(new EnumSetting.Builder() + private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("type") .description("Which type of direction information to show.") .defaultValue(Mode.Axis) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java index fd27e9500e..05bbed0e0b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java @@ -157,7 +157,7 @@ private void move(double velX, double velY, double velZ) { switch (moveType.get()) { case Velocity -> mc.player.setVelocity(velX, velY, velZ); case Packet -> { - Vec3d newPos = mc.player.getPos().add(velX, velY, velZ); + Vec3d newPos = mc.player.getEntityPos().add(velX, velY, velZ); mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(newPos.x, newPos.y, newPos.z, false, mc.player.horizontalCollision)); mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(newPos.x, newPos.y - 0.01, newPos.z, true, mc.player.horizontalCollision)); } @@ -165,7 +165,7 @@ private void move(double velX, double velY, double velZ) { } private boolean isValid(Vec3d velocity, boolean checkGround) { - Vec3d playerPos = mc.player.getPos().add(velocity); + Vec3d playerPos = mc.player.getEntityPos().add(velocity); Vec3d headPos = playerPos.add(0, 1, 0); for (Vector3d pos : points) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java index 6c9361cd32..0199240000 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java @@ -161,7 +161,7 @@ private void onTick(TickEvent.Pre event) { FindItemResult webs = InvUtils.findInHotbar(Items.COBWEB); if (!webs.found()) return; - Vec3d pos = target.getPos(); + Vec3d pos = target.getEntityPos(); // Prediction mode via target's movement delta if (predictMovement.get()) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java index a2d646d35e..5a2f769e84 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java @@ -698,7 +698,7 @@ private void onPreTick(TickEvent.Pre event) { } // Set player eye pos - ((IVec3d) playerEyePos).meteor$set(mc.player.getPos().x, mc.player.getPos().y + mc.player.getEyeHeight(mc.player.getPose()), mc.player.getPos().z); + ((IVec3d) playerEyePos).meteor$set(mc.player.getEntityPos().x, mc.player.getEntityPos().y + mc.player.getEyeHeight(mc.player.getPose()), mc.player.getEntityPos().z); // Find targets, break and place findTargets(); @@ -794,15 +794,15 @@ private float getBreakDamage(Entity entity, boolean checkCrystalAge) { if (checkCrystalAge && entity.age < ticksExisted.get()) return 0; // Check range - if (isOutOfRange(entity.getPos(), entity.getBlockPos(), false)) return 0; + if (isOutOfRange(entity.getEntityPos(), entity.getBlockPos(), false)) return 0; // Check damage to self and anti suicide blockPos.set(entity.getBlockPos()).move(0, -1, 0); - float selfDamage = DamageUtils.crystalDamage(mc.player, entity.getPos(), predictMovement.get(), blockPos); + float selfDamage = DamageUtils.crystalDamage(mc.player, entity.getEntityPos(), predictMovement.get(), blockPos); if (selfDamage > maxDamage.get() || (antiSuicide.get() && selfDamage >= EntityUtils.getTotalHealth(mc.player))) return 0; // Check damage to targets and face place - float damage = getDamageToTargets(entity.getPos(), blockPos, true, false); + float damage = getDamageToTargets(entity.getEntityPos(), blockPos, true, false); boolean shouldFacePlace = shouldFacePlace(); double minimumDamage = shouldFacePlace ? Math.min(minDamage.get(), 1.5d) : minDamage.get(); @@ -838,7 +838,7 @@ private void doBreak(Entity crystal) { double pitch = Rotations.getPitch(crystal, Target.Feet); if (doYawSteps(yaw, pitch)) { - setRotation(true, crystal.getPos(), 0, 0); + setRotation(true, crystal.getEntityPos(), 0, 0); Rotations.rotate(yaw, pitch, 50, () -> attackCrystal(crystal)); breakTimer = breakDelay.get(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java index 907b8e2347..25ea0b41cf 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java @@ -385,7 +385,7 @@ private boolean isOutOfRange(BlockPos blockPos) { } private boolean isCloseToHolePos(PlayerEntity target, BlockPos blockPos) { - Vec3d pos = target.getPos(); + Vec3d pos = target.getEntityPos(); // Prediction mode via target's movement delta if (predictMovement.get()) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java index 83f3766a9a..588af5b095 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java @@ -378,7 +378,7 @@ private boolean place(CardinalDirection direction, int y) { placePos.getX() + 1, placePos.getY() + 1, placePos.getZ() + 1 ); - Predicate entityPredicate = entity -> entity instanceof EndCrystalEntity && DamageUtils.crystalDamage(mc.player, entity.getPos()) < PlayerUtils.getTotalHealth(); + Predicate entityPredicate = entity -> entity instanceof EndCrystalEntity && DamageUtils.crystalDamage(mc.player, entity.getEntityPos()) < PlayerUtils.getTotalHealth(); for (Entity crystal : mc.world.getOtherEntities(null, box, entityPredicate)) { if (rotate.get()) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java index 65e0bde320..aee4004eef 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java @@ -216,7 +216,7 @@ private void onEntityAdded(EntityAddedEvent event) { } else { MutableText text = Text.literal(event.entity.getType().getName().getString()).formatted(Formatting.WHITE); text.append(Text.literal(" has spawned at ").formatted(Formatting.GRAY)); - text.append(formatCoords(event.entity.getPos())); + text.append(formatCoords(event.entity.getEntityPos())); text.append(Text.literal(".").formatted(Formatting.GRAY)); info(text); } @@ -240,7 +240,7 @@ private void onEntityRemoved(EntityRemovedEvent event) { } else { MutableText text = Text.literal(event.entity.getType().getName().getString()).formatted(Formatting.WHITE); text.append(Text.literal(" has despawned at ").formatted(Formatting.GRAY)); - text.append(formatCoords(event.entity.getPos())); + text.append(formatCoords(event.entity.getEntityPos())); text.append(Text.literal(".").formatted(Formatting.GRAY)); info(text); } @@ -252,7 +252,7 @@ private void onEntityRemoved(EntityRemovedEvent event) { if (pearlStartPosMap.containsKey(i)) { EnderPearlEntity pearl = (EnderPearlEntity) e; if (pearl.getOwner() != null && pearl.getOwner() instanceof PlayerEntity p) { - double d = pearlStartPosMap.get(i).distanceTo(e.getPos()); + double d = pearlStartPosMap.get(i).distanceTo(e.getEntityPos()); if ((!Friends.get().isFriend(p) || !pearlIgnoreFriends.get()) && (!p.equals(mc.player) || !pearlIgnoreOwn.get())) { info("(highlight)%s's(default) pearl landed at %d, %d, %d (highlight)(%.1fm away, travelled %.1fm)(default).", pearl.getOwner().getName().getString(), pearl.getBlockPos().getX(), pearl.getBlockPos().getY(), pearl.getBlockPos().getZ(), pearl.distanceTo(mc.player), d); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java index 8fe128a8e5..34921e0a4b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java @@ -162,7 +162,7 @@ private void onMove(PlayerMoveEvent event) { double xVel = 0, yVel = 0, zVel = 0; - Vec3d targetPos = target.getPos().add(offset.get().x, offset.get().y, offset.get().z); + Vec3d targetPos = target.getEntityPos().add(offset.get().x, offset.get().y, offset.get().z); if (predictMovement.get()) targetPos.add(PlayerEntity.adjustMovementForCollisions(target, target.getVelocity(), target.getBoundingBox(), mc.world, mc.world.getEntityCollisions(target, target.getBoundingBox().stretch(target.getVelocity())))); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java index e161c1028d..d5305d412e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java @@ -73,7 +73,7 @@ public void onActivate() { model.spawn(); } - Utils.set(start, mc.player.getPos()); + Utils.set(start, mc.player.getEntityPos()); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java index c6b900dc51..e9271a290c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java @@ -170,7 +170,7 @@ else if (mode.get() == Mode.Place) { if (anchor.get()) PlayerUtils.centerPlayer(); // Check if there is a block within 5 blocks - BlockHitResult result = mc.world.raycast(new RaycastContext(mc.player.getPos(), mc.player.getPos().subtract(0, 5, 0), RaycastContext.ShapeType.OUTLINE, RaycastContext.FluidHandling.NONE, mc.player)); + BlockHitResult result = mc.world.raycast(new RaycastContext(mc.player.getEntityPos(), mc.player.getEntityPos().subtract(0, 5, 0), RaycastContext.ShapeType.OUTLINE, RaycastContext.FluidHandling.NONE, mc.player)); // Place if (result != null && result.getType() == HitResult.Type.BLOCK) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java index d4a097bd33..d908103c99 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java @@ -96,7 +96,7 @@ private void onClipAtLedge(ClipAtLedgeEvent event) { } else { - BlockHitResult raycastResult = mc.world.raycast(new RaycastContext(mc.player.getPos(), new Vec3d(mc.player.getX(), mc.world.getBottomY(), mc.player.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.WATER, mc.player)); + BlockHitResult raycastResult = mc.world.raycast(new RaycastContext(mc.player.getEntityPos(), new Vec3d(mc.player.getX(), mc.world.getBottomY(), mc.player.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.WATER, mc.player)); if (raycastResult.getType() != HitResult.Type.MISS) { if ((int) (mc.player.getY() - raycastResult.getBlockPos().up().getY()) < fallDistance.get()) return; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java index 1427b9e01c..ad02674d0f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java @@ -190,11 +190,11 @@ public Scaffold() { private void onTick(TickEvent.Pre event) { if (onlyOnClick.get() && !mc.options.useKey.isPressed()) return; - Vec3d vec = mc.player.getPos().add(mc.player.getVelocity()).add(0, -0.75, 0); + Vec3d vec = mc.player.getEntityPos().add(mc.player.getVelocity()).add(0, -0.75, 0); if (airPlace.get()) { bp.set(vec.getX(), vec.getY(), vec.getZ()); } else { - Vec3d pos = mc.player.getPos(); + Vec3d pos = mc.player.getEntityPos(); if (aheadDistance.get() != 0 && !towering() && !mc.world.getBlockState(mc.player.getBlockPos().down()).getCollisionShape(mc.world, mc.player.getBlockPos()).isEmpty()) { Vec3d dir = Vec3d.fromPolar(0, mc.player.getYaw()).multiply(aheadDistance.get(), 0, aheadDistance.get()); if (mc.options.forwardKey.isPressed()) pos = pos.add(dir.x, 0, dir.z); @@ -213,7 +213,7 @@ private void onTick(TickEvent.Pre event) { BlockPos targetBlock = bp.toImmutable(); if (!airPlace.get() && (BlockUtils.getPlaceSide(bp) == null)) { - Vec3d pos = mc.player.getPos(); + Vec3d pos = mc.player.getEntityPos(); pos = pos.add(0, -0.98f, 0); pos.add(mc.player.getVelocity()); @@ -241,7 +241,7 @@ private void onTick(TickEvent.Pre event) { for (int x = (int) (bp.getX() - radius.get()); x <= bp.getX() + radius.get(); x++) { for (int z = (int) (bp.getZ() - radius.get()); z <= bp.getZ() + radius.get(); z++) { BlockPos blockPos = BlockPos.ofFloored(x, bp.getY(), z); - if (mc.player.getPos().distanceTo(Vec3d.ofCenter(blockPos)) <= radius.get() || (x == bp.getX() && z == bp.getZ())) { + if (mc.player.getEntityPos().distanceTo(Vec3d.ofCenter(blockPos)) <= radius.get() || (x == bp.getX() && z == bp.getZ())) { blocks.add(blockPos); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java index 7ddb44f8bb..6686830c48 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java @@ -96,7 +96,7 @@ private double getExplosionDamage() { OptionalDouble crystalDamage = Streams.stream(mc.world.getEntities()) .filter(entity -> entity instanceof EndCrystalEntity) .filter(Entity::isAlive) - .mapToDouble(entity -> DamageUtils.crystalDamage(mc.player, entity.getPos())) + .mapToDouble(entity -> DamageUtils.crystalDamage(mc.player, entity.getEntityPos())) .max(); return crystalDamage.orElse(0.0); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java index 9727a3e552..e63d84aa22 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java @@ -431,8 +431,8 @@ private void onPlayerMove(PlayerMoveEvent event) { } if (noCrash.get() && mc.player.isGliding() && flightMode.get() != ElytraFlightModes.Bounce) { - Vec3d lookAheadPos = mc.player.getPos().add(mc.player.getVelocity().normalize().multiply(crashLookAhead.get())); - RaycastContext raycastContext = new RaycastContext(mc.player.getPos(), new Vec3d(lookAheadPos.getX(), mc.player.getY(), lookAheadPos.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, mc.player); + Vec3d lookAheadPos = mc.player.getEntityPos().add(mc.player.getVelocity().normalize().multiply(crashLookAhead.get())); + RaycastContext raycastContext = new RaycastContext(mc.player.getEntityPos(), new Vec3d(lookAheadPos.getX(), mc.player.getY(), lookAheadPos.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.NONE, mc.player); BlockHitResult hitResult = mc.world.raycast(raycastContext); if (hitResult != null && hitResult.getType() == HitResult.Type.BLOCK) { ((IVec3d) event.movement).meteor$set(0, currentMode.velY, 0); @@ -459,7 +459,7 @@ private void onPlayerMove(PlayerMoveEvent event) { mc.player.setPitch(MathHelper.clamp(mc.player.getPitch(0), -50.f, 20.f)); - if (mc.player.getPos().y <= mc.player.getBlockPos().down().getY() + 1.34f) { + if (mc.player.getEntityPos().y <= mc.player.getBlockPos().down().getY() + 1.34f) { ((IVec3d)event.movement).meteor$set(event.movement.x, 0, event.movement.z); mc.player.setSneaking(false); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java index a5335b8d6c..67dbafdb66 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java @@ -23,7 +23,7 @@ public AutoRespawn() { private void onOpenScreenEvent(OpenScreenEvent event) { if (!(event.screen instanceof DeathScreen)) return; - Modules.get().get(WaypointsModule.class).addDeath(mc.player.getPos()); + Modules.get().get(WaypointsModule.class).addDeath(mc.player.getEntityPos()); mc.player.requestRespawn(); event.cancel(); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java index feaeb1e539..4d1d755d8e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java @@ -230,7 +230,7 @@ private boolean validHole(BlockPos pos) { @EventHandler private void onRender(Render3DEvent event) { - for (HoleESP.Hole hole : holes) hole.render(event.renderer, shapeMode.get(), height.get(), topQuad.get(), bottomQuad.get()); + for (Hole hole : holes) hole.render(event.renderer, shapeMode.get(), height.get(), topQuad.get(), bottomQuad.get()); } private static class Hole { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java index bca4882df9..470750abab 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java @@ -140,7 +140,7 @@ public boolean render(Render3DEvent event) { // Y Modifier lastRenderY = getY(); - ((IVec3d) getPos()).meteor$setY(getY() + yModifier.get() * event.frameTime); + ((IVec3d) getEntityPos()).meteor$setY(getY() + yModifier.get() * event.frameTime); // Scale Modifier scale += scaleModifier.get() * event.frameTime; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java index 752bc1dfa7..3499119b13 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java @@ -151,7 +151,7 @@ private void onRender2D(Render2DEvent event) { private void onOpenScreen(OpenScreenEvent event) { if (!(event.screen instanceof DeathScreen)) return; - if (!event.isCancelled()) addDeath(mc.player.getPos()); + if (!event.isCancelled()) addDeath(mc.player.getEntityPos()); } public void addDeath(Vec3d deathPos) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java index e8603f326b..4b4c2719a3 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java @@ -138,7 +138,7 @@ private void interact() { } else { if (ticks >= tickInterval.get() && !entity.isOnFire()) { mc.interactionManager.interactBlock(mc.player, hand, new BlockHitResult( - entity.getPos().subtract(new Vec3d(0, 1, 0)), Direction.UP, entity.getBlockPos().down(), false)); + entity.getEntityPos().subtract(new Vec3d(0, 1, 0)), Direction.UP, entity.getBlockPos().down(), false)); ticks = 0; } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java index 3673a48ecf..70e939765f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java @@ -488,7 +488,7 @@ public void onActivate() { setState(State.Center); lastBreakingPos.set(0, 0, 0); - start = mc.player.getPos(); + start = mc.player.getEntityPos(); blocksBroken = blocksPlaced = 0; displayInfo = true; suspended = false; @@ -764,7 +764,7 @@ private enum State { Center { @Override protected void start(HighwayBuilder b) { - if (b.mc.player.getPos().isInRange(Vec3d.ofBottomCenter(b.mc.player.getBlockPos()), 0.1)) { + if (b.mc.player.getEntityPos().isInRange(Vec3d.ofBottomCenter(b.mc.player.getBlockPos()), 0.1)) { stop(b); } } @@ -894,7 +894,7 @@ protected void start(HighwayBuilder b) { @Override protected void tick(HighwayBuilder b) { - Vec3d vec = b.mc.player.getPos().add(b.mc.player.getVelocity()).add(0, -0.75, 0); + Vec3d vec = b.mc.player.getEntityPos().add(b.mc.player.getVelocity()).add(0, -0.75, 0); pos.set(b.mc.player.getBlockX(), vec.y, b.mc.player.getBlockZ()); if (pos.getY() >= b.mc.player.getBlockPos().getY()) { @@ -1828,7 +1828,7 @@ private float aim(HighwayBuilder b, Entity target) { float velocity = BowItem.getPullProgress(b.mc.player.getItemUseTime()); // Positions - Vec3d pos = target.getPos(); + Vec3d pos = target.getEntityPos(); double relativeX = pos.x - b.mc.player.getX(); double relativeY = pos.y + 0.5 - b.mc.player.getEyeY(); // aiming a little bit above the bottom of the crystal, hopefully prevents shooting the floor or failing the raytrace check diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java index 2ac884d29f..8d067c8244 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java @@ -58,10 +58,10 @@ public class Nuker extends Module { .build() ); - private final Setting mode = sgGeneral.add(new EnumSetting.Builder() + private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") .description("The way the blocks are broken.") - .defaultValue(Nuker.Mode.Flatten) + .defaultValue(Mode.Flatten) .build() ); @@ -152,10 +152,10 @@ public class Nuker extends Module { .build() ); - private final Setting sortMode = sgGeneral.add(new EnumSetting.Builder() + private final Setting sortMode = sgGeneral.add(new EnumSetting.Builder() .name("sort-mode") .description("The blocks you want to mine first.") - .defaultValue(Nuker.SortMode.Closest) + .defaultValue(SortMode.Closest) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/entity/DamageUtils.java b/src/main/java/meteordevelopment/meteorclient/utils/entity/DamageUtils.java index 6a61d621ed..3c2dfba7df 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/entity/DamageUtils.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/entity/DamageUtils.java @@ -127,7 +127,7 @@ private static float explosionDamage(LivingEntity target, Vec3d explosionPos, fl if (target == null) return 0f; if (target instanceof PlayerEntity player && EntityUtils.getGameMode(player) == GameMode.CREATIVE && !(player instanceof FakePlayerEntity)) return 0f; - Vec3d position = predictMovement ? target.getPos().add(target.getVelocity()) : target.getPos(); + Vec3d position = predictMovement ? target.getEntityPos().add(target.getVelocity()) : target.getEntityPos(); Box box = target.getBoundingBox(); if (predictMovement) box = box.offset(target.getVelocity()); @@ -238,7 +238,7 @@ private static float modifyAttackDamage(LivingEntity attacker, Entity target, It // Fall Damage /** - * @see LivingEntity#computeFallDamage(float, float) + * @see LivingEntity#computeFallDamage(double, float) */ public static float fallDamage(LivingEntity entity) { if (entity instanceof PlayerEntity player && player.getAbilities().flying) return 0f; @@ -249,7 +249,7 @@ public static float fallDamage(LivingEntity entity) { if (entity.getBlockY() >= surface) return fallDamageReductions(entity, surface); // Under the surface - BlockHitResult raycastResult = mc.world.raycast(new RaycastContext(entity.getPos(), new Vec3d(entity.getX(), mc.world.getBottomY(), entity.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.WATER, entity)); + BlockHitResult raycastResult = mc.world.raycast(new RaycastContext(entity.getEntityPos(), new Vec3d(entity.getX(), mc.world.getBottomY(), entity.getZ()), RaycastContext.ShapeType.COLLIDER, RaycastContext.FluidHandling.WATER, entity)); if (raycastResult.getType() == HitResult.Type.MISS) return 0; return fallDamageReductions(entity, raycastResult.getBlockPos().getY()); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorStarscript.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorStarscript.java index 28ddcda44f..6402216b56 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorStarscript.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorStarscript.java @@ -543,7 +543,7 @@ private static Value baritoneDistanceToGoal() { private static Value posString(boolean opposite, boolean camera) { Vec3d pos; if (camera) pos = mc.gameRenderer.getCamera().getPos(); - else pos = mc.player != null ? mc.player.getPos() : Vec3d.ZERO; + else pos = mc.player != null ? mc.player.getEntityPos() : Vec3d.ZERO; double x = pos.x; double z = pos.z; diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/text/TextVisitor.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/text/TextVisitor.java index c1bf774d7f..a11cbf7ce1 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/text/TextVisitor.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/text/TextVisitor.java @@ -15,8 +15,8 @@ import java.util.Queue; /** - * An extension of {@link net.minecraft.text.StringVisitable.StyledVisitor} with access to the underlying {@link Text} objects. - * @param the optional short circuit return type, to match the semantics of {@link net.minecraft.text.StringVisitable.Visitor} and {@link net.minecraft.text.StringVisitable.StyledVisitor}. + * An extension of {@link StringVisitable.StyledVisitor} with access to the underlying {@link Text} objects. + * @param the optional short circuit return type, to match the semantics of {@link StringVisitable.Visitor} and {@link StringVisitable.StyledVisitor}. * @author Crosby */ @FunctionalInterface diff --git a/src/main/java/meteordevelopment/meteorclient/utils/player/PathFinder.java b/src/main/java/meteordevelopment/meteorclient/utils/player/PathFinder.java index 08fda11305..18b19821ef 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/player/PathFinder.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/player/PathFinder.java @@ -59,7 +59,7 @@ public boolean isAirAbove(BlockPos blockPos) { public Vec3d getNextStraightPos() { Vec3d nextPos = new Vec3d(mc.player.getX(), mc.player.getY(), mc.player.getZ()); double multiplier = 1.0; - while (nextPos == mc.player.getPos()) { + while (nextPos == mc.player.getEntityPos()) { nextPos = new Vec3d((int) (mc.player.getX() + multiplier * Math.cos(Math.toRadians(mc.player.getYaw()))), (int) (mc.player.getY()), (int) (mc.player.getZ() + multiplier * Math.sin(Math.toRadians(mc.player.getYaw())))); multiplier += .1; } @@ -68,9 +68,9 @@ public Vec3d getNextStraightPos() { public int getYawToTarget() { if (target == null || mc.player == null) return Integer.MAX_VALUE; - Vec3d tPos = target.getPos(); - Vec3d pPos = mc.player.getPos(); - int yaw = 0; + Vec3d tPos = target.getEntityPos(); + Vec3d pPos = mc.player.getEntityPos(); + int yaw; int direction = getDirection(); double tan = (tPos.z - pPos.z) / (tPos.x - pPos.x); if (direction == QUAD_1) @@ -83,8 +83,8 @@ else if (direction == QUAD_2) public int getDirection() { if (target == null || mc.player == null) return 0; - Vec3d targetPos = target.getPos(); - Vec3d playerPos = mc.player.getPos(); + Vec3d targetPos = target.getEntityPos(); + Vec3d playerPos = mc.player.getEntityPos(); if (targetPos.x == playerPos.x && targetPos.z > playerPos.z) return SOUTH; if (targetPos.x == playerPos.x && targetPos.z < playerPos.z) @@ -137,7 +137,7 @@ private void moveEventListener(PlayerMoveEvent event) { if (target != null && mc.player != null) { if (!PlayerUtils.isWithin(target, 3)) { if (currentPathBlock == null) currentPathBlock = getNextPathBlock(); - if (mc.player.getPos().squaredDistanceTo(new Vec3d(currentPathBlock.blockPos.getX(), currentPathBlock.blockPos.getY(), currentPathBlock.blockPos.getZ())) < .01) + if (mc.player.getEntityPos().squaredDistanceTo(new Vec3d(currentPathBlock.blockPos.getX(), currentPathBlock.blockPos.getY(), currentPathBlock.blockPos.getZ())) < .01) currentPathBlock = getNextPathBlock(); lookAtDestination(currentPathBlock); if (!mc.options.forwardKey.isPressed()) diff --git a/src/main/java/meteordevelopment/meteorclient/utils/player/PlayerUtils.java b/src/main/java/meteordevelopment/meteorclient/utils/player/PlayerUtils.java index 530111b04a..1b358080f2 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/player/PlayerUtils.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/player/PlayerUtils.java @@ -111,6 +111,7 @@ public static void centerPlayer() { mc.player.networkHandler.sendPacket(new PlayerMoveC2SPacket.PositionAndOnGround(mc.player.getX(), mc.player.getY(), mc.player.getZ(), mc.player.isOnGround(), mc.player.horizontalCollision)); } + @SuppressWarnings("DataFlowIssue") public static boolean canSeeEntity(Entity entity) { Vec3d vec1 = new Vec3d(0, 0, 0); Vec3d vec2 = new Vec3d(0, 0, 0); @@ -193,7 +194,7 @@ public static float possibleHealthReductions(boolean entities, boolean fall) { for (Entity entity : mc.world.getEntities()) { // Check for end crystals if (entity instanceof EndCrystalEntity) { - float crystalDamage = DamageUtils.crystalDamage(mc.player, entity.getPos()); + float crystalDamage = DamageUtils.crystalDamage(mc.player, entity.getEntityPos()); if (crystalDamage > damageTaken) damageTaken = crystalDamage; } // Check for players holding swords diff --git a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java index 27210c6bb4..83f2f73bc0 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/tooltip/BannerTooltipComponent.java @@ -5,7 +5,6 @@ package meteordevelopment.meteorclient.utils.tooltip; -import meteordevelopment.meteorclient.mixin.BlockEntityRenderManagerAccessor; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.tooltip.TooltipComponent; @@ -30,22 +29,21 @@ public class BannerTooltipComponent implements MeteorTooltipData, TooltipComponent { private final DyeColor color; private final BannerPatternsComponent patterns; - private final ModelPart bannerField; private final BannerFlagBlockModel bannerFlag; - // should only be used when the ItemStack is a banner + /** Should only be used when the ItemStack is a banner */ public BannerTooltipComponent(ItemStack banner) { this.color = ((BannerItem) banner.getItem()).getColor(); this.patterns = banner.getOrDefault(DataComponentTypes.BANNER_PATTERNS, BannerPatternsComponent.DEFAULT); - this.bannerField = mc.getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG).getChild("flag"); - this.bannerFlag = new BannerFlagBlockModel(bannerField); + ModelPart modelPart = mc.getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG); + this.bannerFlag = new BannerFlagBlockModel(modelPart); } public BannerTooltipComponent(DyeColor color, BannerPatternsComponent patterns) { this.color = color; this.patterns = patterns; - this.bannerField = mc.getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG).getChild("flag"); - this.bannerFlag = new BannerFlagBlockModel(bannerField); + ModelPart modelPart = mc.getLoadedEntityModels().getModelPart(EntityModelLayers.STANDING_BANNER_FLAG); + this.bannerFlag = new BannerFlagBlockModel(modelPart); } @Override @@ -67,8 +65,8 @@ public int getWidth(TextRenderer textRenderer) { public void drawItems(TextRenderer textRenderer, int x, int y, int width, int height, DrawContext context) { mc.gameRenderer.getDiffuseLighting().setShaderLights(DiffuseLighting.Type.ITEMS_FLAT); - bannerField.pitch = 0f; - bannerField.originY = -32f; + //bannerField.pitch = 0f; + //bannerField.originY = -32f; // the width and height provided to this method seem to be the dimensions of the entire tooltip, // not just this component @@ -83,24 +81,27 @@ public void drawItems(TextRenderer textRenderer, int x, int y, int width, int he float s = Math.min(width, height); matrices.scale(s * 0.75f, s * 0.75f, 1); - RenderDispatcher entityRenderDispatcher = mc.gameRenderer.getEntityRenderDispatcher(); - OrderedRenderCommandQueue renderCommandQueue = entityRenderDispatcher.getQueue(); + RenderDispatcher renderDispatcher = mc.gameRenderer.getEntityRenderDispatcher(); + OrderedRenderCommandQueue renderCommandQueue = renderDispatcher.getQueue(); BannerBlockEntityRenderer.renderCanvas( - ((BlockEntityRenderManagerAccessor) mc.getBlockEntityRenderDispatcher()).getSpriteHolder(), + mc.getAtlasManager(), matrices, renderCommandQueue, 15728880, OverlayTexture.DEFAULT_UV, bannerFlag, - null, + 0f, ModelBaker.BANNER_BASE, true, color, patterns, - null + false, + null, + 0 ); + renderDispatcher.render(); matrices.pop(); } } diff --git a/src/main/resources/meteor-client.accesswidener b/src/main/resources/meteor-client.accesswidener index 4b0b0b84bd..b99c07066d 100644 --- a/src/main/resources/meteor-client.accesswidener +++ b/src/main/resources/meteor-client.accesswidener @@ -11,6 +11,8 @@ accessible class net/minecraft/client/texture/MapTextureManager$MapTexture accessible field net/minecraft/client/texture/MapTextureManager$MapTexture texture Lnet/minecraft/client/texture/NativeImageBackedTexture; accessible class net/minecraft/client/gui/screen/ingame/BeaconScreen$EffectButtonWidget +accessible class net/minecraft/client/gui/screen/ingame/BeaconScreen$DoneButtonWidget +accessible class net/minecraft/client/gui/screen/ingame/BeaconScreen$CancelButtonWidget accessible class net/minecraft/client/resource/ResourceReloadLogger$ReloadState From eb8aa53ac8d76108107f69f25d21bde248a6e444 Mon Sep 17 00:00:00 2001 From: MineGame159 Date: Fri, 3 Oct 2025 17:11:56 +0200 Subject: [PATCH 11/20] Update to 1.21.9 --- gradle.properties | 6 +++--- .../systems/accounts/types/TheAlteningAccount.java | 2 +- .../meteorclient/systems/modules/movement/Velocity.java | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle.properties b/gradle.properties index 77e728d0c4..537100640b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=1.21.9-pre4 -yarn_mappings=1.21.9-pre4+build.2 +minecraft_version=1.21.9 +yarn_mappings=1.21.9+build.1 loader_version=0.17.2 -fapi_version=0.133.11+1.21.9 +fapi_version=0.134.0+1.21.9 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java index 48fec20cd4..950ed0af48 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/accounts/types/TheAlteningAccount.java @@ -23,7 +23,7 @@ import static meteordevelopment.meteorclient.MeteorClient.mc; public class TheAlteningAccount extends Account implements TokenAccount { - private static final Environment ENVIRONMENT = new Environment("http://sessionserver.thealtening.com", "http://authserver.thealtening.com", "The Altening"); + private static final Environment ENVIRONMENT = new Environment("http://sessionserver.thealtening.com", "http://authserver.thealtening.com", "https://api.mojang.com", "The Altening"); private static final YggdrasilAuthenticationService SERVICE = new YggdrasilAuthenticationService(mc.getNetworkProxy(), ENVIRONMENT); private String token; private @Nullable WaybackAuthLib auth; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java index 2972f075c7..8a682caabc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java @@ -152,9 +152,9 @@ private void onTick(TickEvent.Post event) { private void onPacketReceive(PacketEvent.Receive event) { if (knockback.get() && event.packet instanceof EntityVelocityUpdateS2CPacket packet && packet.getEntityId() == mc.player.getId()) { - double velX = (packet.method_73085().getX() - mc.player.getVelocity().x) * knockbackHorizontal.get(); - double velY = (packet.method_73085().getY() - mc.player.getVelocity().y) * knockbackVertical.get(); - double velZ = (packet.method_73085().getZ() - mc.player.getVelocity().z) * knockbackHorizontal.get(); + double velX = (packet.getVelocity().getX() - mc.player.getVelocity().x) * knockbackHorizontal.get(); + double velY = (packet.getVelocity().getY() - mc.player.getVelocity().y) * knockbackVertical.get(); + double velZ = (packet.getVelocity().getZ() - mc.player.getVelocity().z) * knockbackHorizontal.get(); ((EntityVelocityUpdateS2CPacketAccessor) packet).meteor$setVelocity( new Vec3d(velX * 8000 + mc.player.getVelocity().x * 8000, velY * 8000 + mc.player.getVelocity().y * 8000, velZ * 8000 + mc.player.getVelocity().z * 8000) ); From 9d6907e70212dd39dea8b6cf44255be3d957ec45 Mon Sep 17 00:00:00 2001 From: MineGame159 Date: Fri, 3 Oct 2025 17:36:59 +0200 Subject: [PATCH 12/20] Some small fixes --- .../mixin/DefaultSkinHelperMixin.java | 23 ------------------- ...chantingTableBlockEntityRendererMixin.java | 4 ++-- .../mixin/EndCrystalEntityRendererMixin.java | 9 +++++--- .../mixin/LivingEntityRendererMixin.java | 2 +- .../MobSpawnerBlockEntityRendererMixin.java | 4 ++-- .../utils/render/SimpleBlockRenderer.java | 7 +++--- src/main/resources/meteor-client.mixins.json | 1 - 7 files changed, 14 insertions(+), 36 deletions(-) delete mode 100644 src/main/java/meteordevelopment/meteorclient/mixin/DefaultSkinHelperMixin.java diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/DefaultSkinHelperMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/DefaultSkinHelperMixin.java deleted file mode 100644 index 22c5e91ef2..0000000000 --- a/src/main/java/meteordevelopment/meteorclient/mixin/DefaultSkinHelperMixin.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). - * Copyright (c) Meteor Development. - */ - -package meteordevelopment.meteorclient.mixin; - -import net.minecraft.client.util.DefaultSkinHelper; -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.CallbackInfoReturnable; - -import java.util.UUID; - -@Mixin(DefaultSkinHelper.class) -public abstract class DefaultSkinHelperMixin { - // Player model rendering in main menu - @Inject(method = "getSkinTextures(Ljava/util/UUID;)Lnet/minecraft/client/util/SkinTextures;", at = @At("HEAD"), cancellable = true) - private static void onShouldUseSlimModel(UUID uuid, CallbackInfoReturnable info) { - if (uuid == null) info.setReturnValue(false); - } -} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java index f01e6a9bc7..dd09a45147 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EnchantingTableBlockEntityRendererMixin.java @@ -20,8 +20,8 @@ @Mixin(EnchantingTableBlockEntityRenderer.class) public abstract class EnchantingTableBlockEntityRendererMixin { - @WrapWithCondition(method = "render(Lnet/minecraft/block/entity/EnchantingTableBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;IILnet/minecraft/util/math/Vec3d;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) - private boolean onRenderBookModelRenderProxy(OrderedRenderCommandQueue instance, Model model, Object o, MatrixStack matrixStack, RenderLayer renderLayer, int i, int j, int k, Sprite sprite, int l, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { + @WrapWithCondition(method = "render(Lnet/minecraft/client/render/block/entity/state/EnchantingTableBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) + private boolean onRenderBookModelRenderProxy(OrderedRenderCommandQueue instance, Model model, S state, MatrixStack matrixStack, RenderLayer renderLayer, int i, int j, int k, Sprite sprite, int l, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { return !Modules.get().get(NoRender.class).noEnchTableBook(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java index 5be7a80469..08aa2cb5e6 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EndCrystalEntityRendererMixin.java @@ -63,9 +63,10 @@ private void onInit(CallbackInfo info) { // Chams - Color @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/EndCrystalEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) - private boolean render$color(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { + private boolean render$color(OrderedRenderCommandQueue instance, Model model, S state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int uv, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (chams.isActive() && chams.crystals.get()) { - instance.submitModel(model, + instance.submitModel( + model, state, matrixStack, END_CRYSTAL, @@ -74,7 +75,9 @@ private void onInit(CallbackInfo info) { chams.crystalsColor.get().getPacked(), null, outlineColor, - null); + null + ); + return false; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java index 4ea46c1a6a..da413cd711 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LivingEntityRendererMixin.java @@ -66,7 +66,7 @@ private Team hasLabelClientPlayerEntityGetScoreboardTeamProxy(Team team) { // Chams - player color @WrapWithCondition(method = "render(Lnet/minecraft/client/render/entity/state/LivingEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V")) - private boolean render$render(OrderedRenderCommandQueue instance, Model model, Object state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { + private boolean render$render(OrderedRenderCommandQueue instance, Model model, TState state, MatrixStack matrixStack, RenderLayer renderLayer, int light, int overlay, int mixColor, Sprite sprite, int outlineColor, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlayCommand) { if (!chams.isActive() || !chams.players.get() || !(((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player)) return true; if (chams.ignoreSelf.get() && player == mc.player) return true; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java index 01adef9cc3..ef841ae845 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MobSpawnerBlockEntityRendererMixin.java @@ -18,8 +18,8 @@ @Mixin(MobSpawnerBlockEntityRenderer.class) public abstract class MobSpawnerBlockEntityRendererMixin implements BlockEntityRenderer { - @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/MobSpawnerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;)V", at = @At("HEAD"), cancellable = true) - private void onRender(CallbackInfo ci) { + @Inject(method = "renderDisplayEntity", at = @At("HEAD"), cancellable = true) + private static void onRenderDisplayEntity(CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMobInSpawner()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index 1eee522ca1..7b71fe6517 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -17,7 +17,6 @@ import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BlockModelPart; import net.minecraft.client.render.model.BlockStateModel; -import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; @@ -44,9 +43,9 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt BlockEntityRenderer renderer = mc.getBlockEntityRenderDispatcher().get(blockEntity); if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { - BlockEntityRenderState c = new BlockEntityRenderState(); - BlockEntityRenderState.updateBlockEntityRenderState(blockEntity, c, null); - renderer.render(c, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue(), new CameraRenderState()); + BlockEntityRenderState state = renderer.createRenderState(); + renderer.updateRenderState(blockEntity, state, tickDelta, mc.gameRenderer.getCamera().getPos(), null); + renderer.render(state, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue(), mc.gameRenderer.getEntityRenderStates().cameraRenderState); } vertexConsumerProvider.setOffset(0, 0, 0); diff --git a/src/main/resources/meteor-client.mixins.json b/src/main/resources/meteor-client.mixins.json index e1bd2370a3..3553b0bd9f 100644 --- a/src/main/resources/meteor-client.mixins.json +++ b/src/main/resources/meteor-client.mixins.json @@ -69,7 +69,6 @@ "CreativeInventoryScreenAccessor", "CreativeSlotMixin", "CrossbowItemAccessor", - "DefaultSkinHelperMixin", "DirectionAccessor", "DisconnectedScreenMixin", "DrawContextMixin", From 6444bd49416e9dc40b9a27197da2fe02e99bca2d Mon Sep 17 00:00:00 2001 From: MineGame159 Date: Fri, 3 Oct 2025 18:07:12 +0200 Subject: [PATCH 13/20] Fix SimpleBlockRenderer and WireframeEntityRenderer --- .../NoopImmediateVertexConsumerProvider.java | 31 ++++++++ .../NoopOutlineVertexConsumerProvider.java | 26 +++++++ .../utils/render/NoopVertexConsumer.java | 45 ++++++++++++ .../utils/render/SimpleBlockRenderer.java | 44 ++++++++++- .../utils/render/WireframeEntityRenderer.java | 73 ++++++++----------- 5 files changed, 177 insertions(+), 42 deletions(-) create mode 100644 src/main/java/meteordevelopment/meteorclient/utils/render/NoopImmediateVertexConsumerProvider.java create mode 100644 src/main/java/meteordevelopment/meteorclient/utils/render/NoopOutlineVertexConsumerProvider.java create mode 100644 src/main/java/meteordevelopment/meteorclient/utils/render/NoopVertexConsumer.java diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/NoopImmediateVertexConsumerProvider.java b/src/main/java/meteordevelopment/meteorclient/utils/render/NoopImmediateVertexConsumerProvider.java new file mode 100644 index 0000000000..43f7acaaac --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/NoopImmediateVertexConsumerProvider.java @@ -0,0 +1,31 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.utils.render; + +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.VertexConsumerProvider; + +public class NoopImmediateVertexConsumerProvider extends VertexConsumerProvider.Immediate { + public static final NoopImmediateVertexConsumerProvider INSTANCE = new NoopImmediateVertexConsumerProvider(); + + private NoopImmediateVertexConsumerProvider() { + super(null, null); + } + + @Override + public VertexConsumer getBuffer(RenderLayer layer) { + return NoopVertexConsumer.INSTANCE; + } + + @Override + public void draw() { + } + + @Override + public void draw(RenderLayer layer) { + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/NoopOutlineVertexConsumerProvider.java b/src/main/java/meteordevelopment/meteorclient/utils/render/NoopOutlineVertexConsumerProvider.java new file mode 100644 index 0000000000..f32cb991fc --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/NoopOutlineVertexConsumerProvider.java @@ -0,0 +1,26 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.utils.render; + +import net.minecraft.client.render.OutlineVertexConsumerProvider; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumer; + +public class NoopOutlineVertexConsumerProvider extends OutlineVertexConsumerProvider { + public static final NoopOutlineVertexConsumerProvider INSTANCE = new NoopOutlineVertexConsumerProvider(); + + private NoopOutlineVertexConsumerProvider() { + } + + @Override + public VertexConsumer getBuffer(RenderLayer layer) { + return NoopVertexConsumer.INSTANCE; + } + + @Override + public void draw() { + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/NoopVertexConsumer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/NoopVertexConsumer.java new file mode 100644 index 0000000000..9bc07c961d --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/NoopVertexConsumer.java @@ -0,0 +1,45 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.utils.render; + +import net.minecraft.client.render.VertexConsumer; + +public class NoopVertexConsumer implements VertexConsumer { + public static final NoopVertexConsumer INSTANCE = new NoopVertexConsumer(); + + private NoopVertexConsumer() { + } + + @Override + public VertexConsumer vertex(float x, float y, float z) { + return this; + } + + @Override + public VertexConsumer color(int red, int green, int blue, int alpha) { + return this; + } + + @Override + public VertexConsumer texture(float u, float v) { + return this; + } + + @Override + public VertexConsumer overlay(int u, int v) { + return this; + } + + @Override + public VertexConsumer light(int u, int v) { + return this; + } + + @Override + public VertexConsumer normal(float x, float y, float z) { + return this; + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java index 7b71fe6517..3ad71bc905 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/SimpleBlockRenderer.java @@ -14,6 +14,8 @@ import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.state.BlockEntityRenderState; +import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl; +import net.minecraft.client.render.command.RenderDispatcher; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.BlockModelPart; import net.minecraft.client.render.model.BlockStateModel; @@ -34,6 +36,20 @@ public abstract class SimpleBlockRenderer { private static final Direction[] DIRECTIONS = Direction.values(); private static final Random RANDOM = Random.create(); + private static final OrderedRenderCommandQueueImpl renderCommandQueue = new OrderedRenderCommandQueueImpl(); + + private static final RenderDispatcher renderDispatcher = new RenderDispatcher( + renderCommandQueue, + mc.getBlockRenderManager(), + new WrapperImmediateVertexConsumerProvider(), + mc.getAtlasManager(), + NoopOutlineVertexConsumerProvider.INSTANCE, + NoopImmediateVertexConsumerProvider.INSTANCE, + mc.textRenderer + ); + + private static VertexConsumerProvider provider; + private SimpleBlockRenderer() {} public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelta, IVertexConsumerProvider vertexConsumerProvider) { @@ -43,9 +59,16 @@ public static void renderWithBlockEntity(BlockEntity blockEntity, float tickDelt BlockEntityRenderer renderer = mc.getBlockEntityRenderDispatcher().get(blockEntity); if (renderer != null && blockEntity.hasWorld() && blockEntity.getType().supports(blockEntity.getCachedState())) { + SimpleBlockRenderer.provider = vertexConsumerProvider; + BlockEntityRenderState state = renderer.createRenderState(); renderer.updateRenderState(blockEntity, state, tickDelta, mc.gameRenderer.getCamera().getPos(), null); - renderer.render(state, MATRICES, mc.gameRenderer.getEntityRenderDispatcher().getQueue(), mc.gameRenderer.getEntityRenderStates().cameraRenderState); + renderer.render(state, MATRICES, renderCommandQueue, mc.gameRenderer.getEntityRenderStates().cameraRenderState); + + renderDispatcher.render(); + renderCommandQueue.onNextFrame(); + + SimpleBlockRenderer.provider = null; } vertexConsumerProvider.setOffset(0, 0, 0); @@ -90,4 +113,23 @@ private static void renderQuads(List quads, float offsetX, float offs } } } + + private static class WrapperImmediateVertexConsumerProvider extends VertexConsumerProvider.Immediate { + private WrapperImmediateVertexConsumerProvider() { + super(null, null); + } + + @Override + public VertexConsumer getBuffer(RenderLayer layer) { + return provider.getBuffer(layer); + } + + @Override + public void draw() { + } + + @Override + public void draw(RenderLayer layer) { + } + } } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java index 571af5470a..dfff80a137 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/WireframeEntityRenderer.java @@ -16,11 +16,10 @@ import net.minecraft.client.render.RenderPhase; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.command.OrderedRenderCommandQueue; import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl; +import net.minecraft.client.render.command.RenderDispatcher; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.state.EntityRenderState; -import net.minecraft.client.render.state.CameraRenderState; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; @@ -32,7 +31,18 @@ public class WireframeEntityRenderer { private static final MatrixStack matrices = new MatrixStack(); private static Renderer3D renderer; - private static final OrderedRenderCommandQueue entityRenderCommandQueue = new OrderedRenderCommandQueueImpl(); + + private static final OrderedRenderCommandQueueImpl renderCommandQueue = new OrderedRenderCommandQueueImpl(); + + private static final RenderDispatcher renderDispatcher = new RenderDispatcher( + renderCommandQueue, + mc.getBlockRenderManager(), + MyVertexConsumerProvider.INSTANCE, + mc.getAtlasManager(), + NoopOutlineVertexConsumerProvider.INSTANCE, + NoopImmediateVertexConsumerProvider.INSTANCE, + mc.textRenderer + ); private static Color sideColor; private static Color lineColor; @@ -68,16 +78,21 @@ public static void render(Render3DEvent event, Entity entity, double scale, Colo matrices.push(); matrices.scale((float) scale, (float) scale, (float) scale); - renderer.render(state, matrices, entityRenderCommandQueue, new CameraRenderState()); - // todo this just adds the entities to a list, we need to actually render them somewhere by calling - // net.minecraft.class_11688.method_73012 + renderer.render(state, matrices, renderCommandQueue, mc.gameRenderer.getEntityRenderStates().cameraRenderState); matrices.pop(); + + renderDispatcher.render(); + renderCommandQueue.onNextFrame(); } - private static class MyVertexConsumerProvider implements VertexConsumerProvider { + private static class MyVertexConsumerProvider extends VertexConsumerProvider.Immediate { public static final MyVertexConsumerProvider INSTANCE = new MyVertexConsumerProvider(); private final Object2ObjectOpenHashMap buffers = new Object2ObjectOpenHashMap<>(); + protected MyVertexConsumerProvider() { + super(null, null); + } + @Override public VertexConsumer getBuffer(RenderLayer layer) { //noinspection ConstantValue @@ -94,6 +109,16 @@ public VertexConsumer getBuffer(RenderLayer layer) { return vertexConsumer; } + + @Override + public void draw() { + throw new RuntimeException(); + } + + @Override + public void draw(RenderLayer layer) { + throw new RuntimeException(); + } } private static class MyVertexConsumer implements VertexConsumer { @@ -153,38 +178,4 @@ public VertexConsumer normal(float x, float y, float z) { return this; } } - - private static class NoopVertexConsumer implements VertexConsumer { - private static final NoopVertexConsumer INSTANCE = new NoopVertexConsumer(); - - @Override - public VertexConsumer vertex(float x, float y, float z) { - return this; - } - - @Override - public VertexConsumer color(int red, int green, int blue, int alpha) { - return this; - } - - @Override - public VertexConsumer texture(float u, float v) { - return this; - } - - @Override - public VertexConsumer overlay(int u, int v) { - return this; - } - - @Override - public VertexConsumer light(int u, int v) { - return this; - } - - @Override - public VertexConsumer normal(float x, float y, float z) { - return this; - } - } } From 710d470d264d0c7aa798f42a3dc9221471e9d13c Mon Sep 17 00:00:00 2001 From: MineGame159 Date: Fri, 3 Oct 2025 18:40:17 +0200 Subject: [PATCH 14/20] More stuff from #5724 --- build.gradle.kts | 2 +- gradle.properties | 8 ++--- ...xin.java => EntityRenderManagerMixin.java} | 29 +++++++------------ .../mixin/EntityRendererMixin.java | 17 +++++++++++ ...RendererImplDefaultRenderContextMixin.java | 4 +-- .../mixininterface/IEntityRenderState.java | 4 +-- .../accounts/types/TheAlteningAccount.java | 2 +- src/main/resources/fabric.mod.json | 4 +-- src/main/resources/meteor-client.mixins.json | 2 +- 9 files changed, 40 insertions(+), 32 deletions(-) rename src/main/java/meteordevelopment/meteorclient/mixin/{EntityRenderDispatcherMixin.java => EntityRenderManagerMixin.java} (65%) diff --git a/build.gradle.kts b/build.gradle.kts index e8377b39f6..455808b036 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("fabric-loom") version "1.11-SNAPSHOT" id("maven-publish") - id("com.gradleup.shadow") version "9.0.0-beta11" + id("com.gradleup.shadow") version "9.2.2" } base { diff --git a/gradle.properties b/gradle.properties index 537100640b..5acbed7af1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,16 +17,16 @@ archives_base_name=meteor-client baritone_version=1.21.5 # Sodium (https://github.com/CaffeineMC/sodium-fabric) -sodium_version=mc1.21.6-0.6.13-fabric +sodium_version=mc1.21.9-0.7.0-fabric # Lithium (https://github.com/CaffeineMC/lithium-fabric) -lithium_version=mc1.21.6-0.17.0-fabric +lithium_version=mc1.21.9-0.19.0-fabric # Iris (https://github.com/IrisShaders/Iris) iris_version=1.9.0+1.21.6-fabric # ModMenu (https://github.com/TerraformersMC/ModMenu) -modmenu_version=15.0.0-beta.3 +modmenu_version=15.0.0 # Orbit (https://github.com/MeteorDevelopment/orbit) orbit_version=0.2.4 @@ -44,7 +44,7 @@ reflections_version=0.10.2 netty_version=4.1.118.Final # ViaFabricPlus (https://github.com/ViaVersion/ViaFabricPlus) -viafabricplus_version=4.1.5 +viafabricplus_version=4.2.4 # WaybackAuthLib (https://github.com/FlorianMichael/WaybackAuthLib) waybackauthlib_version=1.0.1 diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderManagerMixin.java similarity index 65% rename from src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java rename to src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderManagerMixin.java index 23ef96a7f9..85e2980d84 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderDispatcherMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRenderManagerMixin.java @@ -5,17 +5,18 @@ package meteordevelopment.meteorclient.mixin; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import meteordevelopment.meteorclient.mixininterface.IEntityRenderState; import net.minecraft.client.render.Camera; import net.minecraft.client.render.entity.EntityRenderManager; +import net.minecraft.client.render.entity.state.EntityRenderState; import net.minecraft.entity.Entity; 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(EntityRenderManager.class) -public abstract class EntityRenderDispatcherMixin { +public abstract class EntityRenderManagerMixin { @Shadow public Camera camera; @@ -58,26 +59,16 @@ private void render(E entity, do v += 1; matrices.scale((float) v, (float) v, (float) v); } + */ // IEntityRenderState - @ModifyExpressionValue(method = "render(Lnet/minecraft/entity/Entity;DDDFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/EntityRenderer;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/EntityRenderer;getAndUpdateRenderState(Lnet/minecraft/entity/Entity;F)Lnet/minecraft/client/render/entity/state/EntityRenderState;")) - private S render$getAndUpdateRenderState(S state, E entity, double x, double y, double z, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, EntityRenderer renderer) { + @ModifyExpressionValue( + method = "getAndUpdateRenderState(Lnet/minecraft/entity/Entity;F)Lnet/minecraft/client/render/entity/state/EntityRenderState;", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/EntityRenderer;getAndUpdateRenderState(Lnet/minecraft/entity/Entity;F)Lnet/minecraft/client/render/entity/state/EntityRenderState;") + ) + private EntityRenderState getAndUpdateRenderState$setEntity(EntityRenderState state, E entity, float tickProgress) { ((IEntityRenderState) state).meteor$setEntity(entity); return state; } - - // Player model rendering in main menu - - @Inject(method = "renderShadow", at = @At("HEAD"), cancellable = true) - private static void onRenderShadow(MatrixStack matrices, VertexConsumerProvider vertexConsumers, EntityRenderState renderState, float opacity, WorldView world, float radius, CallbackInfo info) { - if (PostProcessShaders.rendering) info.cancel(); - if (Modules.get().get(NoRender.class).noDeadEntities() && renderState instanceof LivingEntityRenderState livingEntityRenderState && livingEntityRenderState.deathTime > 0) info.cancel(); - } - */ - - @Inject(method = "getSquaredDistanceToCamera(Lnet/minecraft/entity/Entity;)D", at = @At("HEAD"), cancellable = true) - private void onGetSquaredDistanceToCameraEntity(Entity entity, CallbackInfoReturnable info) { - if (camera == null) info.setReturnValue(0.0); - } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java index 3d7f7ee5f1..74dc547380 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/EntityRendererMixin.java @@ -18,8 +18,10 @@ import net.minecraft.client.render.Frustum; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.state.EntityRenderState; +import net.minecraft.client.render.entity.state.LivingEntityRenderState; import net.minecraft.entity.Entity; import net.minecraft.entity.FallingBlockEntity; +import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.text.Text; import net.minecraft.world.LightType; @@ -74,6 +76,21 @@ private void onGetOutlineColor(T entity, S state, float tickProgress, CallbackIn } } + @Inject(method = "updateShadow(Lnet/minecraft/entity/Entity;Lnet/minecraft/client/render/entity/state/EntityRenderState;)V", at = @At("HEAD"), cancellable = true) + private void updateShadow(Entity entity, EntityRenderState renderState, CallbackInfo ci) { + if (PostProcessShaders.rendering) { + ci.cancel(); + return; + } + + if (Modules.get().get(NoRender.class).noDeadEntities() && + entity instanceof LivingEntity && + renderState instanceof LivingEntityRenderState livingEntityRenderState && + livingEntityRenderState.deathTime > 0) { + ci.cancel(); + } + } + @Unique private ESP getESP() { if (esp == null) { diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumFluidRendererImplDefaultRenderContextMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumFluidRendererImplDefaultRenderContextMixin.java index 539821df1e..93f0fbde01 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumFluidRendererImplDefaultRenderContextMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/sodium/SodiumFluidRendererImplDefaultRenderContextMixin.java @@ -43,8 +43,8 @@ private void onGetColorProvider(Fluid fluid, CallbackInfoReturnable=21", - "minecraft": ["${minecraft_version}", "1.21.7", "1.21.6"], + "minecraft": ["${minecraft_version}"], "fabricloader": ">=${loader_version}" }, "breaks": { "optifabric": "*", "feather": "*", "origins": "*", - "sodium": "<0.6.12", + "sodium": "<0.7.0", "morechathistory": "*" } } diff --git a/src/main/resources/meteor-client.mixins.json b/src/main/resources/meteor-client.mixins.json index 3553b0bd9f..caf6b43765 100644 --- a/src/main/resources/meteor-client.mixins.json +++ b/src/main/resources/meteor-client.mixins.json @@ -79,7 +79,7 @@ "EntityAccessor", "EntityBucketItemAccessor", "EntityMixin", - "EntityRenderDispatcherMixin", + "EntityRenderManagerMixin", "EntityRendererMixin", "EntityRenderStateMixin", "EntityTrackingSectionAccessor", From 329081fe31696b2ad157ef5dacd2d1e4a778e78d Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Sun, 5 Oct 2025 12:52:17 +0100 Subject: [PATCH 15/20] assorted code cleanup and bug fixes --- .../meteorclient/commands/commands/InputCommand.java | 4 ++-- .../commands/commands/SpectateCommand.java | 10 ++++++++++ .../meteorclient/gui/WidgetScreen.java | 5 ++--- .../meteorclient/mixin/CapeFeatureRendererMixin.java | 2 +- .../meteorclient/mixin/HandledScreenMixin.java | 2 +- .../meteorclient/mixin/KeyboardMixin.java | 2 +- .../meteorclient/mixin/MapRendererMixin.java | 2 +- .../meteorclient/mixin/MultiplayerScreenMixin.java | 7 +++++-- .../meteorclient/mixin/TitleScreenMixin.java | 2 +- .../systems/hud/screens/HudEditorScreen.java | 2 +- .../meteorclient/utils/misc/input/Input.java | 2 +- .../meteorclient/utils/network/Capes.java | 2 +- .../meteorclient/utils/render/PeekScreen.java | 2 +- 13 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java index 323785bbe7..e453767910 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java @@ -67,7 +67,7 @@ public void build(LiteralArgumentBuilder builder) { } for (KeyBinding keyBinding : mc.options.hotbarKeys) { - builder.then(literal(keyBinding.getBoundKeyTranslationKey().substring(4)) + builder.then(literal(keyBinding.getId().substring(4)) .executes(context -> { press(keyBinding); return SINGLE_SUCCESS; @@ -91,7 +91,7 @@ public void build(LiteralArgumentBuilder builder) { info("Active keypress handlers: "); for (int i = 0; i < activeHandlers.size(); i++) { KeypressHandler handler = activeHandlers.get(i); - info("(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", i, I18n.translate(handler.key.getBoundKeyTranslationKey()), handler.ticks, handler.totalTicks); + info("(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", i, I18n.translate(handler.key.getId()), handler.ticks, handler.totalTicks); } } return SINGLE_SUCCESS; diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java index 401e227ec8..84ac66671b 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java @@ -10,6 +10,7 @@ import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.commands.arguments.PlayerArgumentType; import meteordevelopment.meteorclient.events.meteor.KeyEvent; +import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.orbit.EventHandler; import net.minecraft.command.CommandSource; @@ -47,5 +48,14 @@ private void onKey(KeyEvent event) { MeteorClient.EVENT_BUS.unsubscribe(this); } } + + @EventHandler + private void onMouse(MouseButtonEvent event) { + if (Input.isPressed(mc.options.sneakKey)) { + mc.setCameraEntity(mc.player); + event.cancel(); + MeteorClient.EVENT_BUS.unsubscribe(this); + } + } } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java index 64608d17fc..0ea3c98cf4 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/WidgetScreen.java @@ -118,8 +118,7 @@ public void onClosed(Runnable action) { } @Override - // todo rename bl when appropriate - public boolean mouseClicked(Click arg, boolean bl) { + public boolean mouseClicked(Click arg, boolean doubled) { if (locked) return false; double mouseX = arg.x(); @@ -129,7 +128,7 @@ public boolean mouseClicked(Click arg, boolean bl) { mouseX *= s; mouseY *= s; - return root.mouseClicked(mouseX, mouseY, arg.button(), bl); + return root.mouseClicked(mouseX, mouseY, arg.button(), doubled); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java index 92e488d0aa..7d3b482c15 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CapeFeatureRendererMixin.java @@ -24,7 +24,7 @@ public abstract class CapeFeatureRendererMixin { private AssetInfo.TextureAsset modifyCapeTexture(AssetInfo.TextureAsset original, MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int i, PlayerEntityRenderState state, float f, float g) { if (((IEntityRenderState) state).meteor$getEntity() instanceof PlayerEntity player) { Identifier id = Capes.get(player); - return id == null ? original : new AssetInfo.TextureAssetInfo(id); + return id == null ? original : new AssetInfo.TextureAssetInfo(id, id); } return original; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java index 86c3d2b6dd..3b7ad9ff59 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/HandledScreenMixin.java @@ -102,7 +102,7 @@ private void onMouseDragged(Click arg, double d, double e, CallbackInfoReturnabl // Middle click open @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void mouseClicked(Click arg, boolean bl, CallbackInfoReturnable cir) { + private void mouseClicked(Click arg, boolean doubled, CallbackInfoReturnable cir) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && getScreenHandler().getCursorStack().isEmpty() && tooltips.middleClickOpen()) { diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java index 242503648a..d9c562a353 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java @@ -30,7 +30,7 @@ public abstract class KeyboardMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "onKey", at = @At("HEAD"), cancellable = true) - public void onKey(long window, int action, KeyInput arg, CallbackInfo ci) { // todo verify this is correct when they update the mappings + public void onKey(long window, int action, KeyInput arg, CallbackInfo ci) { int modifiers = arg.modifiers(); if (arg.key() != GLFW.GLFW_KEY_UNKNOWN) { // on Linux/X11 the modifier is not active when the key is pressed and still active when the key is released diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java index 551b29c6dd..9a50e5e51b 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MapRendererMixin.java @@ -28,7 +28,7 @@ private List getIconsProxy(List original) { } @Inject(method = "draw", at = @At("HEAD"), cancellable = true) - private void onDraw(MapRenderState state, MatrixStack matrices, OrderedRenderCommandQueue queue, boolean bl, int light, CallbackInfo ci) { + private void onDraw(MapRenderState state, MatrixStack matrices, OrderedRenderCommandQueue queue, boolean skipRenderingDecorations, int light, CallbackInfo ci) { if (Modules.get().get(NoRender.class).noMapContents()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java index a1e6b94bcd..a7f57de820 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MultiplayerScreenMixin.java @@ -63,8 +63,11 @@ private void onInit(CallbackInfo info) { ); } - //@Inject(method = "render", at = @At("TAIL")) - private void onRender(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { + // todo this is probably an extremely bad way of doing it but it works for now + @Override + public void render(DrawContext context, int mouseX, int mouseY, float deltaTicks) { + super.render(context, mouseX, mouseY, deltaTicks); + int x = 3; int y = 3; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java index 07dcd38db1..00790464e9 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/TitleScreenMixin.java @@ -31,7 +31,7 @@ private void onRender(DrawContext context, int mouseX, int mouseY, float delta, } @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void onMouseClicked(Click arg, boolean bl, CallbackInfoReturnable cir) { + private void onMouseClicked(Click arg, boolean doubled, CallbackInfoReturnable cir) { if (Config.get().titleScreenCredits.get() && arg.button() == GLFW.GLFW_MOUSE_BUTTON_LEFT) { if (TitleScreenCredits.onClicked(arg.x(), arg.y())) cir.setReturnValue(true); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java index 1404a12bdf..5f0f5f1858 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudEditorScreen.java @@ -67,7 +67,7 @@ public HudEditorScreen(GuiTheme theme) { public void initWidgets() {} @Override - public boolean mouseClicked(Click arg, boolean bl) { + public boolean mouseClicked(Click arg, boolean doubled) { double s = mc.getWindow().getScaleFactor(); double mouseX = arg.x(); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/Input.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/Input.java index 710c3fd074..75e00efbb5 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/Input.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/Input.java @@ -39,7 +39,7 @@ public static void setKeyState(KeyBinding bind, boolean pressed) { } public static boolean isPressed(KeyBinding bind) { - return isKeyPressed(getKey(bind)); + return isKeyPressed(getKey(bind)) || isButtonPressed(getKey(bind)); } public static boolean isKeyPressed(int key) { diff --git a/src/main/java/meteordevelopment/meteorclient/utils/network/Capes.java b/src/main/java/meteordevelopment/meteorclient/utils/network/Capes.java index 2338c05cfc..83807a8c9b 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/network/Capes.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/network/Capes.java @@ -166,7 +166,7 @@ public void download() { TO_REGISTER.add(this); } } catch (IOException e) { - e.printStackTrace(); + MeteorClient.LOG.error("Failed to download cape '{}'", name, e); } }); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java index 2f5b439825..117909f674 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/render/PeekScreen.java @@ -38,7 +38,7 @@ public PeekScreen(ItemStack storageBlock, ItemStack[] contents) { } @Override - public boolean mouseClicked(Click arg, boolean bl) { + public boolean mouseClicked(Click arg, boolean doubled) { BetterTooltips tooltips = Modules.get().get(BetterTooltips.class); if (arg.button() == GLFW.GLFW_MOUSE_BUTTON_MIDDLE && focusedSlot != null && !focusedSlot.getStack().isEmpty() && mc.player.currentScreenHandler.getCursorStack().isEmpty() && tooltips.middleClickOpen()) { From 274aac0edc5c19a1488a9c70faaca0cc45668efd Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Sun, 5 Oct 2025 19:45:05 +0100 Subject: [PATCH 16/20] more small bug fixes --- .../mixin/BannerBlockEntityRendererMixin.java | 29 ++++++++++++++----- .../mixin/PlayerEntityRendererMixin.java | 1 + 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java index 560484ab68..f80763a019 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/BannerBlockEntityRendererMixin.java @@ -5,12 +5,13 @@ package meteordevelopment.meteorclient.mixin; +import com.llamalad7.mixinextras.sugar.Local; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.render.NoRender; +import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.render.block.entity.model.BannerBlockModel; -import net.minecraft.client.render.block.entity.model.BannerFlagBlockModel; import net.minecraft.client.render.block.entity.state.BannerBlockEntityRenderState; import net.minecraft.client.render.command.ModelCommandRenderer; import net.minecraft.client.render.command.OrderedRenderCommandQueue; @@ -19,11 +20,11 @@ import net.minecraft.client.texture.SpriteHolder; import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.component.type.BannerPatternsComponent; -import net.minecraft.util.DyeColor; import net.minecraft.util.Unit; import net.minecraft.util.math.RotationAxis; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -31,21 +32,33 @@ @Mixin(BannerBlockEntityRenderer.class) public abstract class BannerBlockEntityRendererMixin { + @Shadow + @Final + private SpriteHolder materials; + @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At("HEAD"), cancellable = true) private void injectRender1(BannerBlockEntityRenderState bannerBlockEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState arg, CallbackInfo ci) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.None) ci.cancel(); } - @Inject(method = "render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;submitModel(Lnet/minecraft/client/model/Model;Ljava/lang/Object;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/RenderLayer;IIILnet/minecraft/client/texture/Sprite;ILnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;)V"), cancellable = true) - private static void injectRender2(SpriteHolder materials, MatrixStack matrices, OrderedRenderCommandQueue queue, int light, int overlay, float yaw, BannerBlockModel model, BannerFlagBlockModel flagModel, float pitch, DyeColor dyeColor, BannerPatternsComponent bannerPatterns, ModelCommandRenderer.CrumblingOverlayCommand crumblingOverlay, int outline, CallbackInfo ci) { + @Inject(method = "render(Lnet/minecraft/client/render/block/entity/state/BannerBlockEntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;render(Lnet/minecraft/client/texture/SpriteHolder;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IIFLnet/minecraft/client/render/block/entity/model/BannerBlockModel;Lnet/minecraft/client/render/block/entity/model/BannerFlagBlockModel;FLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Lnet/minecraft/client/render/command/ModelCommandRenderer$CrumblingOverlayCommand;I)V"), cancellable = true) + private void injectRender2(BannerBlockEntityRenderState bannerBlockEntityRenderState, MatrixStack matrixStack, OrderedRenderCommandQueue orderedRenderCommandQueue, CameraRenderState cameraRenderState, CallbackInfo ci, @Local BannerBlockModel bannerBlockModel) { if (Modules.get().get(NoRender.class).getBannerRenderMode() == NoRender.BannerRenderMode.Pillar) { - renderPillar(matrices, queue, light, overlay, yaw, model, materials, crumblingOverlay); + renderPillar( + matrixStack, + orderedRenderCommandQueue, + bannerBlockEntityRenderState.lightmapCoordinates, + bannerBlockEntityRenderState.yaw, + bannerBlockModel, + this.materials, + bannerBlockEntityRenderState.crumblingOverlay + ); ci.cancel(); } } @Unique - private static void renderPillar(MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int light, int overlay, float rotation, BannerBlockModel model, SpriteHolder spriteHolder, ModelCommandRenderer.CrumblingOverlayCommand arg) { + private static void renderPillar(MatrixStack matrices, OrderedRenderCommandQueue entityRenderCommandQueue, int light, float rotation, BannerBlockModel model, SpriteHolder spriteHolder, ModelCommandRenderer.CrumblingOverlayCommand arg) { matrices.push(); matrices.translate(0.5F, 0.0F, 0.5F); matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(rotation)); @@ -57,7 +70,7 @@ private static void renderPillar(MatrixStack matrices, OrderedRenderCommandQueue matrices, spriteIdentifier.getRenderLayer(RenderLayer::getEntitySolid), light, - overlay, + OverlayTexture.DEFAULT_UV, -1, spriteHolder.getSprite(spriteIdentifier), 0, diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java index f429f4782e..33cf1bbbc7 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/PlayerEntityRendererMixin.java @@ -92,6 +92,7 @@ public PlayerEntityRendererMixin(EntityRendererFactory.Context ctx, PlayerEntity @Inject(method = "updateRenderState(Lnet/minecraft/entity/PlayerLikeEntity;Lnet/minecraft/client/render/entity/state/PlayerEntityRenderState;F)V", at = @At("RETURN")) private void updateRenderState$rotations(AvatarlikeEntity player, PlayerEntityRenderState state, float f, CallbackInfo info) { if (Rotations.rotating && player == mc.player) { + state.relativeHeadYaw = 0; state.bodyYaw = Rotations.serverYaw; state.pitch = Rotations.serverPitch; } From cc19351a6d544b0e59fba9b1a598c2d1888deef0 Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 7 Oct 2025 18:34:54 +0100 Subject: [PATCH 17/20] Update to 1.21.10 Will not be compatible with 1.21.9 because we had to change some mixin signatures --- gradle.properties | 6 +++--- .../meteorclient/mixin/CobwebBlockMixin.java | 4 ++-- .../meteorclient/mixin/SweetBerryBushBlockMixin.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5acbed7af1..2c8c370d97 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs=-Xmx2G org.gradle.configuration-cache=true # Fabric (https://fabricmc.net/develop) -minecraft_version=1.21.9 -yarn_mappings=1.21.9+build.1 +minecraft_version=1.21.10 +yarn_mappings=1.21.10+build.1 loader_version=0.17.2 -fapi_version=0.134.0+1.21.9 +fapi_version=0.134.1+1.21.10 # Mod Properties maven_group=meteordevelopment diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/CobwebBlockMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/CobwebBlockMixin.java index 849ae54ff8..58d05af06a 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/CobwebBlockMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/CobwebBlockMixin.java @@ -23,7 +23,7 @@ @Mixin(CobwebBlock.class) public abstract class CobwebBlockMixin { @Inject(method = "onEntityCollision", at = @At("HEAD"), cancellable = true) - private void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler, CallbackInfo info) { - if (entity == mc.player && Modules.get().get(NoSlow.class).cobweb()) info.cancel(); + private void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler, boolean bl, CallbackInfo ci) { + if (entity == mc.player && Modules.get().get(NoSlow.class).cobweb()) ci.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/SweetBerryBushBlockMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/SweetBerryBushBlockMixin.java index 2cd6645c5f..d88b5119a5 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/SweetBerryBushBlockMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/SweetBerryBushBlockMixin.java @@ -23,7 +23,7 @@ @Mixin(SweetBerryBushBlock.class) public abstract class SweetBerryBushBlockMixin { @Inject(method = "onEntityCollision", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;slowMovement(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/Vec3d;)V"), cancellable = true) - private void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler, CallbackInfo info) { - if (entity == mc.player && Modules.get().get(NoSlow.class).berryBush()) info.cancel(); + private void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity, EntityCollisionHandler handler, boolean bl, CallbackInfo ci) { + if (entity == mc.player && Modules.get().get(NoSlow.class).berryBush()) ci.cancel(); } } From ee0fbddceb601aa48f77cb6adda7779a46c74f5f Mon Sep 17 00:00:00 2001 From: Wide_Cat Date: Tue, 7 Oct 2025 19:03:10 +0100 Subject: [PATCH 18/20] Update KeyEvent and MouseButtonEvent (now MouseClickEvent) to account for the new input changes --- .../meteorclient/MeteorClient.java | 8 +-- .../commands/commands/SpectateCommand.java | 4 +- .../meteorclient/events/meteor/KeyEvent.java | 10 +-- ...eButtonEvent.java => MouseClickEvent.java} | 16 ++--- .../meteorclient/mixin/KeyboardMixin.java | 16 ++--- .../meteorclient/mixin/MouseMixin.java | 9 +-- .../meteorclient/settings/KeybindSetting.java | 16 ++--- .../meteorclient/systems/macros/Macros.java | 8 +-- .../meteorclient/systems/modules/Modules.java | 14 ++-- .../systems/modules/combat/Burrow.java | 4 +- .../systems/modules/combat/Offhand.java | 6 +- .../systems/modules/misc/InventoryTweaks.java | 8 +-- .../systems/modules/movement/AirJump.java | 4 +- .../systems/modules/movement/AutoWalk.java | 8 +-- .../systems/modules/movement/GUIMove.java | 53 +++++++------- .../systems/modules/player/BreakDelay.java | 4 +- .../modules/player/MiddleClickExtra.java | 6 +- .../systems/modules/render/Freecam.java | 69 ++++++------------- .../systems/modules/render/Zoom.java | 2 +- .../systems/modules/world/Excavator.java | 4 +- .../systems/modules/world/Nuker.java | 4 +- .../meteorclient/utils/misc/Keybind.java | 10 +++ 22 files changed, 132 insertions(+), 151 deletions(-) rename src/main/java/meteordevelopment/meteorclient/events/meteor/{MouseButtonEvent.java => MouseClickEvent.java} (56%) diff --git a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java index 2769f26c09..2670ade9cc 100644 --- a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java +++ b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java @@ -9,7 +9,7 @@ import meteordevelopment.meteorclient.addons.MeteorAddon; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.gui.GuiThemes; import meteordevelopment.meteorclient.gui.WidgetScreen; @@ -156,14 +156,14 @@ private void onTick(TickEvent.Post event) { @EventHandler private void onKey(KeyEvent event) { - if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesKey(event.arg)) { + if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesKey(event.input)) { toggleGui(); } } @EventHandler - private void onMouseButton(MouseButtonEvent event) { - if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesMouse(event.arg)) { + private void onMouseClick(MouseClickEvent event) { + if (event.action == KeyAction.Press && KeyBinds.OPEN_GUI.matchesMouse(event.click)) { toggleGui(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java index 84ac66671b..d54ed7cce9 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java @@ -10,7 +10,7 @@ import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.commands.arguments.PlayerArgumentType; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.orbit.EventHandler; import net.minecraft.command.CommandSource; @@ -50,7 +50,7 @@ private void onKey(KeyEvent event) { } @EventHandler - private void onMouse(MouseButtonEvent event) { + private void onMouse(MouseClickEvent event) { if (Input.isPressed(mc.options.sneakKey)) { mc.setCameraEntity(mc.player); event.cancel(); diff --git a/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java b/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java index 1c230e3cc6..2d592f7f52 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/meteor/KeyEvent.java @@ -12,16 +12,12 @@ public class KeyEvent extends Cancellable { private static final KeyEvent INSTANCE = new KeyEvent(); - public int key, modifiers; + public KeyInput input; public KeyAction action; - public KeyInput arg; - // todo clean this up - public static KeyEvent get(KeyInput arg, int key, int modifiers, KeyAction action) { + public static KeyEvent get(KeyInput keyInput, KeyAction action) { INSTANCE.setCancelled(false); - INSTANCE.arg = arg; - INSTANCE.key = key; - INSTANCE.modifiers = modifiers; + INSTANCE.input = keyInput; INSTANCE.action = action; return INSTANCE; } diff --git a/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java b/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseClickEvent.java similarity index 56% rename from src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java rename to src/main/java/meteordevelopment/meteorclient/events/meteor/MouseClickEvent.java index fc7f3bc0b5..3519ab6c0a 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseButtonEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/meteor/MouseClickEvent.java @@ -8,19 +8,19 @@ import meteordevelopment.meteorclient.events.Cancellable; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; import net.minecraft.client.gui.Click; +import net.minecraft.client.input.MouseInput; -public class MouseButtonEvent extends Cancellable { - private static final MouseButtonEvent INSTANCE = new MouseButtonEvent(); +public class MouseClickEvent extends Cancellable { + private static final MouseClickEvent INSTANCE = new MouseClickEvent(); - public int button; + public MouseInput input; + public Click click; public KeyAction action; - public Click arg; - // todo cleanup - public static MouseButtonEvent get(Click arg, int button, KeyAction action) { + public static MouseClickEvent get(MouseInput mouseInput, Click click, KeyAction action) { INSTANCE.setCancelled(false); - INSTANCE.arg = arg; - INSTANCE.button = button; + INSTANCE.input = mouseInput; + INSTANCE.click = click; INSTANCE.action = action; return INSTANCE; } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java index d9c562a353..628cfcb8f4 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyboardMixin.java @@ -30,24 +30,24 @@ public abstract class KeyboardMixin { @Shadow @Final private MinecraftClient client; @Inject(method = "onKey", at = @At("HEAD"), cancellable = true) - public void onKey(long window, int action, KeyInput arg, CallbackInfo ci) { - int modifiers = arg.modifiers(); - if (arg.key() != GLFW.GLFW_KEY_UNKNOWN) { + public void onKey(long window, int action, KeyInput keyEvent, CallbackInfo ci) { + int modifiers = keyEvent.modifiers(); + if (keyEvent.key() != GLFW.GLFW_KEY_UNKNOWN) { // on Linux/X11 the modifier is not active when the key is pressed and still active when the key is released // https://github.com/glfw/glfw/issues/1630 if (action == GLFW.GLFW_PRESS) { - modifiers |= Input.getModifier(arg.key()); + modifiers |= Input.getModifier(keyEvent.key()); } else if (action == GLFW.GLFW_RELEASE) { - modifiers &= ~Input.getModifier(arg.key()); + modifiers &= ~Input.getModifier(keyEvent.key()); } if (client.currentScreen instanceof WidgetScreen && action == GLFW.GLFW_REPEAT) { - ((WidgetScreen) client.currentScreen).keyRepeated(arg.key(), modifiers); + ((WidgetScreen) client.currentScreen).keyRepeated(keyEvent.key(), modifiers); } if (GuiKeyEvents.canUseKeys) { - Input.setKeyState(arg.key(), action != GLFW.GLFW_RELEASE); - if (MeteorClient.EVENT_BUS.post(KeyEvent.get(arg, arg.key(), modifiers, KeyAction.get(action))).isCancelled()) ci.cancel(); + Input.setKeyState(keyEvent.key(), action != GLFW.GLFW_RELEASE); + if (MeteorClient.EVENT_BUS.post(KeyEvent.get(keyEvent, KeyAction.get(action))).isCancelled()) ci.cancel(); } } } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java index 776b6d0a66..7747739299 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/MouseMixin.java @@ -6,7 +6,7 @@ package meteordevelopment.meteorclient.mixin; import meteordevelopment.meteorclient.MeteorClient; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.meteor.MouseScrollEvent; import meteordevelopment.meteorclient.utils.misc.input.Input; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; @@ -37,10 +37,11 @@ public abstract class MouseMixin { private MinecraftClient client; @Inject(method = "onMouseButton", at = @At("HEAD"), cancellable = true) - private void onMouseButton(long window, MouseInput arg, int action, CallbackInfo ci) { - Input.setButtonState(arg.button(), action != GLFW_RELEASE); + private void onMouseButton(long window, MouseInput mouseInput, int action, CallbackInfo ci) { + Input.setButtonState(mouseInput.button(), action != GLFW_RELEASE); - if (MeteorClient.EVENT_BUS.post(MouseButtonEvent.get(new Click(getScaledX(client.getWindow()), getScaledY(client.getWindow()), arg), arg.button(), KeyAction.get(action))).isCancelled()) ci.cancel(); + Click click = new Click(getScaledX(client.getWindow()), getScaledY(client.getWindow()), mouseInput); + if (MeteorClient.EVENT_BUS.post(MouseClickEvent.get(mouseInput, click, KeyAction.get(action))).isCancelled()) ci.cancel(); } @Inject(method = "onMouseScroll", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/meteordevelopment/meteorclient/settings/KeybindSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/KeybindSetting.java index ac3fe2ea8a..c248d7580d 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/KeybindSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/KeybindSetting.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.gui.widgets.WKeybind; import meteordevelopment.meteorclient.utils.misc.Keybind; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; @@ -32,25 +32,25 @@ public KeybindSetting(String name, String description, Keybind defaultValue, Con @EventHandler(priority = EventPriority.HIGHEST) private void onKeyBinding(KeyEvent event) { if (widget == null) return; - if (event.action == KeyAction.Press && event.key == GLFW.GLFW_KEY_ESCAPE && widget.onClear()) event.cancel(); - else if (event.action == KeyAction.Release && widget.onAction(true, event.key, event.modifiers)) event.cancel(); + if (event.action == KeyAction.Press && event.input.key() == GLFW.GLFW_KEY_ESCAPE && widget.onClear()) event.cancel(); + else if (event.action == KeyAction.Release && widget.onAction(true, event.input.key(), event.input.modifiers())) event.cancel(); } @EventHandler(priority = EventPriority.HIGHEST) - private void onMouseButtonBinding(MouseButtonEvent event) { - if (event.action == KeyAction.Press && widget != null && widget.onAction(false, event.button, 0)) event.cancel(); + private void onMouseClickBinding(MouseClickEvent event) { + if (event.action == KeyAction.Press && widget != null && widget.onAction(false, event.input.button(), 0)) event.cancel(); } @EventHandler(priority = EventPriority.HIGH) private void onKey(KeyEvent event) { - if (event.action == KeyAction.Release && get().matches(true, event.key, event.modifiers) && (module == null || module.isActive()) && action != null) { + if (event.action == KeyAction.Release && get().matches(event.input) && (module == null || module.isActive()) && action != null) { action.run(); } } @EventHandler(priority = EventPriority.HIGH) - private void onMouseButton(MouseButtonEvent event) { - if (event.action == KeyAction.Release && get().matches(false, event.button, 0) && (module == null || module.isActive()) && action != null) { + private void onMouseClick(MouseClickEvent event) { + if (event.action == KeyAction.Release && get().matches(event.input) && (module == null || module.isActive()) && action != null) { action.run(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/macros/Macros.java b/src/main/java/meteordevelopment/meteorclient/systems/macros/Macros.java index 48fe2b2788..924c0fcfc6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/macros/Macros.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/macros/Macros.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.systems.System; import meteordevelopment.meteorclient.systems.Systems; import meteordevelopment.meteorclient.utils.misc.NbtUtils; @@ -62,16 +62,16 @@ private void onKey(KeyEvent event) { if (event.action == KeyAction.Release) return; for (Macro macro : macros) { - if (macro.onAction(true, event.key, event.modifiers)) return; + if (macro.onAction(true, event.input.key(), event.input.modifiers())) return; } } @EventHandler(priority = EventPriority.HIGH) - private void onButton(MouseButtonEvent event) { + private void onMouse(MouseClickEvent event) { if (event.action == KeyAction.Release) return; for (Macro macro : macros) { - if (macro.onAction(false, event.button, 0)) return; + if (macro.onAction(false, event.input.button(), 0)) return; } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java index 2c10a11f38..b162c416a0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java @@ -13,7 +13,7 @@ import meteordevelopment.meteorclient.events.meteor.ActiveModulesChangedEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; import meteordevelopment.meteorclient.events.meteor.ModuleBindChangedEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.pathing.BaritoneUtils; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; @@ -222,12 +222,12 @@ public boolean isBinding() { @EventHandler(priority = EventPriority.HIGHEST) private void onKeyBinding(KeyEvent event) { - if (event.action == KeyAction.Release && onBinding(true, event.key, event.modifiers)) event.cancel(); + if (event.action == KeyAction.Release && onBinding(true, event.input.key(), event.input.modifiers())) event.cancel(); } @EventHandler(priority = EventPriority.HIGHEST) - private void onButtonBinding(MouseButtonEvent event) { - if (event.action == KeyAction.Release && onBinding(false, event.button, 0)) event.cancel(); + private void onButtonBinding(MouseClickEvent event) { + if (event.action == KeyAction.Release && onBinding(false, event.input.button(), 0)) event.cancel(); } private boolean onBinding(boolean isKey, int value, int modifiers) { @@ -259,13 +259,13 @@ else if (value == GLFW.GLFW_KEY_ESCAPE) { @EventHandler(priority = EventPriority.HIGH) private void onKey(KeyEvent event) { if (event.action == KeyAction.Repeat) return; - onAction(true, event.key, event.modifiers, event.action == KeyAction.Press); + onAction(true, event.input.key(), event.input.modifiers(), event.action == KeyAction.Press); } @EventHandler(priority = EventPriority.HIGH) - private void onMouseButton(MouseButtonEvent event) { + private void onMouseClick(MouseClickEvent event) { if (event.action == KeyAction.Repeat) return; - onAction(false, event.button, 0, event.action == KeyAction.Press); + onAction(false, event.input.button(), 0, event.action == KeyAction.Press); } private void onAction(boolean isKey, int value, int modifiers, boolean isPress) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java index 87b4dc2ae7..0a052c34c9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java @@ -165,7 +165,7 @@ private void onTick(TickEvent.Pre event) { if (!shouldBurrow && instant.get()) blockPos.set(mc.player.getBlockPos()); if (shouldBurrow) { - if (rotate.get()) + if (rotate.get()) Rotations.rotate(Rotations.getYaw(mc.player.getBlockPos()), Rotations.getPitch(mc.player.getBlockPos()), 50, this::burrow); else burrow(); @@ -176,7 +176,7 @@ private void onTick(TickEvent.Pre event) { @EventHandler private void onKey(KeyEvent event) { if (instant.get() && !shouldBurrow) { - if (event.action == KeyAction.Press && mc.options.jumpKey.matchesKey(event.arg)) { + if (event.action == KeyAction.Press && mc.options.jumpKey.matchesKey(event.input)) { shouldBurrow = true; } blockPos.set(mc.player.getBlockPos()); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java index 8f0e38ec95..f19a7d139b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java @@ -5,7 +5,7 @@ package meteordevelopment.meteorclient.systems.modules.combat; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.systems.modules.Categories; @@ -238,9 +238,9 @@ else if ((isClicking || !autoTotem.isLocked() && !item.isOffhand())) { } @EventHandler - private void onMouseButton(MouseButtonEvent event) { + private void onMouseClick(MouseClickEvent event) { // Detects if the User is right-clicking - isClicking = mc.currentScreen == null && !Modules.get().get(AutoTotem.class).isLocked() && !usableItem() && !mc.player.isUsingItem() && event.action == KeyAction.Press && event.button == GLFW_MOUSE_BUTTON_RIGHT; + isClicking = mc.currentScreen == null && !Modules.get().get(AutoTotem.class).isLocked() && !usableItem() && !mc.player.isUsingItem() && event.action == KeyAction.Press && event.input.button() == GLFW_MOUSE_BUTTON_RIGHT; } private boolean usableItem() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java index d9b4106e49..f07ce95cef 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java @@ -11,7 +11,7 @@ import meteordevelopment.meteorclient.events.entity.player.InteractEntityEvent; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.packets.InventoryEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; @@ -281,16 +281,16 @@ public void onDeactivate() { private void onKey(KeyEvent event) { if (event.action != KeyAction.Press) return; - if (sortingKey.get().matches(true, event.key, event.modifiers)) { + if (sortingKey.get().matches(event.input)) { if (sort()) event.cancel(); } } @EventHandler - private void onMouseButton(MouseButtonEvent event) { + private void onMouseClick(MouseClickEvent event) { if (event.action != KeyAction.Press) return; - if (sortingKey.get().matches(false, event.button, 0)) { + if (sortingKey.get().matches(event.input)) { if (sort()) event.cancel(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java index 24e535b8bd..a078d0323f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java @@ -44,11 +44,11 @@ private void onKey(KeyEvent event) { if (event.action != KeyAction.Press) return; - if (mc.options.jumpKey.matchesKey(event.arg)) { + if (mc.options.jumpKey.matchesKey(event.input)) { level = mc.player.getBlockPos().getY(); mc.player.jump(); } - else if (mc.options.sneakKey.matchesKey(event.arg)) { + else if (mc.options.sneakKey.matchesKey(event.input)) { level--; } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java index 2b2e56a97b..34668ef0ca 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.events.entity.player.PlayerMoveEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.mixininterface.IVec3d; import meteordevelopment.meteorclient.pathing.NopPathManager; @@ -130,12 +130,12 @@ private void onMovement() { @EventHandler private void onKey(KeyEvent event) { - if (isMovementKey(event.arg) && event.action == KeyAction.Press) onMovement(); + if (isMovementKey(event.input) && event.action == KeyAction.Press) onMovement(); } @EventHandler - private void onMouseButton(MouseButtonEvent event) { - if (isMovementButton(event.arg) && event.action == KeyAction.Press) onMovement(); + private void onMouseClick(MouseClickEvent event) { + if (isMovementButton(event.click) && event.action == KeyAction.Press) onMovement(); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java index e8a6e5843f..1bda019fe0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java @@ -6,7 +6,7 @@ package meteordevelopment.meteorclient.systems.modules.movement; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.gui.WidgetScreen; import meteordevelopment.meteorclient.mixin.CreativeInventoryScreenAccessor; @@ -110,36 +110,32 @@ public boolean disableArrows() { return isActive() && arrowsRotate.get(); } - private void onInput(int key, KeyAction action, boolean mouse) { - if (skip()) return; - if (screens.get() == Screens.GUI && !(mc.currentScreen instanceof WidgetScreen)) return; - if (screens.get() == Screens.Inventory && mc.currentScreen instanceof WidgetScreen) return; - - pass(mc.options.forwardKey, key, action, mouse); - pass(mc.options.backKey, key, action, mouse); - pass(mc.options.leftKey, key, action, mouse); - pass(mc.options.rightKey, key, action, mouse); - - if (jump.get()) pass(mc.options.jumpKey, key, action, mouse); - if (sneak.get()) pass(mc.options.sneakKey, key, action, mouse); - if (sprint.get()) pass(mc.options.sprintKey, key, action, mouse); - } - @EventHandler private void onKey(KeyEvent event) { - //onInput(event.arg, event.action, false); + onInput(event.input.key(), event.action); } @EventHandler - private void onButton(MouseButtonEvent event) { - onInput(event.button, event.action, true); + private void onButton(MouseClickEvent event) { + onInput(event.input.button(), event.action); + } + + private void onInput(int key, KeyAction action) { + if (skip()) return; + + pass(mc.options.forwardKey, key, action); + pass(mc.options.backKey, key, action); + pass(mc.options.leftKey, key, action); + pass(mc.options.rightKey, key, action); + + if (jump.get()) pass(mc.options.jumpKey, key, action); + if (sneak.get()) pass(mc.options.sneakKey, key, action); + if (sprint.get()) pass(mc.options.sprintKey, key, action); } @EventHandler private void onRender3D(Render3DEvent event) { if (skip()) return; - if (screens.get() == Screens.GUI && !(mc.currentScreen instanceof WidgetScreen)) return; - if (screens.get() == Screens.Inventory && mc.currentScreen instanceof WidgetScreen) return; float rotationDelta = Math.min((float) (rotateSpeed.get() * event.frameTime * 20f), 100); @@ -172,14 +168,21 @@ private void onRender3D(Render3DEvent event) { } } - private void pass(KeyBinding bind, int key, KeyAction action, boolean mouse) { - //if (!mouse && !bind.matchesKey(key)) return; - //if (mouse && !bind.matchesMouse(key)) return; + private void pass(KeyBinding bind, int key, KeyAction action) { + if (Input.getKey(bind) != key) return; if (action == KeyAction.Press) bind.setPressed(true); if (action == KeyAction.Release) bind.setPressed(false); } public boolean skip() { - return mc.currentScreen == null || (mc.currentScreen instanceof CreativeInventoryScreen && CreativeInventoryScreenAccessor.meteor$getSelectedTab() == ItemGroups.getSearchGroup()) || mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof SignEditScreen || mc.currentScreen instanceof AnvilScreen || mc.currentScreen instanceof AbstractCommandBlockScreen || mc.currentScreen instanceof StructureBlockScreen; + if (mc.currentScreen == null || + (mc.currentScreen instanceof CreativeInventoryScreen && CreativeInventoryScreenAccessor.meteor$getSelectedTab() == ItemGroups.getSearchGroup()) + || mc.currentScreen instanceof ChatScreen + || mc.currentScreen instanceof SignEditScreen + || mc.currentScreen instanceof AnvilScreen + || mc.currentScreen instanceof AbstractCommandBlockScreen + || mc.currentScreen instanceof StructureBlockScreen) return true; + if (screens.get() == Screens.GUI && !(mc.currentScreen instanceof WidgetScreen)) return true; + return screens.get() == Screens.Inventory && mc.currentScreen instanceof WidgetScreen; } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java index a77923d0f4..fe0b0f497e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java @@ -6,7 +6,7 @@ package meteordevelopment.meteorclient.systems.modules.player; import meteordevelopment.meteorclient.events.entity.player.BlockBreakingCooldownEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.IntSetting; import meteordevelopment.meteorclient.settings.Setting; @@ -52,7 +52,7 @@ private void onBlockBreakingCooldown(BlockBreakingCooldownEvent event) { } @EventHandler - private void onClick(MouseButtonEvent event) { + private void onClick(MouseClickEvent event) { if (event.action == KeyAction.Press && noInstaBreak.get()) { breakBlockCooldown = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java index 968ef7ca88..3d9e33e479 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java @@ -7,7 +7,7 @@ import meteordevelopment.meteorclient.events.entity.player.FinishUsingItemEvent; import meteordevelopment.meteorclient.events.entity.player.StoppedUsingItemEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; @@ -89,8 +89,8 @@ public void onDeactivate() { } @EventHandler - private void onMouseButton(MouseButtonEvent event) { - if (event.action != KeyAction.Press || event.button != GLFW_MOUSE_BUTTON_MIDDLE || mc.currentScreen != null) return; + private void onMouseClick(MouseClickEvent event) { + if (event.action != KeyAction.Press || event.input.button() != GLFW_MOUSE_BUTTON_MIDDLE || mc.currentScreen != null) return; if (mode.get() == Mode.AddFriend) { if (mc.targetedEntity == null) return; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java index 55f72007ff..624f1bd2a3 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java @@ -9,7 +9,7 @@ import meteordevelopment.meteorclient.events.game.GameLeftEvent; import meteordevelopment.meteorclient.events.game.OpenScreenEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.meteor.MouseScrollEvent; import meteordevelopment.meteorclient.events.packets.PacketEvent; import meteordevelopment.meteorclient.events.world.ChunkOcclusionEvent; @@ -284,74 +284,46 @@ public void onKey(KeyEvent event) { if (Input.isKeyPressed(GLFW.GLFW_KEY_F3)) return; if (checkGuiMove()) return; - boolean cancel = true; - - if (mc.options.forwardKey.matchesKey(event.arg)) { - forward = event.action != KeyAction.Release; - mc.options.forwardKey.setPressed(false); - } - else if (mc.options.backKey.matchesKey(event.arg)) { - backward = event.action != KeyAction.Release; - mc.options.backKey.setPressed(false); - } - else if (mc.options.rightKey.matchesKey(event.arg)) { - right = event.action != KeyAction.Release; - mc.options.rightKey.setPressed(false); - } - else if (mc.options.leftKey.matchesKey(event.arg)) { - left = event.action != KeyAction.Release; - mc.options.leftKey.setPressed(false); - } - else if (mc.options.jumpKey.matchesKey(event.arg)) { - up = event.action != KeyAction.Release; - mc.options.jumpKey.setPressed(false); - } - else if (mc.options.sneakKey.matchesKey(event.arg)) { - down = event.action != KeyAction.Release; - mc.options.sneakKey.setPressed(false); - } - else { - cancel = false; - } - - if (cancel) event.cancel(); + if (onInput(event.input.key(), event.action)) event.cancel(); } @EventHandler(priority = EventPriority.HIGH) - private void onMouseButton(MouseButtonEvent event) { + private void onMouseClick(MouseClickEvent event) { if (checkGuiMove()) return; - boolean cancel = true; + if (onInput(event.input.button(), event.action)) event.cancel(); + } - if (mc.options.forwardKey.matchesMouse(event.arg)) { - forward = event.action != KeyAction.Release; + private boolean onInput(int key, KeyAction action) { + if (Input.getKey(mc.options.forwardKey) == key) { + forward = action != KeyAction.Release; mc.options.forwardKey.setPressed(false); } - else if (mc.options.backKey.matchesMouse(event.arg)) { - backward = event.action != KeyAction.Release; + else if (Input.getKey(mc.options.backKey) == key) { + backward = action != KeyAction.Release; mc.options.backKey.setPressed(false); } - else if (mc.options.rightKey.matchesMouse(event.arg)) { - right = event.action != KeyAction.Release; + else if (Input.getKey(mc.options.rightKey) == key) { + right = action != KeyAction.Release; mc.options.rightKey.setPressed(false); } - else if (mc.options.leftKey.matchesMouse(event.arg)) { - left = event.action != KeyAction.Release; + else if (Input.getKey(mc.options.leftKey) == key) { + left = action != KeyAction.Release; mc.options.leftKey.setPressed(false); } - else if (mc.options.jumpKey.matchesMouse(event.arg)) { - up = event.action != KeyAction.Release; + else if (Input.getKey(mc.options.jumpKey) == key) { + up = action != KeyAction.Release; mc.options.jumpKey.setPressed(false); } - else if (mc.options.sneakKey.matchesMouse(event.arg)) { - down = event.action != KeyAction.Release; + else if (Input.getKey(mc.options.sneakKey) == key) { + down = action != KeyAction.Release; mc.options.sneakKey.setPressed(false); } else { - cancel = false; + return false; } - if (cancel) event.cancel(); + return true; } @EventHandler(priority = EventPriority.LOW) @@ -394,7 +366,6 @@ else if (event.packet instanceof HealthUpdateS2CPacket packet) { } private boolean checkGuiMove() { - // TODO: This is very bad but you all can cope :cope: GUIMove guiMove = Modules.get().get(GUIMove.class); if (mc.currentScreen != null && !guiMove.isActive()) return true; return (mc.currentScreen != null && guiMove.isActive() && guiMove.skip()); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java index 40f5a98efe..fc24939649 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java @@ -111,7 +111,7 @@ public void onDeactivate() { @EventHandler public void onKeyPressed(KeyEvent event) { - if (event.key != GLFW.GLFW_KEY_F1) return; + if (event.input.key() != GLFW.GLFW_KEY_F1) return; hudManualToggled = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java index 34f48d4b1e..03be24476b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java @@ -9,7 +9,7 @@ import baritone.api.IBaritone; import baritone.api.utils.BetterBlockPos; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.*; @@ -93,7 +93,7 @@ public void onDeactivate() { } @EventHandler - private void onMouseButton(MouseButtonEvent event) { + private void onMouseClick(MouseClickEvent event) { if (event.action != KeyAction.Press || !selectionBind.get().isPressed() || mc.currentScreen != null) { return; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java index 8d067c8244..2f65e14b60 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java @@ -8,7 +8,7 @@ import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; import meteordevelopment.meteorclient.events.entity.player.BlockBreakingCooldownEvent; import meteordevelopment.meteorclient.events.meteor.KeyEvent; -import meteordevelopment.meteorclient.events.meteor.MouseButtonEvent; +import meteordevelopment.meteorclient.events.meteor.MouseClickEvent; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.renderer.ShapeMode; @@ -328,7 +328,7 @@ private void onRender(Render3DEvent event) { } @EventHandler - private void onMouseButton(MouseButtonEvent event) { + private void onMouseClick(MouseClickEvent event) { if (event.action == KeyAction.Press) addTargetedBlockToList(); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/Keybind.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/Keybind.java index fe446cbb94..a5f8256325 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/Keybind.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/Keybind.java @@ -7,6 +7,8 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.input.Input; +import net.minecraft.client.input.KeyInput; +import net.minecraft.client.input.MouseInput; import net.minecraft.nbt.NbtCompound; import java.util.Objects; @@ -87,6 +89,14 @@ public boolean matches(boolean isKey, int value, int modifiers) { return this.value == value && this.modifiers == modifiers; } + public boolean matches(KeyInput input) { + return matches(true, input.key(), input.modifiers()); + } + + public boolean matches(MouseInput input) { + return matches(false, input.button(), 0); + } + public boolean isPressed() { return isKey ? modifiersPressed() && Input.isKeyPressed(value) : Input.isButtonPressed(value); } From 26ec04e8d4e48a604981f6519f75dcf9e6205ecb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E8=91=89=20Scarlet?= <93977077+mukjepscarlet@users.noreply.github.com> Date: Wed, 8 Oct 2025 17:31:39 +0800 Subject: [PATCH 19/20] clean branch? --- .../commands/commands/SwarmCommand.java | 7 +- .../pathing/BaritoneSettings.java | 142 +++++++++--------- .../settings/AbstractRegistryItemSetting.java | 77 ++++++++++ .../settings/AbstractRegistryListSetting.java | 90 +++++++++++ .../settings/BlockListSetting.java | 85 ++--------- .../meteorclient/settings/BlockSetting.java | 61 +------- .../meteorclient/settings/BoolSetting.java | 2 +- .../meteorclient/settings/ColorSetting.java | 2 +- .../settings/EntityTypeListSetting.java | 2 +- .../meteorclient/settings/EnumSetting.java | 24 ++- .../settings/FontFaceSetting.java | 2 +- .../settings/ItemListSetting.java | 56 ++----- .../meteorclient/settings/ItemSetting.java | 61 +------- .../settings/ModuleListSetting.java | 2 +- .../settings/PacketListSetting.java | 2 +- .../settings/ParticleTypeListSetting.java | 66 +------- .../meteorclient/settings/Setting.java | 11 +- .../settings/SoundEventListSetting.java | 64 +------- .../settings/StatusEffectListSetting.java | 65 +------- .../systems/hud/elements/HoleHud.java | 3 +- .../systems/modules/combat/AutoTrap.java | 2 +- .../systems/modules/combat/HoleFiller.java | 3 +- .../systems/modules/combat/SelfTrap.java | 3 +- .../systems/modules/combat/Surround.java | 3 +- .../systems/modules/misc/InventoryTweaks.java | 9 +- .../systems/modules/movement/Scaffold.java | 3 +- .../systems/modules/movement/Slippy.java | 5 +- .../systems/modules/player/AutoEat.java | 3 +- .../systems/modules/player/AutoMend.java | 3 +- .../systems/modules/player/AutoReplenish.java | 3 +- .../systems/modules/player/AutoTool.java | 5 +- .../systems/modules/player/FastUse.java | 3 +- .../systems/modules/player/NoInteract.java | 4 +- .../systems/modules/player/SpeedMine.java | 3 +- .../systems/modules/render/ItemHighlight.java | 3 +- .../systems/modules/render/NoRender.java | 2 +- .../systems/modules/render/Trajectories.java | 20 +-- .../systems/modules/render/WallHack.java | 3 +- .../systems/modules/render/Xray.java | 7 +- .../modules/render/blockesp/BlockESP.java | 2 +- .../modules/render/blockesp/ESPChunk.java | 3 +- .../systems/modules/world/AutoSmelter.java | 5 +- .../systems/modules/world/Collisions.java | 3 +- .../systems/modules/world/HighwayBuilder.java | 9 +- .../systems/modules/world/InfinityMiner.java | 7 +- .../systems/modules/world/LiquidFiller.java | 5 +- .../systems/modules/world/Nuker.java | 9 +- .../systems/modules/world/SpawnProofer.java | 3 +- .../systems/modules/world/VeinMiner.java | 2 +- 49 files changed, 385 insertions(+), 574 deletions(-) create mode 100644 src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryItemSetting.java create mode 100644 src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryListSetting.java diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java index 555b73793d..9aafddbd84 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java @@ -36,6 +36,7 @@ import java.util.List; import java.util.Random; +import java.util.Set; public class SwarmCommand extends Command { @@ -212,7 +213,7 @@ else if (swarm.isWorker()) { swarm.host.sendMessage(context.getInput()); } else if (swarm.isWorker()) { - Modules.get().get(InfinityMiner.class).targetBlocks.set(List.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock())); + Modules.get().get(InfinityMiner.class).targetBlocks.set(Set.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock())); runInfinityMiner(); } } @@ -228,8 +229,8 @@ else if (swarm.isWorker()) { swarm.host.sendMessage(context.getInput()); } else if (swarm.isWorker()) { - Modules.get().get(InfinityMiner.class).targetBlocks.set(List.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock())); - Modules.get().get(InfinityMiner.class).repairBlocks.set(List.of(context.getArgument("repair", BlockStateArgument.class).getBlockState().getBlock())); + Modules.get().get(InfinityMiner.class).targetBlocks.set(Set.of(context.getArgument("target", BlockStateArgument.class).getBlockState().getBlock())); + Modules.get().get(InfinityMiner.class).repairBlocks.set(Set.of(context.getArgument("repair", BlockStateArgument.class).getBlockState().getBlock())); runInfinityMiner(); } } diff --git a/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java b/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java index 8294edaa12..c72f6a3d31 100644 --- a/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java +++ b/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java @@ -7,6 +7,7 @@ import baritone.api.BaritoneAPI; import baritone.api.utils.SettingsUtil; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.utils.render.color.SettingColor; import net.minecraft.block.Block; @@ -88,24 +89,24 @@ private void createWrappers() { Object value = setting.value; - if (value instanceof Boolean) { - Setting wrapper = sgBool.add(new BoolSetting.Builder() - .name(setting.getName()) - .description(getDescription(setting.getName())) - .defaultValue((boolean) setting.defaultValue) - .onChanged(aBoolean -> setting.value = aBoolean) - .onModuleActivated(booleanSetting -> booleanSetting.set((Boolean) setting.value)) - .build() - ); + switch (value) { + case Boolean b -> { + Setting wrapper = sgBool.add(new BoolSetting.Builder() + .name(setting.getName()) + .description(getDescription(setting.getName())) + .defaultValue((boolean) setting.defaultValue) + .onChanged(aBoolean -> setting.value = aBoolean) + .onModuleActivated(booleanSetting -> booleanSetting.set((Boolean) setting.value)) + .build() + ); - switch (wrapper.name) { - case "assumeWalkOnWater" -> walkOnWater = wrapper; - case "assumeWalkOnLava" -> walkOnLava = wrapper; - case "assumeStep" -> step = wrapper; + switch (wrapper.name) { + case "assumeWalkOnWater" -> walkOnWater = wrapper; + case "assumeWalkOnLava" -> walkOnLava = wrapper; + case "assumeStep" -> step = wrapper; + } } - } - else if (value instanceof Double) { - sgDouble.add(new DoubleSetting.Builder() + case Double v -> sgDouble.add(new DoubleSetting.Builder() .name(setting.getName()) .description(getDescription(setting.getName())) .defaultValue((double) setting.defaultValue) @@ -115,9 +116,7 @@ else if (value instanceof Double) { .onModuleActivated(doubleSetting -> doubleSetting.set((Double) setting.value)) .build() ); - } - else if (value instanceof Float) { - sgDouble.add(new DoubleSetting.Builder() + case Float v -> sgDouble.add(new DoubleSetting.Builder() .name(setting.getName()) .description(getDescription(setting.getName())) .defaultValue(((Float) setting.defaultValue).doubleValue()) @@ -127,29 +126,27 @@ else if (value instanceof Float) { .onModuleActivated(doubleSetting -> doubleSetting.set(((Float) setting.value).doubleValue())) .build() ); - } - else if (value instanceof Integer) { - Setting wrapper = sgInt.add(new IntSetting.Builder() - .name(setting.getName()) - .description(getDescription(setting.getName())) - .defaultValue((int) setting.defaultValue) - .onChanged(integer -> setting.value = integer) - .onModuleActivated(integerSetting -> integerSetting.set((Integer) setting.value)) - .build() - ); + case Integer i -> { + Setting wrapper = sgInt.add(new IntSetting.Builder() + .name(setting.getName()) + .description(getDescription(setting.getName())) + .defaultValue((int) setting.defaultValue) + .onChanged(integer -> setting.value = integer) + .onModuleActivated(integerSetting -> integerSetting.set((Integer) setting.value)) + .build() + ); - if (wrapper.name.equals("maxFallHeightNoWater")) { - noFall = new BoolSetting.Builder() - .name(wrapper.name) - .description(wrapper.description) - .defaultValue(false) - .onChanged(aBoolean -> wrapper.set(aBoolean ? 159159 : wrapper.getDefaultValue())) - .onModuleActivated(booleanSetting -> booleanSetting.set(wrapper.get() >= 255)) - .build(); + if (wrapper.name.equals("maxFallHeightNoWater")) { + noFall = new BoolSetting.Builder() + .name(wrapper.name) + .description(wrapper.description) + .defaultValue(false) + .onChanged(aBoolean -> wrapper.set(aBoolean ? 159159 : wrapper.getDefaultValue())) + .onModuleActivated(booleanSetting -> booleanSetting.set(wrapper.get() >= 255)) + .build(); + } } - } - else if (value instanceof Long) { - sgInt.add(new IntSetting.Builder() + case Long l -> sgInt.add(new IntSetting.Builder() .name(setting.getName()) .description(getDescription(setting.getName())) .defaultValue(((Long) setting.defaultValue).intValue()) @@ -157,9 +154,7 @@ else if (value instanceof Long) { .onModuleActivated(integerSetting -> integerSetting.set(((Long) setting.value).intValue())) .build() ); - } - else if (value instanceof String) { - sgString.add(new StringSetting.Builder() + case String s -> sgString.add(new StringSetting.Builder() .name(setting.getName()) .description(getDescription(setting.getName())) .defaultValue((String) setting.defaultValue) @@ -167,42 +162,43 @@ else if (value instanceof String) { .onModuleActivated(stringSetting -> stringSetting.set((String) setting.value)) .build() ); - } - else if (value instanceof Color) { - Color c = (Color) setting.value; - - sgColor.add(new ColorSetting.Builder() - .name(setting.getName()) - .description(getDescription(setting.getName())) - .defaultValue(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha())) - .onChanged(color -> setting.value = new Color(color.r, color.g, color.b, color.a)) - .onModuleActivated(colorSetting -> colorSetting.set(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()))) - .build() - ); - } - else if (value instanceof List) { - Type listType = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; - Type type = ((ParameterizedType) listType).getActualTypeArguments()[0]; + case Color color1 -> { + Color c = (Color) setting.value; - if (type == Block.class) { - sgBlockLists.add(new BlockListSetting.Builder() + sgColor.add(new ColorSetting.Builder() .name(setting.getName()) .description(getDescription(setting.getName())) - .defaultValue((List) setting.defaultValue) - .onChanged(blockList -> setting.value = blockList) - .onModuleActivated(blockListSetting -> blockListSetting.set((List) setting.value)) + .defaultValue(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha())) + .onChanged(color -> setting.value = new Color(color.r, color.g, color.b, color.a)) + .onModuleActivated(colorSetting -> colorSetting.set(new SettingColor(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()))) .build() ); } - else if (type == Item.class) { - sgItemLists.add(new ItemListSetting.Builder() - .name(setting.getName()) - .description(getDescription(setting.getName())) - .defaultValue((List) setting.defaultValue) - .onChanged(itemList -> setting.value = itemList) - .onModuleActivated(itemListSetting -> itemListSetting.set((List) setting.value)) - .build() - ); + case List list -> { + Type listType = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0]; + Type type = ((ParameterizedType) listType).getActualTypeArguments()[0]; + + if (type == Block.class) { + sgBlockLists.add(new BlockListSetting.Builder() + .name(setting.getName()) + .description(getDescription(setting.getName())) + .defaultValue(new ReferenceOpenHashSet<>((List) setting.defaultValue)) + .onChanged(blockList -> setting.value = blockList) + .onModuleActivated(blockListSetting -> blockListSetting.set(new ReferenceOpenHashSet<>((List) setting.value))) + .build() + ); + } else if (type == Item.class) { + sgItemLists.add(new ItemListSetting.Builder() + .name(setting.getName()) + .description(getDescription(setting.getName())) + .defaultValue(new ReferenceOpenHashSet<>((List) setting.defaultValue)) + .onChanged(itemList -> setting.value = itemList) + .onModuleActivated(itemListSetting -> itemListSetting.set(new ReferenceOpenHashSet<>((List) setting.value))) + .build() + ); + } + } + case null, default -> { } } } diff --git a/src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryItemSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryItemSetting.java new file mode 100644 index 0000000000..ccccf7397a --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryItemSetting.java @@ -0,0 +1,77 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.settings; + +import com.google.common.base.Predicates; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +import java.util.function.Consumer; +import java.util.function.Predicate; + +public abstract class AbstractRegistryItemSetting extends Setting { + public final Predicate filter; + public final Registry registry; + + protected AbstractRegistryItemSetting(String name, String description, V defaultValue, Consumer onChanged, Consumer> onModuleActivated, IVisible visible, Predicate filter, Registry registry) { + super(name, description, defaultValue, onChanged, onModuleActivated, visible); + + this.filter = filter; + this.registry = registry; + } + + @Override + protected final V parseImpl(String str) { + return parseId(registry, str); + } + + @Override + protected final boolean isValueValid(V value) { + return value != null && filter.test(value); + } + + @Override + public final Iterable getIdentifierSuggestions() { + return registry.getIds(); + } + + @Override + protected final NbtCompound save(NbtCompound tag) { + tag.putString("value", registry.getId(get()).toString()); + + return tag; + } + + @Override + protected final V load(NbtCompound tag) { + V value = registry.get(Identifier.of(tag.getString("value", ""))); + + if (!isValueValid(value)) { + resetImpl(); + } else { + this.value = value; + } + + return get(); + } + + @SuppressWarnings("unchecked") + protected static abstract class AbstractBuilder, V, S extends AbstractRegistryItemSetting> extends SettingBuilder { + protected Predicate filter = Predicates.alwaysTrue(); + + protected AbstractBuilder() { + super(null); + } + + public B filter(Predicate filter) { + this.filter = filter; + return (B) this; + } + } + +} + diff --git a/src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryListSetting.java new file mode 100644 index 0000000000..9a3add5668 --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/settings/AbstractRegistryListSetting.java @@ -0,0 +1,90 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.settings; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtList; +import net.minecraft.nbt.NbtString; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.function.Consumer; +import java.util.function.Predicate; + +public abstract class AbstractRegistryListSetting, V> extends Setting { + public final Predicate filter; + public final Registry registry; + + protected AbstractRegistryListSetting(String name, String description, C defaultValue, Consumer onChanged, Consumer> onModuleActivated, IVisible visible, Predicate filter, Registry registry) { + super(name, description, defaultValue, onChanged, onModuleActivated, visible); + this.filter = filter; + this.registry = registry; + } + + protected abstract C transferCollection(Collection from); + + @Override + public final void resetImpl() { + value = transferCollection(defaultValue); + } + + @Override + protected final C parseImpl(String str) { + String[] values = StringUtils.split(str, ','); + List items = new ArrayList<>(values.length); + + try { + for (String string : values) { + V value = parseId(this.registry, string); + if (value != null && filter.test(value)) items.add(value); + } + } catch (Exception ignored) {} + + return transferCollection(items); + } + + @Override + protected boolean isValueValid(C value) { + return true; + } + + @Override + public final Iterable getIdentifierSuggestions() { + return this.registry.getIds(); + } + + @Override + protected NbtCompound save(NbtCompound tag) { + NbtList valueTag = new NbtList(); + for (V value : get()) { + valueTag.add(NbtString.of(this.registry.getId(value).toString())); + } + tag.put("value", valueTag); + + return tag; + } + + @Override + protected C load(NbtCompound tag) { + get().clear(); + + NbtList valueTag = tag.getListOrEmpty("value"); + for (NbtElement tagI : valueTag) { + V value = this.registry.get(Identifier.of(tagI.asString().orElse(""))); + if (value == null) continue; + + if (filter.test(value)) get().add(value); + } + + return get(); + } + +} diff --git a/src/main/java/meteordevelopment/meteorclient/settings/BlockListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/BlockListSetting.java index 5d49ac76dd..97aad3bfb8 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/BlockListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/BlockListSetting.java @@ -5,93 +5,36 @@ package meteordevelopment.meteorclient.settings; +import com.google.common.base.Predicates; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import net.minecraft.block.Block; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.nbt.NbtList; -import net.minecraft.nbt.NbtString; import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.Collection; +import java.util.Collections; +import java.util.Set; import java.util.function.Consumer; import java.util.function.Predicate; -public class BlockListSetting extends Setting> { - public final Predicate filter; - - public BlockListSetting(String name, String description, List defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, Predicate filter, IVisible visible) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); - - this.filter = filter; - } - - @Override - public void resetImpl() { - value = new ArrayList<>(defaultValue); - } - - @Override - protected List parseImpl(String str) { - String[] values = str.split(","); - List blocks = new ArrayList<>(values.length); - - try { - for (String value : values) { - Block block = parseId(Registries.BLOCK, value); - if (block != null && (filter == null || filter.test(block))) blocks.add(block); - } - } catch (Exception ignored) {} - - return blocks; - } - - @Override - protected boolean isValueValid(List value) { - return true; +public class BlockListSetting extends AbstractRegistryListSetting, Block> { + public BlockListSetting(String name, String description, Set defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, Predicate filter, IVisible visible) { + super(name, description, defaultValue, onChanged, onModuleActivated, visible, filter, Registries.BLOCK); } @Override - public Iterable getIdentifierSuggestions() { - return Registries.BLOCK.getIds(); - } - - @Override - protected NbtCompound save(NbtCompound tag) { - NbtList valueTag = new NbtList(); - for (Block block : get()) { - valueTag.add(NbtString.of(Registries.BLOCK.getId(block).toString())); - } - tag.put("value", valueTag); - - return tag; - } - - @Override - protected List load(NbtCompound tag) { - get().clear(); - - NbtList valueTag = tag.getListOrEmpty("value"); - for (NbtElement tagI : valueTag) { - Block block = Registries.BLOCK.get(Identifier.of(tagI.asString().orElse(""))); - - if (filter == null || filter.test(block)) get().add(block); - } - - return get(); + protected Set transferCollection(Collection from) { + return new ReferenceOpenHashSet<>(from); } - public static class Builder extends SettingBuilder, BlockListSetting> { - private Predicate filter; + public static class Builder extends SettingBuilder, BlockListSetting> { + private Predicate filter = Predicates.alwaysTrue(); public Builder() { - super(new ArrayList<>(0)); + super(Collections.emptySet()); } public Builder defaultValue(Block... defaults) { - return defaultValue(defaults != null ? Arrays.asList(defaults) : new ArrayList<>()); + return defaultValue(defaults != null ? ReferenceOpenHashSet.of(defaults) : new ReferenceOpenHashSet<>()); } public Builder filter(Predicate filter) { diff --git a/src/main/java/meteordevelopment/meteorclient/settings/BlockSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/BlockSetting.java index 0700964b72..6a2ecb148e 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/BlockSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/BlockSetting.java @@ -6,72 +6,17 @@ package meteordevelopment.meteorclient.settings; import net.minecraft.block.Block; -import net.minecraft.nbt.NbtCompound; import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; import java.util.function.Consumer; import java.util.function.Predicate; -public class BlockSetting extends Setting { - public final Predicate filter; - +public class BlockSetting extends AbstractRegistryItemSetting { public BlockSetting(String name, String description, Block defaultValue, Consumer onChanged, Consumer> onModuleActivated, IVisible visible, Predicate filter) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); - - this.filter = filter; - } - - @Override - protected Block parseImpl(String str) { - return parseId(Registries.BLOCK, str); - } - - @Override - protected boolean isValueValid(Block value) { - return filter == null || filter.test(value); - } - - @Override - public Iterable getIdentifierSuggestions() { - return Registries.BLOCK.getIds(); - } - - @Override - protected NbtCompound save(NbtCompound tag) { - tag.putString("value", Registries.BLOCK.getId(get()).toString()); - - return tag; + super(name, description, defaultValue, onChanged, onModuleActivated, visible, filter, Registries.BLOCK); } - @Override - protected Block load(NbtCompound tag) { - value = Registries.BLOCK.get(Identifier.of(tag.getString("value", ""))); - - if (filter != null && !filter.test(value)) { - for (Block block : Registries.BLOCK) { - if (filter.test(block)) { - value = block; - break; - } - } - } - - return get(); - } - - public static class Builder extends SettingBuilder { - private Predicate filter; - - public Builder() { - super(null); - } - - public Builder filter(Predicate filter) { - this.filter = filter; - return this; - } - + public static class Builder extends AbstractBuilder { @Override public BlockSetting build() { return new BlockSetting(name, description, defaultValue, onChanged, onModuleActivated, visible, filter); diff --git a/src/main/java/meteordevelopment/meteorclient/settings/BoolSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/BoolSetting.java index b554923443..e7c88a8871 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/BoolSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/BoolSetting.java @@ -31,7 +31,7 @@ protected boolean isValueValid(Boolean value) { } @Override - public List getSuggestions() { + public Iterable getSuggestions() { return SUGGESTIONS; } diff --git a/src/main/java/meteordevelopment/meteorclient/settings/ColorSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/ColorSetting.java index 930124b3ea..920afd927b 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/ColorSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/ColorSetting.java @@ -43,7 +43,7 @@ protected boolean isValueValid(SettingColor value) { } @Override - public List getSuggestions() { + public Iterable getSuggestions() { return SUGGESTIONS; } diff --git a/src/main/java/meteordevelopment/meteorclient/settings/EntityTypeListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/EntityTypeListSetting.java index b716b4c219..276103dea3 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/EntityTypeListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/EntityTypeListSetting.java @@ -88,7 +88,7 @@ protected boolean isValueValid(Set> value) { } @Override - public List getSuggestions() { + public Iterable getSuggestions() { if (suggestions == null) { suggestions = new ArrayList<>(groups); for (EntityType entityType : Registries.ENTITY_TYPE) { diff --git a/src/main/java/meteordevelopment/meteorclient/settings/EnumSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/EnumSetting.java index fae07d2770..cd989e253b 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/EnumSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/EnumSetting.java @@ -5,33 +5,27 @@ package meteordevelopment.meteorclient.settings; +import it.unimi.dsi.fastutil.objects.Object2ObjectRBTreeMap; import net.minecraft.nbt.NbtCompound; -import java.util.ArrayList; -import java.util.List; +import java.util.Map; import java.util.function.Consumer; public class EnumSetting> extends Setting { - private final T[] values; - - private final List suggestions; + private final Map nameToValueMap = new Object2ObjectRBTreeMap<>(String.CASE_INSENSITIVE_ORDER); @SuppressWarnings("unchecked") public EnumSetting(String name, String description, T defaultValue, Consumer onChanged, Consumer> onModuleActivated, IVisible visible) { super(name, description, defaultValue, onChanged, onModuleActivated, visible); - values = (T[]) defaultValue.getDeclaringClass().getEnumConstants(); - suggestions = new ArrayList<>(values.length); - for (T value : values) suggestions.add(value.toString()); + for (Object t : defaultValue.getDeclaringClass().getEnumConstants()) { + nameToValueMap.put(t.toString(), (T) t); + } } @Override protected T parseImpl(String str) { - for (T possibleValue : values) { - if (str.equalsIgnoreCase(possibleValue.toString())) return possibleValue; - } - - return null; + return nameToValueMap.get(str); } @Override @@ -40,8 +34,8 @@ protected boolean isValueValid(T value) { } @Override - public List getSuggestions() { - return suggestions; + public Iterable getSuggestions() { + return nameToValueMap.keySet(); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/settings/FontFaceSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/FontFaceSetting.java index 3ed272c878..366988c1c2 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/FontFaceSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/FontFaceSetting.java @@ -39,7 +39,7 @@ protected FontFace parseImpl(String str) { } @Override - public List getSuggestions() { + public Iterable getSuggestions() { return List.of("JetBrainsMono-Regular", "Arial-Bold"); } diff --git a/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java index 89da126639..7e5bb5ec6b 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java @@ -5,6 +5,8 @@ package meteordevelopment.meteorclient.settings; +import com.google.common.base.Predicates; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import net.minecraft.item.Item; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; @@ -13,55 +15,25 @@ import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.util.function.Consumer; import java.util.function.Predicate; -public class ItemListSetting extends Setting> { - public final Predicate filter; +public class ItemListSetting extends AbstractRegistryListSetting, Item> { private final boolean bypassFilterWhenSavingAndLoading; - public ItemListSetting(String name, String description, List defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, IVisible visible, Predicate filter, boolean bypassFilterWhenSavingAndLoading) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); - - this.filter = filter; + public ItemListSetting(String name, String description, Set defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, IVisible visible, Predicate filter, boolean bypassFilterWhenSavingAndLoading) { + super(name, description, defaultValue, onChanged, onModuleActivated, visible, filter, Registries.ITEM); this.bypassFilterWhenSavingAndLoading = bypassFilterWhenSavingAndLoading; } @Override - protected List parseImpl(String str) { - String[] values = str.split(","); - List items = new ArrayList<>(values.length); - - try { - for (String value : values) { - Item item = parseId(Registries.ITEM, value); - if (item != null && (filter == null || filter.test(item))) items.add(item); - } - } catch (Exception ignored) {} - - return items; - } - - @Override - public void resetImpl() { - value = new ArrayList<>(defaultValue); - } - - @Override - protected boolean isValueValid(List value) { - return true; - } - - @Override - public Iterable getIdentifierSuggestions() { - return Registries.ITEM.getIds(); + protected Set transferCollection(Collection from) { + return new ReferenceOpenHashSet<>(from); } @Override - public NbtCompound save(NbtCompound tag) { + protected NbtCompound save(NbtCompound tag) { NbtList valueTag = new NbtList(); for (Item item : get()) { if (bypassFilterWhenSavingAndLoading || (filter == null || filter.test(item))) valueTag.add(NbtString.of(Registries.ITEM.getId(item).toString())); @@ -72,7 +44,7 @@ public NbtCompound save(NbtCompound tag) { } @Override - public List load(NbtCompound tag) { + public Set load(NbtCompound tag) { get().clear(); NbtList valueTag = tag.getListOrEmpty("value"); @@ -85,16 +57,16 @@ public List load(NbtCompound tag) { return get(); } - public static class Builder extends SettingBuilder, ItemListSetting> { - private Predicate filter; + public static class Builder extends SettingBuilder, ItemListSetting> { + private Predicate filter = Predicates.alwaysTrue(); private boolean bypassFilterWhenSavingAndLoading; public Builder() { - super(new ArrayList<>(0)); + super(Collections.emptySet()); } public Builder defaultValue(Item... defaults) { - return defaultValue(defaults != null ? Arrays.asList(defaults) : new ArrayList<>()); + return defaultValue(defaults != null ? ReferenceOpenHashSet.of(defaults) : new ReferenceOpenHashSet<>()); } public Builder filter(Predicate filter) { diff --git a/src/main/java/meteordevelopment/meteorclient/settings/ItemSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/ItemSetting.java index 05e65c66a2..d66511470e 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/ItemSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/ItemSetting.java @@ -6,72 +6,17 @@ package meteordevelopment.meteorclient.settings; import net.minecraft.item.Item; -import net.minecraft.nbt.NbtCompound; import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; import java.util.function.Consumer; import java.util.function.Predicate; -public class ItemSetting extends Setting { - public final Predicate filter; - +public class ItemSetting extends AbstractRegistryItemSetting { public ItemSetting(String name, String description, Item defaultValue, Consumer onChanged, Consumer> onModuleActivated, IVisible visible, Predicate filter) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); - - this.filter = filter; - } - - @Override - protected Item parseImpl(String str) { - return parseId(Registries.ITEM, str); - } - - @Override - protected boolean isValueValid(Item value) { - return filter == null || filter.test(value); - } - - @Override - public Iterable getIdentifierSuggestions() { - return Registries.ITEM.getIds(); - } - - @Override - public NbtCompound save(NbtCompound tag) { - tag.putString("value", Registries.ITEM.getId(get()).toString()); - - return tag; + super(name, description, defaultValue, onChanged, onModuleActivated, visible, filter, Registries.ITEM); } - @Override - public Item load(NbtCompound tag) { - value = Registries.ITEM.get(Identifier.of(tag.getString("value",""))); - - if (filter != null && !filter.test(value)) { - for (Item item : Registries.ITEM) { - if (filter.test(item)) { - value = item; - break; - } - } - } - - return get(); - } - - public static class Builder extends SettingBuilder { - private Predicate filter; - - public Builder() { - super(null); - } - - public Builder filter(Predicate filter) { - this.filter = filter; - return this; - } - + public static class Builder extends AbstractBuilder { @Override public ItemSetting build() { return new ItemSetting(name, description, defaultValue, onChanged, onModuleActivated, visible, filter); diff --git a/src/main/java/meteordevelopment/meteorclient/settings/ModuleListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/ModuleListSetting.java index 6000407ca4..4b4ab2e1ad 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/ModuleListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/ModuleListSetting.java @@ -49,7 +49,7 @@ protected boolean isValueValid(List value) { } @Override - public List getSuggestions() { + public Iterable getSuggestions() { if (suggestions == null) { suggestions = new ArrayList<>(Modules.get().getAll().size()); for (Module module : Modules.get().getAll()) suggestions.add(module.name); diff --git a/src/main/java/meteordevelopment/meteorclient/settings/PacketListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/PacketListSetting.java index a0197e0f4f..0435dabd40 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/PacketListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/PacketListSetting.java @@ -55,7 +55,7 @@ protected boolean isValueValid(Set>> value) { } @Override - public List getSuggestions() { + public Iterable getSuggestions() { if (suggestions == null) { suggestions = new ArrayList<>(PacketUtils.getC2SPackets().size() + PacketUtils.getS2CPackets().size()); diff --git a/src/main/java/meteordevelopment/meteorclient/settings/ParticleTypeListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/ParticleTypeListSetting.java index 6767344ede..5161cd213b 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/ParticleTypeListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/ParticleTypeListSetting.java @@ -5,78 +5,24 @@ package meteordevelopment.meteorclient.settings; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.nbt.NbtList; -import net.minecraft.nbt.NbtString; -import net.minecraft.particle.ParticleEffect; +import com.google.common.base.Predicates; import net.minecraft.particle.ParticleType; import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.function.Consumer; -public class ParticleTypeListSetting extends Setting>> { +public class ParticleTypeListSetting extends AbstractRegistryListSetting>, ParticleType> { public ParticleTypeListSetting(String name, String description, List> defaultValue, Consumer>> onChanged, Consumer>>> onModuleActivated, IVisible visible) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); + super(name, description, defaultValue, onChanged, onModuleActivated, visible, Predicates.alwaysTrue(), Registries.PARTICLE_TYPE); } @Override - public void resetImpl() { - value = new ArrayList<>(defaultValue); - } - - @Override - protected List> parseImpl(String str) { - String[] values = str.split(","); - List> particleTypes = new ArrayList<>(values.length); - - try { - for (String value : values) { - ParticleType particleType = parseId(Registries.PARTICLE_TYPE, value); - if (particleType instanceof ParticleEffect) particleTypes.add(particleType); - } - } catch (Exception ignored) {} - - return particleTypes; - } - - @Override - protected boolean isValueValid(List> value) { - return true; - } - - @Override - public Iterable getIdentifierSuggestions() { - return Registries.PARTICLE_TYPE.getIds(); - } - - @Override - public NbtCompound save(NbtCompound tag) { - NbtList valueTag = new NbtList(); - for (ParticleType particleType : get()) { - Identifier id = Registries.PARTICLE_TYPE.getId(particleType); - if (id != null) valueTag.add(NbtString.of(id.toString())); - } - tag.put("value", valueTag); - - return tag; - } - - @Override - public List> load(NbtCompound tag) { - get().clear(); - - NbtList valueTag = tag.getListOrEmpty("value"); - for (NbtElement tagI : valueTag) { - ParticleType particleType = Registries.PARTICLE_TYPE.get(Identifier.of(tagI.asString().orElse(""))); - if (particleType != null) get().add(particleType); - } - - return get(); + protected List> transferCollection(Collection> from) { + return new ArrayList<>(from); } public static class Builder extends SettingBuilder>, ParticleTypeListSetting> { diff --git a/src/main/java/meteordevelopment/meteorclient/settings/Setting.java b/src/main/java/meteordevelopment/meteorclient/settings/Setting.java index 443fe390fe..f02bbd1a24 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/Setting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/Setting.java @@ -14,14 +14,11 @@ import net.minecraft.util.Identifier; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; import java.util.Objects; import java.util.function.Consumer; public abstract class Setting implements IGetter, ISerializable { - private static final List NO_SUGGESTIONS = new ArrayList<>(0); - public final String name, title, description; private final IVisible visible; @@ -108,8 +105,8 @@ public Iterable getIdentifierSuggestions() { return null; } - public List getSuggestions() { - return NO_SUGGESTIONS; + public Iterable getSuggestions() { + return Collections.emptyList(); } protected abstract NbtCompound save(NbtCompound tag); @@ -158,7 +155,7 @@ public static T parseId(Registry registry, String name) { Identifier id; if (name.contains(":")) id = Identifier.of(name); - else id = Identifier.of("minecraft", name); + else id = Identifier.ofVanilla(name); if (registry.containsId(id)) return registry.get(id); return null; diff --git a/src/main/java/meteordevelopment/meteorclient/settings/SoundEventListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/SoundEventListSetting.java index f516843a4c..2a1a5e7973 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/SoundEventListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/SoundEventListSetting.java @@ -5,76 +5,24 @@ package meteordevelopment.meteorclient.settings; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.nbt.NbtList; -import net.minecraft.nbt.NbtString; +import com.google.common.base.Predicates; import net.minecraft.registry.Registries; import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Identifier; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.function.Consumer; -public class SoundEventListSetting extends Setting> { +public class SoundEventListSetting extends AbstractRegistryListSetting, SoundEvent> { public SoundEventListSetting(String name, String description, List defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, IVisible visible) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); + super(name, description, defaultValue, onChanged, onModuleActivated, visible, Predicates.alwaysTrue(), Registries.SOUND_EVENT); } @Override - public void resetImpl() { - value = new ArrayList<>(defaultValue); - } - - @Override - protected List parseImpl(String str) { - String[] values = str.split(","); - List sounds = new ArrayList<>(values.length); - - try { - for (String value : values) { - SoundEvent sound = parseId(Registries.SOUND_EVENT, value); - if (sound != null) sounds.add(sound); - } - } catch (Exception ignored) {} - - return sounds; - } - - @Override - protected boolean isValueValid(List value) { - return true; - } - - @Override - public Iterable getIdentifierSuggestions() { - return Registries.SOUND_EVENT.getIds(); - } - - @Override - public NbtCompound save(NbtCompound tag) { - NbtList valueTag = new NbtList(); - for (SoundEvent sound : get()) { - Identifier id = Registries.SOUND_EVENT.getId(sound); - if (id != null) valueTag.add(NbtString.of(id.toString())); - } - tag.put("value", valueTag); - - return tag; - } - - @Override - public List load(NbtCompound tag) { - get().clear(); - - for (NbtElement tagI : tag.getListOrEmpty("value")) { - SoundEvent soundEvent = Registries.SOUND_EVENT.get(Identifier.of(tagI.asString().orElse(""))); - if (soundEvent != null) get().add(soundEvent); - } - - return get(); + protected List transferCollection(Collection from) { + return new ArrayList<>(from); } public static class Builder extends SettingBuilder, SoundEventListSetting> { diff --git a/src/main/java/meteordevelopment/meteorclient/settings/StatusEffectListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/StatusEffectListSetting.java index e4335ca2d8..66ed60a00d 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/StatusEffectListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/StatusEffectListSetting.java @@ -5,77 +5,24 @@ package meteordevelopment.meteorclient.settings; +import com.google.common.base.Predicates; import net.minecraft.entity.effect.StatusEffect; -import net.minecraft.nbt.NbtCompound; -import net.minecraft.nbt.NbtElement; -import net.minecraft.nbt.NbtList; -import net.minecraft.nbt.NbtString; import net.minecraft.registry.Registries; -import net.minecraft.util.Identifier; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.function.Consumer; -public class StatusEffectListSetting extends Setting> { +public class StatusEffectListSetting extends AbstractRegistryListSetting, StatusEffect> { public StatusEffectListSetting(String name, String description, List defaultValue, Consumer> onChanged, Consumer>> onModuleActivated, IVisible visible) { - super(name, description, defaultValue, onChanged, onModuleActivated, visible); + super(name, description, defaultValue, onChanged, onModuleActivated, visible, Predicates.alwaysTrue(), Registries.STATUS_EFFECT); } @Override - public void resetImpl() { - value = new ArrayList<>(defaultValue); - } - - @Override - protected List parseImpl(String str) { - String[] values = str.split(","); - List effects = new ArrayList<>(values.length); - - try { - for (String value : values) { - StatusEffect effect = parseId(Registries.STATUS_EFFECT, value); - if (effect != null) effects.add(effect); - } - } catch (Exception ignored) {} - - return effects; - } - - @Override - protected boolean isValueValid(List value) { - return true; - } - - @Override - public Iterable getIdentifierSuggestions() { - return Registries.STATUS_EFFECT.getIds(); - } - - @Override - public NbtCompound save(NbtCompound tag) { - NbtList valueTag = new NbtList(); - - for (StatusEffect effect : get()) { - Identifier id = Registries.STATUS_EFFECT.getId(effect); - if (id != null) valueTag.add(NbtString.of(id.toString())); - } - tag.put("value", valueTag); - - return tag; - } - - @Override - public List load(NbtCompound tag) { - get().clear(); - - for (NbtElement tagI : tag.getListOrEmpty("value")) { - StatusEffect effect = Registries.STATUS_EFFECT.get(Identifier.of(tagI.asString().orElse(""))); - if (effect != null) get().add(effect); - } - - return get(); + protected List transferCollection(Collection from) { + return new ArrayList<>(from); } public static class Builder extends SettingBuilder, StatusEffectListSetting> { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java index da963f4230..042d194987 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java @@ -19,6 +19,7 @@ import net.minecraft.util.math.MathHelper; import java.util.List; +import java.util.Set; import static meteordevelopment.meteorclient.MeteorClient.mc; @@ -31,7 +32,7 @@ public class HoleHud extends HudElement { // General - public final Setting> safe = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> safe = sgGeneral.add(new BlockListSetting.Builder() .name("safe-blocks") .description("Which blocks to consider safe.") .defaultValue(Blocks.OBSIDIAN, Blocks.BEDROCK, Blocks.CRYING_OBSIDIAN, Blocks.NETHERITE_BLOCK) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java index d22367c277..7f90dbf74f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java @@ -43,7 +43,7 @@ public class AutoTrap extends Module { // General - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("whitelist") .description("Which blocks to use.") .defaultValue(Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java index 25ea0b41cf..59f9cca06c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java @@ -36,13 +36,14 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; public class HoleFiller extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final SettingGroup sgSmart = settings.createGroup("Smart"); private final SettingGroup sgRender = settings.createGroup("Render"); - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("Which blocks can be used to fill holes.") .defaultValue( diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java index d1706de6b9..b3b84859cb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; public class SelfTrap extends Module { public enum TopMode { @@ -43,7 +44,7 @@ public enum BottomMode { // General - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("whitelist") .description("Which blocks to use.") .defaultValue(Blocks.OBSIDIAN, Blocks.NETHERITE_BLOCK) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java index 588af5b095..2f0d6f0b65 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java @@ -39,6 +39,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.function.Predicate; public class Surround extends Module { @@ -48,7 +49,7 @@ public class Surround extends Module { // General - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("What blocks to use for surround.") .defaultValue(Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN, Blocks.NETHERITE_BLOCK) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java index f07ce95cef..e135040b59 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java @@ -39,6 +39,7 @@ import org.lwjgl.glfw.GLFW; import java.util.List; +import java.util.Set; import java.util.concurrent.ThreadLocalRandom; public class InventoryTweaks extends Module { @@ -106,7 +107,7 @@ public class InventoryTweaks extends Module { // Anti drop - private final Setting> antiDropItems = sgAntiDrop.add(new ItemListSetting.Builder() + private final Setting> antiDropItems = sgAntiDrop.add(new ItemListSetting.Builder() .name("anti-drop-items") .description("Items to prevent dropping. Doesn't work in creative inventory screen.") .build() @@ -127,7 +128,7 @@ public class InventoryTweaks extends Module { // Auto Drop - private final Setting> autoDropItems = sgAutoDrop.add(new ItemListSetting.Builder() + private final Setting> autoDropItems = sgAutoDrop.add(new ItemListSetting.Builder() .name("auto-drop-items") .description("Items to drop.") .build() @@ -192,7 +193,7 @@ public class InventoryTweaks extends Module { .build() ); - private final Setting> dumpItems = sgStealDump.add(new ItemListSetting.Builder() + private final Setting> dumpItems = sgStealDump.add(new ItemListSetting.Builder() .name("dump-items") .description("Items to dump.") .build() @@ -205,7 +206,7 @@ public class InventoryTweaks extends Module { .build() ); - private final Setting> stealItems = sgStealDump.add(new ItemListSetting.Builder() + private final Setting> stealItems = sgStealDump.add(new ItemListSetting.Builder() .name("steal-items") .description("Items to steal.") .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java index ad02674d0f..f57851d104 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java @@ -29,12 +29,13 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Set; public class Scaffold extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); private final SettingGroup sgRender = settings.createGroup("Render"); - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("Selected blocks.") .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java index 18ee10e8d7..4af9e43949 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java @@ -11,6 +11,7 @@ import net.minecraft.block.Block; import java.util.List; +import java.util.Set; public class Slippy extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -31,14 +32,14 @@ public class Slippy extends Module { .build() ); - public final Setting> ignoredBlocks = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> ignoredBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("ignored-blocks") .description("Decide which blocks not to slip on") .visible(() -> listMode.get() == ListMode.Blacklist) .build() ); - public final Setting> allowedBlocks = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> allowedBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("allowed-blocks") .description("Decide which blocks to slip on") .visible(() -> listMode.get() == ListMode.Whitelist) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java index 26dec3ad27..5fa9bfa6bb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java @@ -28,6 +28,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; import java.util.function.BiPredicate; public class AutoEat extends Module { @@ -39,7 +40,7 @@ public class AutoEat extends Module { private final SettingGroup sgThreshold = settings.createGroup("Threshold"); // General - public final Setting> blacklist = sgGeneral.add(new ItemListSetting.Builder() + public final Setting> blacklist = sgGeneral.add(new ItemListSetting.Builder() .name("blacklist") .description("Which items to not eat.") .defaultValue( diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java index 569400a272..730a65f54b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java @@ -21,11 +21,12 @@ import net.minecraft.item.ItemStack; import java.util.List; +import java.util.Set; public class AutoMend extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final Setting> blacklist = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> blacklist = sgGeneral.add(new ItemListSetting.Builder() .name("blacklist") .description("Item blacklist.") .filter(item -> item.getComponents().get(DataComponentTypes.DAMAGE) != null) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java index 1f3fa9a9fc..58fa9227d0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.List; +import java.util.Set; public class AutoReplenish extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -69,7 +70,7 @@ public class AutoReplenish extends Module { .build() ); - private final Setting> excludedItems = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> excludedItems = sgGeneral.add(new ItemListSetting.Builder() .name("excluded-items") .description("Items that won't be replenished.") .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java index fdc6774c86..5b50b126ab 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java @@ -29,6 +29,7 @@ import net.minecraft.registry.tag.ItemTags; import java.util.List; +import java.util.Set; import java.util.function.Predicate; public class AutoTool extends Module { @@ -98,7 +99,7 @@ public class AutoTool extends Module { .build() ); - private final Setting> whitelist = sgWhitelist.add(new ItemListSetting.Builder() + private final Setting> whitelist = sgWhitelist.add(new ItemListSetting.Builder() .name("whitelist") .description("The tools you want to use.") .visible(() -> listMode.get() == ListMode.Whitelist) @@ -106,7 +107,7 @@ public class AutoTool extends Module { .build() ); - private final Setting> blacklist = sgWhitelist.add(new ItemListSetting.Builder() + private final Setting> blacklist = sgWhitelist.add(new ItemListSetting.Builder() .name("blacklist") .description("The tools you don't want to use.") .visible(() -> listMode.get() == ListMode.Blacklist) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java index 0a17c7d48a..26f04c90e5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java @@ -13,6 +13,7 @@ import net.minecraft.item.ItemStack; import java.util.List; +import java.util.Set; public class FastUse extends Module { public enum Mode { @@ -29,7 +30,7 @@ public enum Mode { .build() ); - private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") .description("Which items should fast place work on in \"Some\" mode.") .visible(() -> mode.get() == Mode.Some) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java index 4bea37d511..5a60abe913 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java @@ -33,7 +33,7 @@ public class NoInteract extends Module { // Blocks - private final Setting> blockMine = sgBlocks.add(new BlockListSetting.Builder() + private final Setting> blockMine = sgBlocks.add(new BlockListSetting.Builder() .name("block-mine") .description("Cancels block mining.") .build() @@ -46,7 +46,7 @@ public class NoInteract extends Module { .build() ); - private final Setting> blockInteract = sgBlocks.add(new BlockListSetting.Builder() + private final Setting> blockInteract = sgBlocks.add(new BlockListSetting.Builder() .name("block-interact") .description("Cancels block interaction.") .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java index 1f5f738693..14f438363c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java @@ -19,6 +19,7 @@ import net.minecraft.util.math.BlockPos; import java.util.List; +import java.util.Set; import static net.minecraft.entity.effect.StatusEffects.HASTE; @@ -32,7 +33,7 @@ public class SpeedMine extends Module { .build() ); - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("Selected blocks.") .filter(block -> block.getHardness() > 0) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java index 3b4d786bb1..af62c2c948 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java @@ -16,11 +16,12 @@ import net.minecraft.item.ItemStack; import java.util.List; +import java.util.Set; public class ItemHighlight extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") .description("Items to highlight.") .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java index 145a1ee45a..1a2e8c9798 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java @@ -315,7 +315,7 @@ public class NoRender extends Module { .build() ); - private final Setting> blockEntities = sgWorld.add(new BlockListSetting.Builder() + private final Setting> blockEntities = sgWorld.add(new BlockListSetting.Builder() .name("block-entities") .description("Block entities (chest, shulker block, etc.) to not render.") .filter(block -> block instanceof BlockEntityProvider && !(block instanceof AbstractBannerBlock)) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java index 373344d28e..bbe2237246 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java @@ -5,6 +5,7 @@ package meteordevelopment.meteorclient.systems.modules.render; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import meteordevelopment.meteorclient.events.render.Render3DEvent; import meteordevelopment.meteorclient.renderer.ShapeMode; import meteordevelopment.meteorclient.settings.*; @@ -31,6 +32,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Set; public class Trajectories extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -38,11 +40,11 @@ public class Trajectories extends Module { // General - private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") .description("Items to display trajectories for.") - .defaultValue(getDefaultItems()) - .filter(this::itemFilter) + .defaultValue(Registries.ITEM.stream().filter(Trajectories::itemFilter).collect(ReferenceOpenHashSet.toSet())) + .filter(Trajectories::itemFilter) .build() ); @@ -141,22 +143,12 @@ public Trajectories() { super(Categories.Render, "trajectories", "Predicts the trajectory of throwable items."); } - private boolean itemFilter(Item item) { + private static boolean itemFilter(Item item) { return item instanceof RangedWeaponItem || item instanceof FishingRodItem || item instanceof TridentItem || item instanceof SnowballItem || item instanceof EggItem || item instanceof EnderPearlItem || item instanceof ExperienceBottleItem || item instanceof ThrowablePotionItem || item instanceof WindChargeItem; } - private List getDefaultItems() { - List items = new ArrayList<>(); - - for (Item item : Registries.ITEM) { - if (itemFilter(item)) items.add(item); - } - - return items; - } - private Path getEmptyPath() { for (Path path : paths) { if (path.points.isEmpty()) return path; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java index be042352c5..4ca765fb76 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java @@ -17,6 +17,7 @@ import net.minecraft.block.Block; import java.util.List; +import java.util.Set; public class WallHack extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -35,7 +36,7 @@ public class WallHack extends Module { .build() ); - public final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("What blocks should be targeted for Wall Hack.") .defaultValue() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java index c93e81283c..14146d7807 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java @@ -5,6 +5,7 @@ package meteordevelopment.meteorclient.systems.modules.render; +import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import meteordevelopment.meteorclient.MixinPlugin; import meteordevelopment.meteorclient.events.render.RenderBlockEntityEvent; import meteordevelopment.meteorclient.events.world.AmbientOcclusionEvent; @@ -25,14 +26,14 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShapes; -import java.util.List; +import java.util.Set; public class Xray extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - public static final List ORES = List.of(Blocks.COAL_ORE, Blocks.DEEPSLATE_COAL_ORE, Blocks.IRON_ORE, Blocks.DEEPSLATE_IRON_ORE, Blocks.GOLD_ORE, Blocks.DEEPSLATE_GOLD_ORE, Blocks.LAPIS_ORE, Blocks.DEEPSLATE_LAPIS_ORE, Blocks.REDSTONE_ORE, Blocks.DEEPSLATE_REDSTONE_ORE, Blocks.DIAMOND_ORE, Blocks.DEEPSLATE_DIAMOND_ORE, Blocks.EMERALD_ORE, Blocks.DEEPSLATE_EMERALD_ORE, Blocks.COPPER_ORE, Blocks.DEEPSLATE_COPPER_ORE, Blocks.NETHER_GOLD_ORE, Blocks.NETHER_QUARTZ_ORE, Blocks.ANCIENT_DEBRIS); + public static final Set ORES = ReferenceOpenHashSet.of(Blocks.COAL_ORE, Blocks.DEEPSLATE_COAL_ORE, Blocks.IRON_ORE, Blocks.DEEPSLATE_IRON_ORE, Blocks.GOLD_ORE, Blocks.DEEPSLATE_GOLD_ORE, Blocks.LAPIS_ORE, Blocks.DEEPSLATE_LAPIS_ORE, Blocks.REDSTONE_ORE, Blocks.DEEPSLATE_REDSTONE_ORE, Blocks.DIAMOND_ORE, Blocks.DEEPSLATE_DIAMOND_ORE, Blocks.EMERALD_ORE, Blocks.DEEPSLATE_EMERALD_ORE, Blocks.COPPER_ORE, Blocks.DEEPSLATE_COPPER_ORE, Blocks.NETHER_GOLD_ORE, Blocks.NETHER_QUARTZ_ORE, Blocks.ANCIENT_DEBRIS); - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("whitelist") .description("Which blocks to show x-rayed.") .defaultValue(ORES) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java index 3763cf98c9..0296b2cff0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java @@ -39,7 +39,7 @@ public class BlockESP extends Module { // General - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("Blocks to search for.") .onChanged(blocks1 -> { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java index 0fac693cf3..7449b9f7a2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java @@ -15,6 +15,7 @@ import net.minecraft.world.Heightmap; import net.minecraft.world.chunk.Chunk; +import java.util.Collection; import java.util.List; import static meteordevelopment.meteorclient.MeteorClient.mc; @@ -86,7 +87,7 @@ public void render(Render3DEvent event) { } - public static ESPChunk searchChunk(Chunk chunk, List blocks) { + public static ESPChunk searchChunk(Chunk chunk, Collection blocks) { ESPChunk schunk = new ESPChunk(chunk.getPos().x, chunk.getPos().z); if (schunk.shouldBeDeleted()) return schunk; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java index 80c600eeeb..377c4f5813 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java @@ -21,11 +21,12 @@ import net.minecraft.screen.AbstractFurnaceScreenHandler; import java.util.List; +import java.util.Set; public class AutoSmelter extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final Setting> fuelItems = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> fuelItems = sgGeneral.add(new ItemListSetting.Builder() .name("fuel-items") .description("Items to use as fuel") .defaultValue(Items.COAL, Items.CHARCOAL) @@ -34,7 +35,7 @@ public class AutoSmelter extends Module { .build() ); - private final Setting> smeltableItems = sgGeneral.add(new ItemListSetting.Builder() + private final Setting> smeltableItems = sgGeneral.add(new ItemListSetting.Builder() .name("smeltable-items") .description("Items to smelt") .defaultValue(Items.IRON_ORE, Items.GOLD_ORE, Items.COPPER_ORE, Items.RAW_IRON, Items.RAW_COPPER, Items.RAW_GOLD) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java index ab424c1a0d..97ff705126 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java @@ -22,11 +22,12 @@ import net.minecraft.util.shape.VoxelShapes; import java.util.List; +import java.util.Set; public class Collisions extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - public final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("What blocks should be added collision box.") .filter(this::blockFilter) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java index 70e939765f..1304feffaa 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java @@ -68,10 +68,7 @@ import org.jetbrains.annotations.Range; import org.joml.Vector3d; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.*; import java.util.function.Predicate; @SuppressWarnings("ConstantConditions") @@ -254,7 +251,7 @@ public enum BlockadeType { // Paving - public final Setting> blocksToPlace = sgPaving.add(new BlockListSetting.Builder() + public final Setting> blocksToPlace = sgPaving.add(new BlockListSetting.Builder() .name("blocks-to-place") .description("Blocks it is allowed to place.") .defaultValue(Blocks.OBSIDIAN) @@ -288,7 +285,7 @@ public enum BlockadeType { // Inventory - private final Setting> trashItems = sgInventory.add(new ItemListSetting.Builder() + private final Setting> trashItems = sgInventory.add(new ItemListSetting.Builder() .name("trash-items") .description("Items that are considered trash and can be thrown out.") .defaultValue( diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java index 18c85701c6..bfeae6090c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java @@ -32,6 +32,7 @@ import net.minecraft.util.math.BlockPos; import java.util.List; +import java.util.Set; import java.util.function.Predicate; public class InfinityMiner extends Module { @@ -40,7 +41,7 @@ public class InfinityMiner extends Module { // General - public final Setting> targetBlocks = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> targetBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("target-blocks") .description("The target blocks to mine.") .defaultValue(Blocks.DIAMOND_ORE, Blocks.DEEPSLATE_DIAMOND_ORE) @@ -48,14 +49,14 @@ public class InfinityMiner extends Module { .build() ); - public final Setting> targetItems = sgGeneral.add(new ItemListSetting.Builder() + public final Setting> targetItems = sgGeneral.add(new ItemListSetting.Builder() .name("target-items") .description("The target items to collect.") .defaultValue(Items.DIAMOND) .build() ); - public final Setting> repairBlocks = sgGeneral.add(new BlockListSetting.Builder() + public final Setting> repairBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("repair-blocks") .description("The repair blocks to mine.") .defaultValue(Blocks.COAL_ORE, Blocks.REDSTONE_ORE, Blocks.NETHER_QUARTZ_ORE) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java index cd3b248e9e..368a9a4023 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java @@ -28,6 +28,7 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.List; +import java.util.Set; public class LiquidFiller extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -105,7 +106,7 @@ public class LiquidFiller extends Module { .build() ); - private final Setting> whitelist = sgWhitelist.add(new BlockListSetting.Builder() + private final Setting> whitelist = sgWhitelist.add(new BlockListSetting.Builder() .name("whitelist") .description("The allowed blocks that it will use to fill up the liquid.") .defaultValue( @@ -121,7 +122,7 @@ public class LiquidFiller extends Module { .build() ); - private final Setting> blacklist = sgWhitelist.add(new BlockListSetting.Builder() + private final Setting> blacklist = sgWhitelist.add(new BlockListSetting.Builder() .name("blacklist") .description("The denied blocks that it not will use to fill up the liquid.") .visible(() -> listMode.get() == ListMode.Blacklist) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java index 2f65e14b60..36588aa370 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java @@ -196,14 +196,14 @@ public class Nuker extends Module { .build() ); - private final Setting> blacklist = sgWhitelist.add(new BlockListSetting.Builder() + private final Setting> blacklist = sgWhitelist.add(new BlockListSetting.Builder() .name("blacklist") .description("The blocks you don't want to mine.") .visible(() -> listMode.get() == ListMode.Blacklist) .build() ); - private final Setting> whitelist = sgWhitelist.add(new BlockListSetting.Builder() + private final Setting> whitelist = sgWhitelist.add(new BlockListSetting.Builder() .name("whitelist") .description("The blocks you want to mine.") .visible(() -> listMode.get() == ListMode.Whitelist) @@ -532,11 +532,10 @@ private void addTargetedBlockToList() { BlockPos pos = ((BlockHitResult) hitResult).getBlockPos(); Block targetBlock = mc.world.getBlockState(pos).getBlock(); - List list = listMode.get() == ListMode.Whitelist ? whitelist.get() : blacklist.get(); + Set list = listMode.get() == ListMode.Whitelist ? whitelist.get() : blacklist.get(); String modeName = listMode.get().name(); - if (list.contains(targetBlock)) { - list.remove(targetBlock); + if (list.remove(targetBlock)) { info("Removed " + Names.get(targetBlock) + " from " + modeName); } else { list.add(targetBlock); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java index 5cb8b9df3e..c93f36f954 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Comparator; +import java.util.Set; public class SpawnProofer extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); @@ -72,7 +73,7 @@ public class SpawnProofer extends Module { .build() ); - private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("Block to use for spawn proofing.") .defaultValue(Blocks.TORCH, Blocks.STONE_BUTTON, Blocks.STONE_SLAB) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java index 7dc22f6cf0..9c51436785 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java @@ -52,7 +52,7 @@ public class VeinMiner extends Module { // General - private final Setting> selectedBlocks = sgGeneral.add(new BlockListSetting.Builder() + private final Setting> selectedBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") .description("Which blocks to select.") .defaultValue(Blocks.STONE, Blocks.DIRT, Blocks.GRASS_BLOCK) From 4e7f399ca422bf2588a96b6cd3580bec8ca316a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E8=91=89=20Scarlet?= <93977077+mukjepscarlet@users.noreply.github.com> Date: Wed, 8 Oct 2025 17:32:53 +0800 Subject: [PATCH 20/20] clean imports --- .../meteorclient/commands/commands/SwarmCommand.java | 1 - .../meteorclient/events/render/TooltipDataEvent.java | 2 +- .../base/DynamicRegistryListSettingScreen.java | 5 ++++- .../meteorclient/gui/widgets/WMultiLabel.java | 1 - .../meteorclient/mixin/ItemMixin.java | 1 - .../meteorclient/mixin/WorldRendererAccessor.java | 1 - .../mixininterface/IEntityRenderState.java | 3 --- .../meteorclient/pathing/BaritoneSettings.java | 5 ++++- .../meteorclient/settings/ItemListSetting.java | 4 +++- .../meteorclient/systems/hud/elements/HoleHud.java | 1 - .../meteorclient/systems/modules/Modules.java | 2 +- .../meteorclient/systems/modules/combat/AutoTrap.java | 10 +++------- .../meteorclient/systems/modules/combat/BedAura.java | 5 ++++- .../meteorclient/systems/modules/movement/Slippy.java | 1 - .../meteorclient/systems/modules/player/AutoMend.java | 1 - .../systems/modules/player/AutoReplenish.java | 1 - .../meteorclient/systems/modules/player/AutoTool.java | 1 - .../meteorclient/systems/modules/player/FastUse.java | 1 - .../systems/modules/player/NoInteract.java | 1 - .../systems/modules/player/NoStatusEffects.java | 4 +++- .../meteorclient/systems/modules/player/SpeedMine.java | 1 - .../systems/modules/render/ItemHighlight.java | 1 - .../meteorclient/systems/modules/render/WallHack.java | 1 - .../systems/modules/render/blockesp/BlockESP.java | 1 - .../systems/modules/render/blockesp/ESPChunk.java | 1 - .../systems/modules/world/AutoSmelter.java | 1 - .../meteorclient/systems/modules/world/Collisions.java | 1 - .../systems/modules/world/HighwayBuilder.java | 5 ++++- .../systems/modules/world/InfinityMiner.java | 1 - .../systems/modules/world/SpawnProofer.java | 4 ++-- 30 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java index 9aafddbd84..07256c85bb 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java @@ -34,7 +34,6 @@ import net.minecraft.util.math.BlockPos; import org.jetbrains.annotations.Nullable; -import java.util.List; import java.util.Random; import java.util.Set; diff --git a/src/main/java/meteordevelopment/meteorclient/events/render/TooltipDataEvent.java b/src/main/java/meteordevelopment/meteorclient/events/render/TooltipDataEvent.java index f632f4fb88..8a20cdb51d 100644 --- a/src/main/java/meteordevelopment/meteorclient/events/render/TooltipDataEvent.java +++ b/src/main/java/meteordevelopment/meteorclient/events/render/TooltipDataEvent.java @@ -5,8 +5,8 @@ package meteordevelopment.meteorclient.events.render; -import net.minecraft.item.tooltip.TooltipData; import net.minecraft.item.ItemStack; +import net.minecraft.item.tooltip.TooltipData; public class TooltipDataEvent { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/base/DynamicRegistryListSettingScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/base/DynamicRegistryListSettingScreen.java index f151dddea3..15605c792f 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/base/DynamicRegistryListSettingScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/base/DynamicRegistryListSettingScreen.java @@ -12,7 +12,10 @@ import meteordevelopment.meteorclient.gui.widgets.input.WTextBox; import meteordevelopment.meteorclient.settings.Setting; import net.minecraft.client.MinecraftClient; -import net.minecraft.registry.*; +import net.minecraft.registry.BuiltinRegistries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryWrapper; import net.minecraft.util.Identifier; import net.minecraft.util.InvalidIdentifierException; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WMultiLabel.java b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WMultiLabel.java index 25ec7fa826..4f5a20309d 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WMultiLabel.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WMultiLabel.java @@ -6,7 +6,6 @@ package meteordevelopment.meteorclient.gui.widgets; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; public abstract class WMultiLabel extends WLabel { diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ItemMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ItemMixin.java index cfd2422820..04b25c1b7c 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/ItemMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ItemMixin.java @@ -7,7 +7,6 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.events.render.TooltipDataEvent; - import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.tooltip.TooltipData; diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererAccessor.java b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererAccessor.java index f60acead4b..fe6a42c6dc 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererAccessor.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/WorldRendererAccessor.java @@ -6,7 +6,6 @@ package meteordevelopment.meteorclient.mixin; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; - import net.minecraft.client.render.WorldRenderer; import net.minecraft.entity.player.BlockBreakingInfo; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/meteordevelopment/meteorclient/mixininterface/IEntityRenderState.java b/src/main/java/meteordevelopment/meteorclient/mixininterface/IEntityRenderState.java index c0ac3abe6e..bbd9f9d4a6 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixininterface/IEntityRenderState.java +++ b/src/main/java/meteordevelopment/meteorclient/mixininterface/IEntityRenderState.java @@ -6,10 +6,7 @@ package meteordevelopment.meteorclient.mixininterface; import meteordevelopment.meteorclient.mixin.EntityRenderManagerMixin; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.state.EntityRenderState; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; public interface IEntityRenderState { diff --git a/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java b/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java index c72f6a3d31..8454951aad 100644 --- a/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java +++ b/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java @@ -14,7 +14,10 @@ import net.minecraft.item.Item; import java.awt.*; -import java.lang.reflect.*; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java b/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java index 7e5bb5ec6b..0ca2cd8c1b 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/ItemListSetting.java @@ -15,7 +15,9 @@ import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.Set; import java.util.function.Consumer; import java.util.function.Predicate; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java index 042d194987..7929e536ac 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java @@ -18,7 +18,6 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.MathHelper; -import java.util.List; import java.util.Set; import static meteordevelopment.meteorclient.MeteorClient.mc; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java index b162c416a0..9d322a9627 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/Modules.java @@ -30,8 +30,8 @@ import meteordevelopment.meteorclient.systems.modules.render.*; import meteordevelopment.meteorclient.systems.modules.render.blockesp.BlockESP; import meteordevelopment.meteorclient.systems.modules.render.marker.Marker; -import meteordevelopment.meteorclient.systems.modules.world.Timer; import meteordevelopment.meteorclient.systems.modules.world.*; +import meteordevelopment.meteorclient.systems.modules.world.Timer; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.Keybind; import meteordevelopment.meteorclient.utils.misc.ValueComparableMap; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java index 7f90dbf74f..117c451ae7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java @@ -25,17 +25,13 @@ import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Box; -import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.RaycastContext; -import java.util.Set; -import java.util.LinkedHashSet; -import java.util.ArrayList; -import java.util.List; -import java.util.Comparator; +import java.util.*; public class AutoTrap extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java index 366a95cf4c..a7a0024954 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java @@ -16,7 +16,10 @@ import meteordevelopment.meteorclient.utils.entity.EntityUtils; import meteordevelopment.meteorclient.utils.entity.SortPriority; import meteordevelopment.meteorclient.utils.entity.TargetUtils; -import meteordevelopment.meteorclient.utils.player.*; +import meteordevelopment.meteorclient.utils.player.FindItemResult; +import meteordevelopment.meteorclient.utils.player.InvUtils; +import meteordevelopment.meteorclient.utils.player.PlayerUtils; +import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.meteorclient.utils.render.color.SettingColor; import meteordevelopment.meteorclient.utils.world.BlockUtils; import meteordevelopment.meteorclient.utils.world.CardinalDirection; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java index 4af9e43949..c3491afc3a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java @@ -10,7 +10,6 @@ import meteordevelopment.meteorclient.systems.modules.Module; import net.minecraft.block.Block; -import java.util.List; import java.util.Set; public class Slippy extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java index 730a65f54b..02bd176bbc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java @@ -20,7 +20,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import java.util.List; import java.util.Set; public class AutoMend extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java index 58fa9227d0..a7d7722084 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java @@ -18,7 +18,6 @@ import net.minecraft.item.Items; import java.util.Arrays; -import java.util.List; import java.util.Set; public class AutoReplenish extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java index 5b50b126ab..53d9f505cc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java @@ -28,7 +28,6 @@ import net.minecraft.registry.tag.BlockTags; import net.minecraft.registry.tag.ItemTags; -import java.util.List; import java.util.Set; import java.util.function.Predicate; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java index 26f04c90e5..5b88f3b9aa 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java @@ -12,7 +12,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import java.util.List; import java.util.Set; public class FastUse extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java index 5a60abe913..757c9a8e11 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java @@ -24,7 +24,6 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; -import java.util.List; import java.util.Set; public class NoInteract extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java index 85e8c3cc0c..f7d1df7ec4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java @@ -5,7 +5,9 @@ package meteordevelopment.meteorclient.systems.modules.player; -import meteordevelopment.meteorclient.settings.*; +import meteordevelopment.meteorclient.settings.Setting; +import meteordevelopment.meteorclient.settings.SettingGroup; +import meteordevelopment.meteorclient.settings.StatusEffectListSetting; import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import net.minecraft.entity.effect.StatusEffect; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java index 14f438363c..faa83b8327 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java @@ -18,7 +18,6 @@ import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket; import net.minecraft.util.math.BlockPos; -import java.util.List; import java.util.Set; import static net.minecraft.entity.effect.StatusEffects.HASTE; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java index af62c2c948..03c87b7f0f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java @@ -15,7 +15,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import java.util.List; import java.util.Set; public class ItemHighlight extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java index 4ca765fb76..21e01b5a5f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java @@ -16,7 +16,6 @@ import net.irisshaders.iris.api.v0.IrisApi; import net.minecraft.block.Block; -import java.util.List; import java.util.Set; public class WallHack extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java index 0296b2cff0..d9f89b1ca4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java @@ -28,7 +28,6 @@ import net.minecraft.world.chunk.Chunk; import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutorService; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java index 7449b9f7a2..f116134dc7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPChunk.java @@ -16,7 +16,6 @@ import net.minecraft.world.chunk.Chunk; import java.util.Collection; -import java.util.List; import static meteordevelopment.meteorclient.MeteorClient.mc; import static meteordevelopment.meteorclient.utils.Utils.getRenderDistance; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java index 377c4f5813..e51ebdc9a9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java @@ -20,7 +20,6 @@ import net.minecraft.recipe.RecipePropertySet; import net.minecraft.screen.AbstractFurnaceScreenHandler; -import java.util.List; import java.util.Set; public class AutoSmelter extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java index 97ff705126..465b5f882b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java @@ -21,7 +21,6 @@ import net.minecraft.network.packet.c2s.play.VehicleMoveC2SPacket; import net.minecraft.util.shape.VoxelShapes; -import java.util.List; import java.util.Set; public class Collisions extends Module { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java index 1304feffaa..d8d75b55a9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java @@ -68,7 +68,10 @@ import org.jetbrains.annotations.Range; import org.joml.Vector3d; -import java.util.*; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.Set; import java.util.function.Predicate; @SuppressWarnings("ConstantConditions") diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java index bfeae6090c..bfbe28e72b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java @@ -31,7 +31,6 @@ import net.minecraft.text.Text; import net.minecraft.util.math.BlockPos; -import java.util.List; import java.util.Set; import java.util.function.Predicate; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java index c93f36f954..36f6a15d5d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java @@ -17,14 +17,14 @@ import meteordevelopment.meteorclient.utils.world.BlockUtils; import meteordevelopment.orbit.EventHandler; import net.minecraft.block.*; +import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; -import net.minecraft.util.hit.BlockHitResult; import net.minecraft.world.RaycastContext; import java.util.ArrayList; -import java.util.List; import java.util.Comparator; +import java.util.List; import java.util.Set; public class SpawnProofer extends Module {