funkemunky

Simple ROCK Velocity Check

Jan 24th, 2020
562
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. package cc.funkemunky.kachigga.impl.checks.movement.velocity.detections;
  2.  
  3. import cc.funkemunky.api.Atlas;
  4. import cc.funkemunky.api.tinyprotocol.api.Packet;
  5. import cc.funkemunky.api.tinyprotocol.packet.in.WrappedInTransactionPacket;
  6. import cc.funkemunky.kachigga.api.checks.Check;
  7. import cc.funkemunky.kachigga.api.checks.DebugValue;
  8. import cc.funkemunky.kachigga.api.checks.Detection;
  9. import cc.funkemunky.kachigga.impl.utils.MathUtils;
  10.  
  11. import java.util.Arrays;
  12. import java.util.List;
  13.  
  14.  
  15.  
  16. public class Horizontal extends Detection {
  17.  
  18. public Horizontal(String name, Check parent) {
  19. super(name, parent);
  20. }
  21.  
  22. private double x, z, verbose;
  23. private float aiMove;
  24. private int ticks;
  25. @Override
  26. public void onPacket(String packetType, Object packet, long timeStamp) {
  27. if(packetType.equals(Packet.Client.TRANSACTION)) {
  28. WrappedInTransactionPacket wrapped = new WrappedInTransactionPacket(packet, data.player);
  29.  
  30. if(wrapped.getAction() == (short)101) {
  31. x = data.velocity.getX();
  32. z = data.velocity.getZ();
  33. ticks = 0;
  34. aiMove = Atlas.getInstance().getBlockBoxManager().getBlockBox().getAiSpeed(data.player);
  35. }
  36. } else if(x != 0 || z != 0) {
  37. if(data.lastAttack.hasNotPassed(0)) {
  38. x*= 0.6;
  39. z*= 0.6;
  40. }
  41.  
  42. if(!data.movementProcessor.inLiquid
  43. && timeStamp - data.lastServerPos > 120
  44. && !data.movementProcessor.blocksAround
  45. && !data.movementProcessor.onClimbable) {
  46. double x = this.x, z = this.z;
  47.  
  48. double mult = data.movementProcessor.clientOnGround ? 0.6 : 0.91;
  49. for(int i = 0 ; i < ticks ; i++) {
  50. x*= mult;
  51. z*= mult;
  52. }
  53. double velocity = MathUtils.hypotenuse(x, z), deltaXZ = MathUtils.hypotenuse(
  54. data.movementProcessor.to.x - data.movementProcessor.from.x,
  55. data.movementProcessor.to.z - data.movementProcessor.from.z);
  56.  
  57. velocity-= 2 * aiMove;
  58.  
  59. double ratio = deltaXZ / velocity;
  60.  
  61. if(ratio < 0.88) {
  62. if(verbose++ > 8) {
  63. flag(2,1, "ratio=" + ratio);
  64. }
  65. } else verbose-= verbose > 0 ? 0.5 : 0;
  66.  
  67. ticks++;
  68. if(ticks >= 2) {
  69. this.x = this.z = 0;
  70. }
  71.  
  72. debug(new DebugValue("ratio", ratio));
  73. }
  74. }
  75. }
  76.  
  77. @Override
  78. public List<String> packets() {
  79. return Arrays.asList(Packet.Client.FLYING, Packet.Client.POSITION_LOOK,
  80. Packet.Client.POSITION, Packet.Client.LOOK, Packet.Client.TRANSACTION);
  81. }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment