Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cc.funkemunky.kachigga.impl.checks.movement.velocity.detections;
- import cc.funkemunky.api.Atlas;
- import cc.funkemunky.api.tinyprotocol.api.Packet;
- import cc.funkemunky.api.tinyprotocol.packet.in.WrappedInTransactionPacket;
- import cc.funkemunky.kachigga.api.checks.Check;
- import cc.funkemunky.kachigga.api.checks.DebugValue;
- import cc.funkemunky.kachigga.api.checks.Detection;
- import cc.funkemunky.kachigga.impl.utils.MathUtils;
- import java.util.Arrays;
- import java.util.List;
- public class Horizontal extends Detection {
- public Horizontal(String name, Check parent) {
- super(name, parent);
- }
- private double x, z, verbose;
- private float aiMove;
- private int ticks;
- @Override
- public void onPacket(String packetType, Object packet, long timeStamp) {
- if(packetType.equals(Packet.Client.TRANSACTION)) {
- WrappedInTransactionPacket wrapped = new WrappedInTransactionPacket(packet, data.player);
- if(wrapped.getAction() == (short)101) {
- x = data.velocity.getX();
- z = data.velocity.getZ();
- ticks = 0;
- aiMove = Atlas.getInstance().getBlockBoxManager().getBlockBox().getAiSpeed(data.player);
- }
- } else if(x != 0 || z != 0) {
- if(data.lastAttack.hasNotPassed(0)) {
- x*= 0.6;
- z*= 0.6;
- }
- if(!data.movementProcessor.inLiquid
- && timeStamp - data.lastServerPos > 120
- && !data.movementProcessor.blocksAround
- && !data.movementProcessor.onClimbable) {
- double x = this.x, z = this.z;
- double mult = data.movementProcessor.clientOnGround ? 0.6 : 0.91;
- for(int i = 0 ; i < ticks ; i++) {
- x*= mult;
- z*= mult;
- }
- double velocity = MathUtils.hypotenuse(x, z), deltaXZ = MathUtils.hypotenuse(
- data.movementProcessor.to.x - data.movementProcessor.from.x,
- data.movementProcessor.to.z - data.movementProcessor.from.z);
- velocity-= 2 * aiMove;
- double ratio = deltaXZ / velocity;
- if(ratio < 0.88) {
- if(verbose++ > 8) {
- flag(2,1, "ratio=" + ratio);
- }
- } else verbose-= verbose > 0 ? 0.5 : 0;
- ticks++;
- if(ticks >= 2) {
- this.x = this.z = 0;
- }
- debug(new DebugValue("ratio", ratio));
- }
- }
- }
- @Override
- public List<String> packets() {
- return Arrays.asList(Packet.Client.FLYING, Packet.Client.POSITION_LOOK,
- Packet.Client.POSITION, Packet.Client.LOOK, Packet.Client.TRANSACTION);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment