diff --git a/src/main/java/dev/brighten/ac/check/impl/combat/Reach.java b/src/main/java/dev/brighten/ac/check/impl/combat/Reach.java index e14d295..4c2d6fc 100644 --- a/src/main/java/dev/brighten/ac/check/impl/combat/Reach.java +++ b/src/main/java/dev/brighten/ac/check/impl/combat/Reach.java @@ -44,6 +44,9 @@ public class Reach extends Check { } } + //TODO Figure out how to make the check more sensitive without compromising network stability + //Aka figure out how to minimize the amount of previous locations needed to process to keep network + //stability. like shortening the amount stored, or removing older ones. @Action public void onFlying(WPacketPlayInFlying packet) { if(getPlayer().getInfo().isCreative() || getPlayer().getInfo().isInVehicle()) { diff --git a/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java b/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java index dcad908..08ed95a 100644 --- a/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java +++ b/src/main/java/dev/brighten/ac/handler/EntityLocationHandler.java @@ -51,6 +51,8 @@ public class EntityLocationHandler { streak = 1; } + entityLocationMap.values().forEach(EntityLocation::interpolateLocation); + lastFlying.reset(); } @@ -73,12 +75,7 @@ public class EntityLocationHandler { key -> new EntityLocation(entity)); runAction(entity, () -> { - //Ensuring fully interpolated before clearing old locations - while(eloc.increment > 0) { - eloc.interpolateLocation(); - } eloc.oldLocations.addAll(eloc.interpolatedLocations); - eloc.interpolateLocations(); //We don't need to do version checking here. Atlas handles this for us. eloc.newX += packet.getX(); eloc.newY += packet.getY(); @@ -87,6 +84,7 @@ public class EntityLocationHandler { eloc.newPitch += packet.getPitch(); eloc.increment = 3; + eloc.interpolateLocation(); }); } @@ -109,12 +107,7 @@ public class EntityLocationHandler { key -> new EntityLocation(entity)); runAction(entity, () -> { - //Ensuring fully interpolated before clearing old locations - while(eloc.increment > 0) { - eloc.interpolateLocation(); - } eloc.oldLocations.addAll(eloc.interpolatedLocations); - eloc.interpolateLocations(); if(data.getPlayerVersion().isOrAbove(ProtocolVersion.V1_9)) { if (!(Math.abs(eloc.x - packet.getX()) >= 0.03125D) && !(Math.abs(eloc.y - packet.getY()) >= 0.015625D) @@ -145,6 +138,7 @@ public class EntityLocationHandler { eloc.increment = 3; } + eloc.interpolateLocation(); }); }