Skip to content

Commit 118d6f3

Browse files
Wide-Cathexadecimal233
authored andcommitted
Update Blink
- add a pulse setting to stop and start blinking after a delay - reset velocity after cancelling the blink - disable interacting with the player model at the original position closes MeteorDevelopment#2693 closes MeteorDevelopment#3941 closes MeteorDevelopment#3131 Co-authored-by: Hexzii <[email protected]> (cherry picked from commit 75690e1)
1 parent 47db9e1 commit 118d6f3

File tree

3 files changed

+33
-7
lines changed

3 files changed

+33
-7
lines changed

src/main/java/meteordevelopment/meteorclient/mixin/GameRendererMixin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import meteordevelopment.meteorclient.systems.modules.render.Zoom;
2424
import meteordevelopment.meteorclient.systems.modules.world.HighwayBuilder;
2525
import meteordevelopment.meteorclient.utils.Utils;
26+
import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerEntity;
2627
import meteordevelopment.meteorclient.utils.render.NametagUtils;
2728
import meteordevelopment.meteorclient.utils.render.RenderUtils;
2829
import net.minecraft.client.MinecraftClient;
@@ -125,6 +126,10 @@ private HitResult onUpdateTargetedEntity(HitResult original, @Local HitResult hi
125126
if (Modules.get().get(NoMiningTrace.class).canWork(original instanceof EntityHitResult ehr ? ehr.getEntity() : null) && hitResult.getType() == HitResult.Type.BLOCK) {
126127
return hitResult;
127128
}
129+
else if (original instanceof EntityHitResult entityHitResult && entityHitResult.getEntity() instanceof FakePlayerEntity fakePlayer && fakePlayer.noHit) {
130+
return hitResult;
131+
}
132+
128133
return original;
129134
}
130135

src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@
77

88
import meteordevelopment.meteorclient.events.packets.PacketEvent;
99
import meteordevelopment.meteorclient.events.world.TickEvent;
10-
import meteordevelopment.meteorclient.settings.BoolSetting;
11-
import meteordevelopment.meteorclient.settings.KeybindSetting;
12-
import meteordevelopment.meteorclient.settings.Setting;
13-
import meteordevelopment.meteorclient.settings.SettingGroup;
10+
import meteordevelopment.meteorclient.settings.*;
1411
import meteordevelopment.meteorclient.systems.modules.Categories;
1512
import meteordevelopment.meteorclient.systems.modules.Module;
1613
import meteordevelopment.meteorclient.utils.Utils;
1714
import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerEntity;
1815
import meteordevelopment.meteorclient.utils.misc.Keybind;
1916
import meteordevelopment.orbit.EventHandler;
2017
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
18+
import net.minecraft.util.math.Vec3d;
2119
import org.joml.Vector3d;
2220

2321
import java.util.ArrayList;
@@ -33,6 +31,15 @@ public class Blink extends Module {
3331
.build()
3432
);
3533

34+
private final Setting<Integer> delay = sgGeneral.add(new IntSetting.Builder()
35+
.name("pulse-delay")
36+
.description("After the duration in ticks has elapsed, send all packets and start blinking again. 0 to disable.")
37+
.defaultValue(0)
38+
.min(0)
39+
.sliderMax(60)
40+
.build()
41+
);
42+
3643
@SuppressWarnings("unused")
3744
private final Setting<Keybind> cancelBlink = sgGeneral.add(new KeybindSetting.Builder()
3845
.name("cancel-blink")
@@ -49,7 +56,7 @@ public class Blink extends Module {
4956
private FakePlayerEntity model;
5057
private final Vector3d start = new Vector3d();
5158

52-
private boolean cancelled = false;
59+
private boolean cancelled, sending;
5360
private int timer = 0;
5461

5562
public Blink() {
@@ -62,6 +69,7 @@ public void onActivate() {
6269
model = new FakePlayerEntity(mc.player, mc.player.getGameProfile().getName(), 20, true);
6370
model.doNotPush = true;
6471
model.hideWhenInsideCamera = true;
72+
model.noHit = true;
6573
model.spawn();
6674
}
6775

@@ -71,17 +79,28 @@ public void onActivate() {
7179
@Override
7280
public void onDeactivate() {
7381
dumpPackets(!cancelled);
74-
if (cancelled) mc.player.setPos(start.x, start.y, start.z);
82+
83+
if (cancelled) {
84+
mc.player.setPos(start.x, start.y, start.z);
85+
mc.player.setVelocity(Vec3d.ZERO);
86+
}
87+
7588
cancelled = false;
7689
}
7790

7891
@EventHandler
7992
private void onTick(TickEvent.Post event) {
8093
timer++;
94+
95+
if (delay.get() != 0 && delay.get() <= timer) {
96+
onDeactivate();
97+
onActivate();
98+
}
8199
}
82100

83101
@EventHandler
84102
private void onSendPacket(PacketEvent.Send event) {
103+
if (sending) return;
85104
if (!(event.packet instanceof PlayerMoveC2SPacket p)) return;
86105
event.cancel();
87106

@@ -107,10 +126,12 @@ public String getInfoString() {
107126
}
108127

109128
private void dumpPackets(boolean send) {
129+
sending = true;
110130
synchronized (packets) {
111131
if (send) packets.forEach(mc.player.networkHandler::sendPacket);
112132
packets.clear();
113133
}
134+
sending = false;
114135

115136
if (model != null) {
116137
model.despawn();

src/main/java/meteordevelopment/meteorclient/utils/entity/fakeplayer/FakePlayerEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import static meteordevelopment.meteorclient.MeteorClient.mc;
1717

1818
public class FakePlayerEntity extends OtherClientPlayerEntity {
19-
public boolean doNotPush, hideWhenInsideCamera;
19+
public boolean doNotPush, hideWhenInsideCamera, noHit;
2020

2121
public FakePlayerEntity(PlayerEntity player, String name, float health, boolean copyInv) {
2222
super(mc.world, new GameProfile(UUID.randomUUID(), name));

0 commit comments

Comments
 (0)