SHARE
TWEET

Untitled

a guest May 19th, 2019 93 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public class RangeA extends Check {
  2.     public RangeA() {
  3.         super("Range A", CheckType.COMBAT, true, true);
  4.  
  5.  
  6.                 ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(Anticheat.instance, PacketType.Play.Client.USE_ENTITY) {
  7.                     @Override
  8.                     public void onPacketReceiving(PacketEvent event) {
  9.                         Optional<Entity> entityOp = event.getPlayer().getWorld().getEntities().stream().filter(entity -> entity.getEntityId() == event.getPacket().getIntegers().read(0)).findFirst();
  10.  
  11.                         if (entityOp.isPresent()) {
  12.                             Entity entity = entityOp.get();
  13.  
  14.                             EnumWrappers.EntityUseAction action = event.getPacket().getEntityUseActions().read(0);
  15.  
  16.                             if (action.equals(EnumWrappers.EntityUseAction.ATTACK) && entity instanceof LivingEntity) {
  17.                                 User data = Anticheat.instance.userManager.getUser(event.getPlayer().getUniqueId());
  18.  
  19.                                 if (data != null) {
  20.                                     if (data.lastHitCanceled) {
  21.                                         data.reachCThreshold = 0;
  22.                                         return;
  23.                                     }
  24.                                     data.lastPlayerAttacked = entity;
  25.                                     Location origin = data.player.getLocation();
  26.  
  27.                                     List<Vector> pastLocation = data.entityPastLocations.getEstimatedLocation(data.calculatedPing, 150).stream().map(CustomLocation::toVector).collect(Collectors.toList());
  28.  
  29.                                     float distance = (float) pastLocation.stream().mapToDouble(vec -> vec.clone().setY(0).distance(origin.toVector().clone().setY(0)) - 0.3f).min().orElse(0);
  30.                                     // Bukkit.broadcastMessage(""+distance+" Verbose: " + data.reachCVerbose.getVerbose());
  31.                                     DecimalFormat df2 = new DecimalFormat("0.0");
  32.                                     if (distance > (PlayerUtils.nextToWall((Player) data.lastPlayerAttacked) ? 3.25f : 3.09f)) {
  33.                                         if (data.reachCVerbose++ > 5) {
  34.                                             data.reachCVerbose2++;
  35.                                         }
  36.                                     }else data.reachCVerbose-= data.reachCVerbose > 0 ? 1 : 0;
  37.                                     if (data.reachCVerbose2 > 3) {
  38.                                         flag(data.player, "(" + df2.format(distance) + " >= 3.1)");
  39.                                         data.reachCVerbose2 = 0;
  40.                                     }
  41.                                 }
  42.                             }
  43.                         }
  44.                     }
  45.                 });
  46.             }
  47.     @EventHandler
  48.     public void onEntityAttack(EntityDamageByEntityEvent e) {
  49.         if (e.getDamager() instanceof Player) {
  50.             User user = Anticheat.instance.userManager.getUser(e.getDamager().getUniqueId());
  51.             if (user != null) {
  52.                 if (e.isCancelled()) {
  53.                     if (user.cancelTicks < 30) user.cancelTicks++;
  54.                 } else {
  55.                     user.cancelTicks = 0;
  56.                 }
  57.                 if (user.cancelTicks > 5) {
  58.                     user.lastHitCanceled = true;
  59.                 } else {
  60.                     user.lastHitCanceled = false;
  61.                 }
  62.             }
  63.         }
  64.     }
  65. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top