/**
   * Comparing part of a player name with all players
   *
   * @param partName
   * @return
   */
  public String getFullPlayerName(PlayerInfo pi, String partName) {
    int amount = 0;
    String pName = "";
    for (Player p : this.getServer().getOnlinePlayers()) {
      if (p.getName().toLowerCase().startsWith(partName.toLowerCase())) {
        amount++;
        pName = p.getName();
      }
    }
    if (amount == 1) return pName;
    else if (amount > 1) return "0";

    for (IslandInfo ii : pi.getBuiltPermissionList().values()) {
      if (ii.getIslandOwner().toLowerCase().startsWith(partName.toLowerCase())) {
        if (ii.containsFriend(pi.getPlayerName())) {
          amount++;
          pName = ii.getIslandOwner();
        }
      }
    }

    if (amount == 1) return pName;
    else if (amount > 1) return "0";
    return "-1";
  }
  public String getOwner(int islandNumber) {
    IslandInfo ii = this.settings.getIslandInfo(islandNumber);

    if (ii == null) {
      return "";
    }
    return ii.getIslandOwner();
  }
  public void saveIslandInfo(IslandInfo ii) {
    YamlConfiguration yamlIslandInfo = new YamlConfiguration();
    File filePlayerInfo = new File(this.directoryIslands, ii.getIslandNumber() + ".yml");

    yamlIslandInfo.set(EnumIslandConfig.ISLAND_OWNER.getPath(), ii.getIslandOwner());
    yamlIslandInfo.set(
        EnumIslandConfig.ISLAND_LOCATION.getPath(),
        LocationParser.getStringFromLocation(ii.getIslandLocation()));
    yamlIslandInfo.set(
        EnumIslandConfig.HOME_LOCATION.getPath(),
        LocationParser.getStringFromLocation(ii.getHomeLocation()));

    yamlIslandInfo.set(EnumIslandConfig.FRIENDS.getPath(), ii.getFriends());
    try {
      yamlIslandInfo.save(filePlayerInfo);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  public void loadIslandFiles() {
    ArrayList<String> playersInSkb = new ArrayList<String>();
    for (Player player : this.skyBlockWorld.getPlayers()) {
      playersInSkb.add(player.getName());
    }

    for (String f : new File(this.directoryIslands.getAbsolutePath()).list()) {
      if (new File(this.directoryIslands, f).isFile()) {

        IslandInfo ii = null;
        try {
          ii = this.loadIslandInfo(f);
        } catch (Exception e) {
          e.printStackTrace();
          continue;
        }
        if (ii != null) {
          if (ii.isFreeBuild()) {
            settings.addIslandInfo(ii);
            continue;
          }

          // check if a player for this island (owner or friend is online)
          boolean foundPlayer = false;
          if (playersInSkb.contains(ii.getIslandOwner())) {
            foundPlayer = true;
          } else {
            for (String friend : ii.getFriends()) {
              if (playersInSkb.contains(friend)) {
                foundPlayer = true;
                break;
              }
            }
          }
          if (foundPlayer) settings.addIslandInfo(ii);
        }
      }
    }
  }