Program: 101891
Project: 101891
Buggy source:
@EventHandler(priority=EventPriority.LOW,ignoreCancelled=true) public void checkExploit(PlayerMoveEvent event){
  Player player=event.getPlayer();
  Location from=event.getFrom();
  Location to=event.getTo();
  Distance distance=new Distance(from,to);
  double x=distance.getXDifference();
  double y=distance.getYDifference();
  double z=distance.getZDifference();
  if (checkManager.willCheck(player,CheckType.FLY) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && backend.checkFlight(player,distance)) {
    from.setX(from.getX() - 1);
    from.setY(from.getY() - 1);
    from.setZ(from.getZ() - 1);
    event.setTo(from);
    Location newLocation=new Location(player.getWorld(),player.getLocation().getX(),player.getLocation().getY() - 2,player.getLocation().getZ());
    Block newBlock=newLocation.getBlock();
    if (newBlock.getTypeId() != 0) {
      event.setTo(newLocation);
    }
    log("String_Node_Str",player,CheckType.FLY);
  }
  if (checkManager.willCheck(player,CheckType.FLY) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && backend.checkYAxis(player,distance)) {
    from.setX(from.getX() - 1);
    from.setY(from.getY() - 1);
    from.setZ(from.getZ() - 1);
    if (from.getBlock().getTypeId() == 0) {
      event.setTo(from);
    }
    for (int i=5; i > 0; i--) {
      Location newLocation=new Location(player.getWorld(),player.getLocation().getX(),player.getLocation().getY() - i,player.getLocation().getZ());
      Block lower=newLocation.getBlock();
      if (lower.getTypeId() == 0) {
        player.teleport(newLocation);
        break;
      }
    }
    Location newLocation=new Location(player.getWorld(),player.getLocation().getX(),player.getLocation().getY() - 2,player.getLocation().getZ());
    Block newBlock=newLocation.getBlock();
    if (newBlock.getTypeId() != 0) {
      event.setTo(newLocation);
    }
    log("String_Node_Str",player,CheckType.FLY);
  }
  if (checkManager.willCheck(player,CheckType.SPEED) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && checkManager.willCheck(player,CheckType.FLY)) {
    if (event.getFrom().getY() < event.getTo().getY() && backend.checkYSpeed(player,y)) {
      event.setTo(from);
      log("String_Node_Str",player,CheckType.SPEED);
    }
    if (backend.checkXZSpeed(player,x,z)) {
      event.setTo(from);
      log("String_Node_Str",player,CheckType.SPEED);
    }
  }
  if (checkManager.willCheck(player,CheckType.NOFALL) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && checkManager.willCheck(player,CheckType.FLY)&& event.getFrom().getY() > event.getTo().getY() && backend.checkNoFall(player,y)) {
    event.setTo(from);
    log("String_Node_Str",player,CheckType.NOFALL);
  }
}

Fixed version (ground truth):
@EventHandler(priority=EventPriority.LOW,ignoreCancelled=true) public void checkExploit(PlayerMoveEvent event){
  Player player=event.getPlayer();
  Location from=event.getFrom();
  Location to=event.getTo();
  Distance distance=new Distance(from,to);
  double x=distance.getXDifference();
  double y=distance.getYDifference();
  double z=distance.getZDifference();
  backend.checkAscension(player,from.getY(),to.getY());
  if (checkManager.willCheck(player,CheckType.FLY) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && backend.checkFlight(player,distance)) {
    from.setX(from.getX() - 1);
    from.setY(from.getY() - 1);
    from.setZ(from.getZ() - 1);
    event.setTo(from);
    Location newLocation=new Location(player.getWorld(),player.getLocation().getX(),player.getLocation().getY() - 2,player.getLocation().getZ());
    Block newBlock=newLocation.getBlock();
    if (newBlock.getTypeId() != 0) {
      event.setTo(newLocation);
    }
    log("String_Node_Str",player,CheckType.FLY);
  }
  if (checkManager.willCheck(player,CheckType.FLY) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && backend.checkYAxis(player,distance)) {
    from.setX(from.getX() - 1);
    from.setY(from.getY() - 1);
    from.setZ(from.getZ() - 1);
    if (from.getBlock().getTypeId() == 0) {
      event.setTo(from);
    }
    for (int i=5; i > 0; i--) {
      Location newLocation=new Location(player.getWorld(),player.getLocation().getX(),player.getLocation().getY() - i,player.getLocation().getZ());
      Block lower=newLocation.getBlock();
      if (lower.getTypeId() == 0) {
        player.teleport(newLocation);
        break;
      }
    }
    Location newLocation=new Location(player.getWorld(),player.getLocation().getX(),player.getLocation().getY() - 2,player.getLocation().getZ());
    Block newBlock=newLocation.getBlock();
    if (newBlock.getTypeId() != 0) {
      event.setTo(newLocation);
    }
    log("String_Node_Str",player,CheckType.FLY);
  }
  if (checkManager.willCheck(player,CheckType.SPEED) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && checkManager.willCheck(player,CheckType.FLY)) {
    if (event.getFrom().getY() < event.getTo().getY() && backend.checkYSpeed(player,y)) {
      event.setTo(from);
      log("String_Node_Str",player,CheckType.SPEED);
    }
    if (backend.checkXZSpeed(player,x,z)) {
      event.setTo(from);
      log("String_Node_Str",player,CheckType.SPEED);
    }
  }
  if (checkManager.willCheck(player,CheckType.NOFALL) && checkManager.willCheck(player,CheckType.ZOMBE_FLY) && checkManager.willCheck(player,CheckType.FLY)&& event.getFrom().getY() > event.getTo().getY() && backend.checkNoFall(player,y)) {
    event.setTo(from);
    log("String_Node_Str",player,CheckType.NOFALL);
  }
}