Skip to content

Commit 38b6659

Browse files
committed
Assorted improvements to bow aimbot, bow spam and the trajectories modules
1 parent 37f9414 commit 38b6659

File tree

5 files changed

+34
-24
lines changed

5 files changed

+34
-24
lines changed

src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import net.minecraft.entity.passive.AnimalEntity;
2525
import net.minecraft.entity.player.PlayerEntity;
2626
import net.minecraft.item.ArrowItem;
27+
import net.minecraft.item.BowItem;
2728
import net.minecraft.item.Items;
2829
import net.minecraft.util.math.Vec3d;
2930

@@ -130,23 +131,16 @@ private boolean itemInHand() {
130131
return InvUtils.testInMainHand(Items.BOW, Items.CROSSBOW);
131132
}
132133

133-
private void aim(double tickDelta) {
134+
private void aim(float tickDelta) {
134135
// Velocity based on bow charge.
135-
float velocity = (mc.player.getItemUseTime() - mc.player.getItemUseTimeLeft()) / 20f;
136-
velocity = (velocity * velocity + velocity * 2) / 3;
137-
if (velocity > 1) velocity = 1;
136+
float velocity = BowItem.getPullProgress(mc.player.getItemUseTime());
138137

139138
// Positions
140-
double posX = target.getPos().getX() + (target.getPos().getX() - target.prevX) * tickDelta;
141-
double posY = target.getPos().getY() + (target.getPos().getY() - target.prevY) * tickDelta;
142-
double posZ = target.getPos().getZ() + (target.getPos().getZ() - target.prevZ) * tickDelta;
139+
Vec3d pos = target.getLerpedPos(tickDelta);
143140

144-
// Adjusting for hitbox heights
145-
posY -= 1.9f - target.getHeight();
146-
147-
double relativeX = posX - mc.player.getX();
148-
double relativeY = posY - mc.player.getY();
149-
double relativeZ = posZ - mc.player.getZ();
141+
double relativeX = pos.x - mc.player.getX();
142+
double relativeY = pos.y + (target.getHeight() / 2) - mc.player.getEyeY();
143+
double relativeZ = pos.z - mc.player.getZ();
150144

151145
// Calculate the pitch
152146
double hDistance = Math.sqrt(relativeX * relativeX + relativeZ * relativeZ);
@@ -159,7 +153,7 @@ private void aim(double tickDelta) {
159153
if (Float.isNaN(pitch)) {
160154
Rotations.rotate(Rotations.getYaw(target), Rotations.getPitch(target));
161155
} else {
162-
Rotations.rotate(Rotations.getYaw(new Vec3d(posX, posY, posZ)), pitch);
156+
Rotations.rotate(Rotations.getYaw(new Vec3d(pos.x, pos.y, pos.z)), pitch);
163157
}
164158
}
165159

src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowSpam.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ private void onTick(TickEvent.Post event) {
6767
if (!isBow) return;
6868

6969
if (mc.player.getItemUseTime() >= charge.get()) {
70-
mc.player.stopUsingItem();
7170
mc.interactionManager.stopUsingItem(mc.player);
7271
} else {
7372
setPressed(true);

src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ private Path getEmptyPath() {
167167
return path;
168168
}
169169

170-
private void calculatePath(PlayerEntity player, double tickDelta) {
170+
private void calculatePath(PlayerEntity player, float tickDelta) {
171171
// Clear paths
172172
for (Path path : paths) path.clear();
173173

src/main/java/meteordevelopment/meteorclient/utils/entity/ProjectileEntitySimulator.java

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import meteordevelopment.meteorclient.mixininterface.IVec3d;
1111
import meteordevelopment.meteorclient.utils.Utils;
1212
import meteordevelopment.meteorclient.utils.misc.MissHitResult;
13+
import meteordevelopment.meteorclient.utils.player.Rotations;
1314
import net.minecraft.component.DataComponentTypes;
1415
import net.minecraft.component.type.ChargedProjectilesComponent;
1516
import net.minecraft.entity.Entity;
@@ -44,7 +45,7 @@ public class ProjectileEntitySimulator {
4445

4546
// held items
4647

47-
public boolean set(Entity user, ItemStack itemStack, double simulated, boolean accurate, double tickDelta) {
48+
public boolean set(Entity user, ItemStack itemStack, double simulated, boolean accurate, float tickDelta) {
4849
Item item = itemStack.getItem();
4950

5051
switch (item) {
@@ -82,11 +83,19 @@ public boolean set(Entity user, ItemStack itemStack, double simulated, boolean a
8283
return true;
8384
}
8485

85-
public void set(Entity user, double roll, double speed, double simulated, double gravity, double waterDrag, boolean accurate, double tickDelta, EntityType<?> type) {
86+
public void set(Entity user, double roll, double speed, double simulated, double gravity, double waterDrag, boolean accurate, float tickDelta, EntityType<?> type) {
8687
Utils.set(pos, user, tickDelta).add(0, user.getEyeHeight(user.getPose()), 0);
8788

88-
double yaw = MathHelper.lerp(tickDelta, user.prevYaw, user.getYaw());
89-
double pitch = MathHelper.lerp(tickDelta, user.prevPitch, user.getPitch());
89+
double yaw;
90+
double pitch;
91+
92+
if (user == mc.player && Rotations.rotating) {
93+
yaw = Rotations.serverYaw;
94+
pitch = Rotations.serverPitch;
95+
} else {
96+
yaw = user.getYaw(tickDelta);
97+
pitch = user.getPitch(tickDelta);
98+
}
9099

91100
double x, y, z;
92101

@@ -178,9 +187,17 @@ public void set(Entity entity, double gravity, double waterDrag, boolean accurat
178187
this.height = entity.getHeight();
179188
}
180189

181-
public void setFishingBobber(Entity user, double tickDelta) {
182-
double yaw = MathHelper.lerp(tickDelta, user.prevYaw, user.getYaw());
183-
double pitch = MathHelper.lerp(tickDelta, user.prevPitch, user.getPitch());
190+
public void setFishingBobber(Entity user, float tickDelta) {
191+
double yaw;
192+
double pitch;
193+
194+
if (user == mc.player && Rotations.rotating) {
195+
yaw = Rotations.serverYaw;
196+
pitch = Rotations.serverPitch;
197+
} else {
198+
yaw = user.getYaw(tickDelta);
199+
pitch = user.getPitch(tickDelta);
200+
}
184201

185202
double h = Math.cos(-yaw * 0.017453292F - 3.1415927F);
186203
double i = Math.sin(-yaw * 0.017453292F - 3.1415927F);

src/main/java/meteordevelopment/meteorclient/utils/entity/SortPriority.java

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

1717
public enum SortPriority implements Comparator<Entity> {
18-
LowestDistance((e1, e2) -> Double.compare(PlayerUtils.squaredDistanceTo(e1), PlayerUtils.squaredDistanceTo(e2))),
18+
LowestDistance(Comparator.comparingDouble(PlayerUtils::squaredDistanceTo)),
1919
HighestDistance((e1, e2) -> Double.compare(PlayerUtils.squaredDistanceTo(e2), PlayerUtils.squaredDistanceTo(e1))),
2020
LowestHealth(SortPriority::sortHealth),
2121
HighestHealth((e1, e2) -> sortHealth(e2, e1)),

0 commit comments

Comments
 (0)