Program: 33896
Project: 33896
Buggy source:
/** 
 * Adds island lock function
 * @param e
 */
@EventHandler(priority=EventPriority.LOW,ignoreCancelled=true) public void onPlayerMove(final PlayerMoveEvent e){
  if (e.getPlayer().isDead()) {
    return;
  }
  if (!inWorld(e.getPlayer())) {
    return;
  }
  if (plugin.getGrid() == null) {
    return;
  }
  if (e.getTo().getBlockX() - e.getFrom().getBlockX() == 0 && e.getTo().getBlockZ() - e.getFrom().getBlockZ() == 0) {
    return;
  }
  final Island islandTo=plugin.getGrid().getProtectedIslandAt(e.getTo());
  final Island islandFrom=plugin.getGrid().getProtectedIslandAt(e.getFrom());
  if (islandTo != null && (islandTo.getOwner() != null || islandTo.isSpawn())) {
    if (islandTo.isLocked() || plugin.getPlayers().isBanned(islandTo.getOwner(),e.getPlayer().getUniqueId())) {
      if (!islandTo.getMembers().contains(e.getPlayer().getUniqueId()) && !e.getPlayer().isOp() && !VaultHelper.checkPerm(e.getPlayer(),Settings.PERMPREFIX + "String_Node_Str")&& !VaultHelper.checkPerm(e.getPlayer(),Settings.PERMPREFIX + "String_Node_Str")) {
        Util.sendMessage(e.getPlayer(),ChatColor.RED + plugin.myLocale(e.getPlayer().getUniqueId()).lockIslandLocked);
        if (e.getPlayer().isInsideVehicle()) {
          if (e.getPlayer().getVehicle() instanceof LivingEntity) {
            e.getPlayer().leaveVehicle();
            e.setCancelled(true);
          }
        }
 else {
          Vector v=e.getPlayer().getLocation().toVector().subtract(islandTo.getCenter().toVector()).normalize().multiply(new Vector(1.2,0,1.2));
          if (DEBUG)           plugin.getLogger().info("String_Node_Str" + v);
          e.getPlayer().setVelocity(v);
        }
        return;
      }
    }
  }
  if (islandTo != null && islandFrom == null && (islandTo.getOwner() != null || islandTo.isSpawn())) {
    if (islandTo.isLocked() || plugin.getPlayers().isBanned(islandTo.getOwner(),e.getPlayer().getUniqueId())) {
      Util.sendMessage(e.getPlayer(),ChatColor.RED + plugin.myLocale(e.getPlayer().getUniqueId()).lockIslandLocked);
    }
    if (islandTo.isSpawn()) {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn.isEmpty()) {
        Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn);
      }
    }
 else {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockNowEntering.isEmpty()) {
        if (islandTo.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
          sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockNowEntering.replace("String_Node_Str",plugin.getGrid().getIslandName(islandTo.getOwner())));
        }
      }
    }
    final IslandEnterEvent event=new IslandEnterEvent(e.getPlayer().getUniqueId(),islandTo,e.getTo());
    plugin.getServer().getPluginManager().callEvent(event);
  }
 else   if (islandTo == null && islandFrom != null && (islandFrom.getOwner() != null || islandFrom.isSpawn())) {
    if (islandFrom.isSpawn()) {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn.isEmpty()) {
        Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn);
      }
    }
 else {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockNowLeaving.isEmpty()) {
        if (islandFrom.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
          sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockNowLeaving.replace("String_Node_Str",plugin.getGrid().getIslandName(islandFrom.getOwner())));
        }
      }
    }
    final IslandExitEvent event=new IslandExitEvent(e.getPlayer().getUniqueId(),islandFrom,e.getFrom());
    plugin.getServer().getPluginManager().callEvent(event);
  }
 else   if (islandTo != null && islandFrom != null && !islandTo.equals(islandFrom)) {
    if (islandFrom.isSpawn()) {
      Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn);
    }
 else     if (islandFrom.getOwner() != null) {
      if (islandFrom.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
        sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn.replace("String_Node_Str",plugin.getGrid().getIslandName(islandFrom.getOwner())));
      }
    }
    if (islandTo.isSpawn()) {
      Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn);
    }
 else     if (islandTo.getOwner() != null) {
      if (islandTo.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
        sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn.replace("String_Node_Str",plugin.getGrid().getIslandName(islandTo.getOwner())));
      }
    }
    final IslandExitEvent event=new IslandExitEvent(e.getPlayer().getUniqueId(),islandTo,e.getTo());
    plugin.getServer().getPluginManager().callEvent(event);
    final IslandEnterEvent event2=new IslandEnterEvent(e.getPlayer().getUniqueId(),islandFrom,e.getFrom());
    plugin.getServer().getPluginManager().callEvent(event2);
  }
}

Fixed version (ground truth):
/** 
 * Adds island lock function
 * @param e
 */
