From f6c360ed7c19ede73e0a99ad46b07f27d484473e Mon Sep 17 00:00:00 2001 From: Dawson <30784509+funkemunky@users.noreply.github.com> Date: Sat, 18 Mar 2023 15:27:04 -0400 Subject: [PATCH] Fixing prediction --- .../ac/check/impl/movement/speed/Prediction.java | 13 +++++++------ .../dev/brighten/ac/handler/MovementHandler.java | 7 +++++++ .../ac/handler/block/BlockUpdateHandler.java | 4 +--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java index c449fb8..1f605a1 100644 --- a/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java +++ b/Anticheat/src/main/java/dev/brighten/ac/check/impl/movement/speed/Prediction.java @@ -41,11 +41,11 @@ public class Prediction extends Check { String tags = String.join(", ", player.EMULATOR.getTags()); Vector predicted = player.getMovement().getPredicted(); - val to = player.getMovement().getTo(); + val from = player.getMovement().getFrom(); - double px = MathUtils.getDelta(predicted.getX(), to.getX()), - py = MathUtils.getDelta(predicted.getY(), to.getY()), - pz = MathUtils.getDelta(predicted.getZ(), to.getZ()); + double px = predicted.getX() - from.getX(), + py = predicted.getY() - from.getY(), + pz = predicted.getZ() - from.getZ(); double totalMotion = px * px + py * py + pz * pz; boolean zeroThree = totalMotion < 9E-4; @@ -69,8 +69,9 @@ public class Prediction extends Check { buffer = 4; } } else if(buffer > 0) buffer-= 0.05f; - debug((badOffset ? Color.Red : "") + "offset=%s f=%s s=%s py=%.3f [%s] tags=[%s]", - offset, forward, strafe, py, totalMotion, tags); + debug((badOffset ? Color.Red : "") + "offset=%s f=%s s=%s dy=%.4f dpy=%.4f py=%.2f [%s] tags=[%s]", + offset, forward, strafe, player.getMovement().getDeltaY(), + py, predicted.getY(), totalMotion, tags); } if (ProtocolVersion.getGameVersion().isBelow(ProtocolVersion.V1_9)) { diff --git a/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java b/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java index 72fb9ba..dd1f942 100644 --- a/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java +++ b/Anticheat/src/main/java/dev/brighten/ac/handler/MovementHandler.java @@ -232,6 +232,13 @@ public class MovementHandler { minimum.getMotion().setMotionZ(deltaZ); } player.EMULATOR.confirm(minimum.getIteration()); + + double mx = player.EMULATOR.getMotion().getMotionX(); + double my = player.EMULATOR.getMotion().getMotionY(); + double mz = player.EMULATOR.getMotion().getMotionZ(); + + //TODO Fix false positive caused by 9E-4 flying not being sent when jumping on slime + System.out.println("Predicted: " + predicted + " | " + mx + " " + my + " " + mz); } } diff --git a/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java b/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java index 0ba74a4..564f0d5 100644 --- a/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java +++ b/Anticheat/src/main/java/dev/brighten/ac/handler/block/BlockUpdateHandler.java @@ -12,15 +12,13 @@ import dev.brighten.ac.utils.Materials; import dev.brighten.ac.utils.XMaterial; import dev.brighten.ac.utils.math.IntVector; import dev.brighten.ac.utils.world.types.RayCollision; -import it.unimi.dsi.fastutil.longs.Long2ObjectArrayMap; import lombok.RequiredArgsConstructor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import java.util.Map; import java.util.Optional; @RequiredArgsConstructor