@EventHandler(priority=EventPriority.LOW,ignoreCancelled=true) public void onPlayerMove(final PlayerMoveEvent e){
  if (e.getPlayer().isDead()) {
    return;
  }
  if (!inWorld(e.getPlayer())) {
    return;
  }
  if (plugin.getGrid() == null) {
    return;
  }
  if (e.getTo().getBlockX() - e.getFrom().getBlockX() == 0 && e.getTo().getBlockZ() - e.getFrom().getBlockZ() == 0) {
    return;
  }
  final Island islandTo=plugin.getGrid().getProtectedIslandAt(e.getTo());
  final Island islandFrom=plugin.getGrid().getProtectedIslandAt(e.getFrom());
  if (islandTo != null && (islandTo.getOwner() != null || islandTo.isSpawn())) {
    if (islandTo.isLocked() || plugin.getPlayers().isBanned(islandTo.getOwner(),e.getPlayer().getUniqueId())) {
      if (!islandTo.getMembers().contains(e.getPlayer().getUniqueId()) && !e.getPlayer().isOp() && !VaultHelper.checkPerm(e.getPlayer(),Settings.PERMPREFIX + "String_Node_Str")&& !VaultHelper.checkPerm(e.getPlayer(),Settings.PERMPREFIX + "String_Node_Str")) {
        Util.sendMessage(e.getPlayer(),ChatColor.RED + plugin.myLocale(e.getPlayer().getUniqueId()).lockIslandLocked);
        if (e.getPlayer().isInsideVehicle()) {
          if (e.getPlayer().getVehicle() instanceof LivingEntity) {
            e.getPlayer().leaveVehicle();
            e.setCancelled(true);
          }
        }
 else {
          Vector v=e.getPlayer().getLocation().toVector().subtract(islandTo.getCenter().toVector()).normalize().multiply(new Vector(1.2,0,1.2));
          if (DEBUG)           plugin.getLogger().info("String_Node_Str" + v);
          e.getPlayer().setVelocity(v);
        }
        return;
      }
    }
  }
  if (islandTo != null && islandFrom == null && (islandTo.getOwner() != null || islandTo.isSpawn())) {
    if (islandTo.isLocked() || plugin.getPlayers().isBanned(islandTo.getOwner(),e.getPlayer().getUniqueId())) {
      Util.sendMessage(e.getPlayer(),ChatColor.RED + plugin.myLocale(e.getPlayer().getUniqueId()).lockIslandLocked);
    }
    if (islandTo.isSpawn()) {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn.isEmpty()) {
        Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn);
      }
    }
 else {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockNowEntering.isEmpty()) {
        if (islandTo.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
          sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockNowEntering.replace("String_Node_Str",plugin.getGrid().getIslandName(islandTo.getOwner())));
        }
      }
    }
    final IslandEnterEvent event=new IslandEnterEvent(e.getPlayer().getUniqueId(),islandTo,e.getTo());
    plugin.getServer().getPluginManager().callEvent(event);
  }
 else   if (islandTo == null && islandFrom != null && (islandFrom.getOwner() != null || islandFrom.isSpawn())) {
    if (islandFrom.isSpawn()) {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn.isEmpty()) {
        Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn);
      }
    }
 else {
      if (!plugin.myLocale(e.getPlayer().getUniqueId()).lockNowLeaving.isEmpty()) {
        if (islandFrom.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
          sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockNowLeaving.replace("String_Node_Str",plugin.getGrid().getIslandName(islandFrom.getOwner())));
        }
      }
    }
    final IslandExitEvent event=new IslandExitEvent(e.getPlayer().getUniqueId(),islandFrom,e.getTo());
    plugin.getServer().getPluginManager().callEvent(event);
  }
 else   if (islandTo != null && islandFrom != null && !islandTo.equals(islandFrom)) {
    if (islandFrom.isSpawn()) {
      Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn);
    }
 else     if (islandFrom.getOwner() != null) {
      if (islandFrom.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
        sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockLeavingSpawn.replace("String_Node_Str",plugin.getGrid().getIslandName(islandFrom.getOwner())));
      }
    }
    if (islandTo.isSpawn()) {
      Util.sendMessage(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn);
    }
 else     if (islandTo.getOwner() != null) {
      if (islandTo.getIgsFlag(SettingsFlag.ENTER_EXIT_MESSAGES)) {
        sendEnterExit(e.getPlayer(),plugin.myLocale(e.getPlayer().getUniqueId()).lockEnteringSpawn.replace("String_Node_Str",plugin.getGrid().getIslandName(islandTo.getOwner())));
      }
    }
    final IslandExitEvent event=new IslandExitEvent(e.getPlayer().getUniqueId(),islandTo,e.getTo());
    plugin.getServer().getPluginManager().callEvent(event);
    final IslandEnterEvent event2=new IslandEnterEvent(e.getPlayer().getUniqueId(),islandFrom,e.getTo());
    plugin.getServer().getPluginManager().callEvent(event2);
  }
}