Program: 33822
Project: 33822
Buggy source:
/** 
 * Loads the various settings from the config.yml file into the plugin
 * @param plugin - ASkyBlock plugin object - askyblock
 * @return true if plugin config is loaded correctly
 */
public static boolean loadPluginConfig(ASkyBlock plugin){
  try {
    plugin.getConfig();
  }
 catch (  final Exception e) {
    e.printStackTrace();
  }
  Settings.islandDistance=plugin.getConfig().getInt("String_Node_Str",200);
  if (Settings.islandDistance < 50) {
    Settings.islandDistance=50;
    plugin.getLogger().info("String_Node_Str");
  }
  if (Settings.islandDistance % 2 != 0) {
    plugin.getLogger().warning("String_Node_Str");
  }
  Settings.islandProtectionRange=plugin.getConfig().getInt("String_Node_Str",100);
  if (Settings.islandProtectionRange > Settings.islandDistance) {
    plugin.getLogger().warning("String_Node_Str");
    Settings.islandProtectionRange=Settings.islandDistance;
  }
  if (Settings.islandProtectionRange <= 0) {
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str" + Settings.islandDistance + "String_Node_Str");
    Settings.islandProtectionRange=Settings.islandDistance;
  }
  if (Settings.islandProtectionRange % 2 != 0) {
    Settings.islandProtectionRange--;
    plugin.getLogger().warning("String_Node_Str" + Settings.islandProtectionRange);
  }
  Settings.islandXOffset=plugin.getConfig().getInt("String_Node_Str",0);
  if (Settings.islandXOffset < 0) {
    Settings.islandXOffset=0;
    plugin.getLogger().info("String_Node_Str");
  }
 else   if (Settings.islandXOffset > Settings.islandDistance) {
    Settings.islandXOffset=Settings.islandDistance;
    plugin.getLogger().info("String_Node_Str" + Settings.islandDistance);
  }
  Settings.islandZOffset=plugin.getConfig().getInt("String_Node_Str",0);
  if (Settings.islandZOffset < 0) {
    Settings.islandZOffset=0;
    plugin.getLogger().info("String_Node_Str");
  }
 else   if (Settings.islandZOffset > Settings.islandDistance) {
    Settings.islandZOffset=Settings.islandDistance;
    plugin.getLogger().info("String_Node_Str" + Settings.islandDistance);
  }
  long x=plugin.getConfig().getLong("String_Node_Str",0);
  long z=plugin.getConfig().getLong("String_Node_Str",0);
  Settings.islandStartX=Math.round((double)x / Settings.islandDistance) * Settings.islandDistance + Settings.islandXOffset;
  Settings.islandStartZ=Math.round((double)z / Settings.islandDistance) * Settings.islandDistance + Settings.islandZOffset;
  if (Settings.GAMETYPE.equals(Settings.GameType.ACIDISLAND)) {
    Settings.islandHeight=plugin.getConfig().getInt("String_Node_Str",50) - 5;
    Settings.seaHeight=plugin.getConfig().getInt("String_Node_Str",50);
  }
 else {
    Settings.islandHeight=plugin.getConfig().getInt("String_Node_Str",120) - 5;
    Settings.seaHeight=plugin.getConfig().getInt("String_Node_Str",0);
  }
  if (Settings.islandHeight < 0) {
    Settings.islandHeight=0;
  }
  if (Settings.seaHeight < 0) {
    Settings.seaHeight=0;
  }
  Settings.resetLimit=plugin.getConfig().getInt("String_Node_Str",2);
  if (Settings.resetWait < 0) {
    Settings.resetWait=-1;
  }
  Settings.resetWait=plugin.getConfig().getInt("String_Node_Str",300);
  if (Settings.resetWait < 0) {
    Settings.resetWait=0;
  }
  Settings.resetConfirmWait=plugin.getConfig().getInt("String_Node_Str",10);
  if (Settings.resetConfirmWait < 0) {
    Settings.resetConfirmWait=0;
  }
  Settings.inviteWait=plugin.getConfig().getInt("String_Node_Str",60);
  if (Settings.inviteWait < 0) {
    Settings.inviteWait=0;
  }
  Settings.inviteTimeout=plugin.getConfig().getInt("String_Node_Str",60);
  Settings.inviteTimeout*=20;
  Settings.maxTeamSize=plugin.getConfig().getInt("String_Node_Str",4);
  Settings.levelWait=plugin.getConfig().getInt("String_Node_Str",60);
  if (Settings.levelWait < 0) {
    Settings.levelWait=0;
  }
  String chestItems=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  if (!chestItems.isEmpty()) {
    final String[] chestItemString=chestItems.split("String_Node_Str");
    final ItemStack[] tempChest=new ItemStack[chestItemString.length];
    for (int i=0; i < tempChest.length; i++) {
      String[] amountdata=chestItemString[i].split("String_Node_Str");
      try {
        if (amountdata.length == 3 && amountdata[0].equalsIgnoreCase("String_Node_Str")) {
          try {
            EntityType type=EntityType.valueOf(amountdata[1].toUpperCase());
            if (Bukkit.getServer().getVersion().contains("String_Node_Str") || Bukkit.getServer().getVersion().contains("String_Node_Str")) {
              tempChest[i]=new SpawnEgg(type).toItemStack(Integer.parseInt(amountdata[2]));
            }
 else {
              try {
                tempChest[i]=new SpawnEgg1_9(type).toItemStack(Integer.parseInt(amountdata[2]));
              }
 catch (              Exception ex) {
                tempChest[i]=new ItemStack(Material.MONSTER_EGG);
                plugin.getLogger().severe("String_Node_Str");
              }
            }
          }
 catch (          Exception e) {
            plugin.getLogger().severe("String_Node_Str");
            for (            EntityType type : EntityType.values()) {
              if (type.isSpawnable() && type.isAlive()) {
                plugin.getLogger().severe(type.toString());
              }
            }
          }
        }
 else         if (amountdata[0].equals("String_Node_Str")) {
          if (amountdata.length == 6) {
            tempChest[i]=Challenges.getPotion(amountdata,Integer.parseInt(amountdata[5]),"String_Node_Str");
          }
 else {
            plugin.getLogger().severe("String_Node_Str" + chestItemString[i]);
            plugin.getLogger().severe("String_Node_Str");
          }
        }
 else {
          Material mat;
          if (StringUtils.isNumeric(amountdata[0])) {
            mat=Material.getMaterial(Integer.parseInt(amountdata[0]));
          }
 else {
            mat=Material.getMaterial(amountdata[0].toUpperCase());
          }
          if (amountdata.length == 2) {
            tempChest[i]=new ItemStack(mat,Integer.parseInt(amountdata[1]));
          }
 else           if (amountdata.length == 3) {
            tempChest[i]=new ItemStack(mat,Integer.parseInt(amountdata[2]),Short.parseShort(amountdata[1]));
          }
        }
      }
 catch (      java.lang.IllegalArgumentException ex) {
        ex.printStackTrace();
        plugin.getLogger().severe("String_Node_Str" + chestItemString[i]);
        plugin.getLogger().severe("String_Node_Str" + ex.getMessage());
        plugin.getLogger().info("String_Node_Str");
        for (        PotionType c : PotionType.values())         plugin.getLogger().info(c.name());
      }
catch (      Exception e) {
        e.printStackTrace();
        plugin.getLogger().severe("String_Node_Str" + chestItemString[i]);
        plugin.getLogger().info("String_Node_Str");
        for (        Material c : Material.values())         plugin.getLogger().info(c.name());
      }
    }
    Settings.chestItems=tempChest;
  }
 else {
    Settings.chestItems=new ItemStack[0];
  }
  String companion=plugin.getConfig().getString("String_Node_Str","String_Node_Str").toUpperCase();
  Settings.islandCompanion=null;
  if (!companion.equalsIgnoreCase("String_Node_Str")) {
    String commaList="String_Node_Str";
    for (    EntityType type : EntityType.values()) {
      if (companion.equalsIgnoreCase(type.toString())) {
        Settings.islandCompanion=type;
        break;
      }
      commaList+="String_Node_Str" + type.toString();
    }
    if (Settings.islandCompanion == null) {
      plugin.getLogger().warning("String_Node_Str" + commaList);
    }
  }
  List<String> companionNames=plugin.getConfig().getStringList("String_Node_Str");
  Settings.companionNames=new ArrayList<String>();
  for (  String name : companionNames) {
    Settings.companionNames.add(ChatColor.translateAlternateColorCodes('&',name));
  }
  Settings.minNameLength=plugin.getConfig().getInt("String_Node_Str",1);
  Settings.maxNameLength=plugin.getConfig().getInt("String_Node_Str",20);
  if (Settings.minNameLength < 0) {
    Settings.minNameLength=0;
  }
  if (Settings.maxNameLength < 1) {
    Settings.maxNameLength=1;
  }
  if (Settings.minNameLength > Settings.maxNameLength) {
    Settings.minNameLength=Settings.maxNameLength;
  }
  Settings.flyTimeOutside=plugin.getConfig().getInt("String_Node_Str",0);
  if (Settings.flyTimeOutside < 0) {
    Settings.flyTimeOutside=0;
  }
  Settings.temporaryPermissions=plugin.getConfig().getStringList("String_Node_Str");
  Settings.allowEndermanGriefing=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.endermanDeathDrop=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.allowCreeperDamage=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.allowCreeperGriefing=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowTNTDamage=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowFireExtinguish=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowChestDamage=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowVisitorKeepInvOnDeath=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowPistonPush=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.allowMobDamageToItemFrames=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.cleanRate=plugin.getConfig().getInt("String_Node_Str",2);
  if (Settings.cleanRate < 1) {
    Settings.cleanRate=1;
  }
  Settings.worldName=plugin.getConfig().getString("String_Node_Str");
  File islandFile=new File(plugin.getDataFolder(),"String_Node_Str");
  if (islandFile.exists()) {
    YamlConfiguration islandYaml=new YamlConfiguration();
    try {
      islandYaml.load(islandFile);
      if (!islandYaml.contains(Settings.worldName)) {
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        return false;
      }
    }
 catch (    Exception e) {
    }
  }
  Settings.defaultLanguage=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  HashMap<String,ASLocale> availableLocales=new HashMap<String,ASLocale>();
  FileLister fl=new FileLister(plugin);
  try {
    int index=1;
    for (    String code : fl.list()) {
      availableLocales.put(code,new ASLocale(plugin,code,index++));
    }
  }
 catch (  IOException e1) {
    plugin.getLogger().severe("String_Node_Str");
  }
  if (!availableLocales.containsKey(Settings.defaultLanguage)) {
    plugin.getLogger().severe("String_Node_Str" + Settings.defaultLanguage + "String_Node_Str");
    Settings.defaultLanguage="String_Node_Str";
    availableLocales.put(Settings.defaultLanguage,new ASLocale(plugin,Settings.defaultLanguage,0));
  }
  plugin.setAvailableLocales(availableLocales);
  Settings.updateCheck=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.silenceCommandFeedback=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.showInActionBar=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.maxIslands=plugin.getConfig().getInt("String_Node_Str",0);
  Settings.useControlPanel=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.createNether=plugin.getConfig().getBoolean("String_Node_Str",true);
  if (!Settings.createNether) {
    plugin.getLogger().info("String_Node_Str");
  }
  Settings.newNether=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.netherTrees=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.netherRoof=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.netherSpawnRadius=plugin.getConfig().getInt("String_Node_Str",25);
  if (Settings.netherSpawnRadius < 0) {
    Settings.netherSpawnRadius=0;
  }
 else   if (Settings.netherSpawnRadius > 100) {
    Settings.netherSpawnRadius=100;
  }
  Settings.netherRoof=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.loginLevel=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.resetCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.leaveCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.startCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.teamStartCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.visitorCommandBlockList=plugin.getConfig().getStringList("String_Node_Str");
  Settings.pvpRestartCooldown=plugin.getConfig().getLong("String_Node_Str",60);
  Settings.invincibleVisitors=plugin.getConfig().getBoolean("String_Node_Str",false);
  if (Settings.invincibleVisitors) {
    Settings.visitorDamagePrevention=new HashSet<DamageCause>();
    List<String> damageSettings=plugin.getConfig().getStringList("String_Node_Str");
    for (    DamageCause cause : DamageCause.values()) {
      if (damageSettings.contains(cause.toString())) {
        Settings.visitorDamagePrevention.add(cause);
      }
    }
  }
  if (Settings.GAMETYPE.equals(Settings.GameType.ACIDISLAND)) {
    Settings.acidDamage=plugin.getConfig().getDouble("String_Node_Str",5D);
    if (Settings.acidDamage > 100D) {
      Settings.acidDamage=100D;
    }
 else     if (Settings.acidDamage < 0D) {
      Settings.acidDamage=0D;
    }
    Settings.mobAcidDamage=plugin.getConfig().getDouble("String_Node_Str",10D);
    if (Settings.mobAcidDamage > 100D) {
      Settings.mobAcidDamage=100D;
    }
 else     if (Settings.mobAcidDamage < 0D) {
      Settings.mobAcidDamage=0D;
    }
    Settings.rainDamage=plugin.getConfig().getDouble("String_Node_Str",0.5D);
    if (Settings.rainDamage > 100D) {
      Settings.rainDamage=100D;
    }
 else     if (Settings.rainDamage < 0D) {
      Settings.rainDamage=0D;
    }
  }
 else {
    Settings.acidDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
    if (Settings.acidDamage > 100D) {
      Settings.acidDamage=100D;
    }
 else     if (Settings.acidDamage < 0D) {
      Settings.acidDamage=0D;
    }
    Settings.mobAcidDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
    if (Settings.mobAcidDamage > 100D) {
      Settings.mobAcidDamage=100D;
    }
 else     if (Settings.mobAcidDamage < 0D) {
      Settings.mobAcidDamage=0D;
    }
    Settings.rainDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
    if (Settings.rainDamage > 100D) {
      Settings.rainDamage=100D;
    }
 else     if (Settings.rainDamage < 0D) {
      Settings.rainDamage=0D;
    }
  }
  Settings.animalAcidDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
  if (Settings.animalAcidDamage > 100D) {
    Settings.animalAcidDamage=100D;
  }
 else   if (Settings.animalAcidDamage < 0D) {
    Settings.animalAcidDamage=0D;
  }
  Settings.damageChickens=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.acidItemDestroyTime=plugin.getConfig().getLong("String_Node_Str",0L) * 20L;
  Settings.damageOps=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.helmetProtection=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.fullArmorProtection=plugin.getConfig().getBoolean("String_Node_Str",false);
  List<String> acidDamageType=plugin.getConfig().getStringList("String_Node_Str");
  Settings.acidDamageType.clear();
  if (acidDamageType != null) {
    for (    String effect : acidDamageType) {
      PotionEffectType newPotionType=PotionEffectType.getByName(effect);
      if (newPotionType != null) {
        if (newPotionType.equals(PotionEffectType.BLINDNESS) || newPotionType.equals(PotionEffectType.CONFUSION) || newPotionType.equals(PotionEffectType.HUNGER)|| newPotionType.equals(PotionEffectType.POISON)|| newPotionType.equals(PotionEffectType.SLOW)|| newPotionType.equals(PotionEffectType.SLOW_DIGGING)|| newPotionType.equals(PotionEffectType.WEAKNESS)) {
          Settings.acidDamageType.add(newPotionType);
        }
      }
 else {
        plugin.getLogger().warning("String_Node_Str" + effect + "String_Node_Str");
        plugin.getLogger().warning("String_Node_Str");
        plugin.getLogger().warning("String_Node_Str");
      }
    }
  }
  Settings.logInRemoveMobs=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.islandRemoveMobs=plugin.getConfig().getBoolean("String_Node_Str",false);
  List<String> mobWhiteList=plugin.getConfig().getStringList("String_Node_Str");
  Settings.mobWhiteList.clear();
  for (  String mobName : mobWhiteList) {
    boolean mobFound=false;
    for (    EntityType type : EntityType.values()) {
      if (mobName.toUpperCase().equals(type.toString())) {
        try {
          Settings.mobWhiteList.add(EntityType.valueOf(mobName.toUpperCase()));
        }
 catch (        Exception e) {
          plugin.getLogger().severe("String_Node_Str" + mobName + "String_Node_Str");
        }
        mobFound=true;
        break;
      }
    }
    if (!mobFound) {
      plugin.getLogger().severe("String_Node_Str" + mobName + "String_Node_Str");
      plugin.getLogger().severe("String_Node_Str");
      for (      EntityType e : EntityType.values()) {
        if (e.isAlive()) {
          plugin.getLogger().severe(e.name());
        }
      }
    }
  }
  Settings.monsterSpawnLimit=plugin.getConfig().getInt("String_Node_Str",100);
  if (Settings.monsterSpawnLimit < -1) {
    Settings.monsterSpawnLimit=-1;
  }
  Settings.animalSpawnLimit=plugin.getConfig().getInt("String_Node_Str",15);
  if (Settings.animalSpawnLimit < -1) {
    Settings.animalSpawnLimit=-1;
  }
  Settings.breedingLimit=plugin.getConfig().getInt("String_Node_Str",0);
  Settings.waterAnimalSpawnLimit=plugin.getConfig().getInt("String_Node_Str",15);
  if (Settings.waterAnimalSpawnLimit < -1) {
    Settings.waterAnimalSpawnLimit=-1;
  }
  Settings.villagerLimit=plugin.getConfig().getInt("String_Node_Str",0);
  Settings.limitedBlocks=new HashMap<String,Integer>();
  Settings.entityLimits=new HashMap<EntityType,Integer>();
  plugin.getLogger().info("String_Node_Str");
  ConfigurationSection entityLimits=plugin.getConfig().getConfigurationSection("String_Node_Str");
  if (entityLimits != null) {
    for (    String entity : entityLimits.getKeys(false)) {
      int limit=entityLimits.getInt(entity.toUpperCase(),-1);
      for (      EntityType type : EntityType.values()) {
        if (type.name().equals(entity.toUpperCase())) {
          Settings.entityLimits.put(type,limit);
          if (limit > 0) {
            plugin.getLogger().info(entity.toUpperCase() + "String_Node_Str" + limit);
          }
          break;
        }
      }
      if (Material.getMaterial(entity.toUpperCase()) != null && limit > -1) {
        Settings.limitedBlocks.put(entity.toUpperCase(),limit);
        plugin.getLogger().info(entity.toUpperCase() + "String_Node_Str" + limit);
        if (entity.equalsIgnoreCase("String_Node_Str")) {
          Settings.limitedBlocks.put("String_Node_Str",limit);
        }
 else         if (entity.equalsIgnoreCase("String_Node_Str")) {
          Settings.limitedBlocks.put("String_Node_Str",limit);
          Settings.limitedBlocks.put("String_Node_Str",limit);
        }
 else         if (entity.equalsIgnoreCase("String_Node_Str")) {
          Settings.limitedBlocks.put("String_Node_Str",limit);
          Settings.limitedBlocks.put("String_Node_Str",limit);
        }
      }
    }
  }
  Settings.abandonedIslandLevel=plugin.getConfig().getInt("String_Node_Str",10);
  if (Settings.abandonedIslandLevel < 0) {
    Settings.abandonedIslandLevel=0;
  }
  Settings.maxPurge=plugin.getConfig().getInt("String_Node_Str",500);
  if (Settings.maxPurge < 0) {
    Settings.maxPurge=0;
  }
  Settings.useEconomy=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.resetMoney=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.useMinishop=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.startingMoney=plugin.getConfig().getDouble("String_Node_Str",0D);
  Settings.resetChallenges=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.clearInventory=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.kickedKeepInv=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.leaversLoseReset=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.resetEnderChest=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowTeleportWhenFalling=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.fallingCommandBlockList=plugin.getConfig().getStringList("String_Node_Str");
  Settings.broadcastMessages=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.removeCompleteOntimeChallenges=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.addCompletedGlow=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.maxHomes=plugin.getConfig().getInt("String_Node_Str",1);
  if (Settings.maxHomes < 1) {
    Settings.maxHomes=1;
  }
  Settings.makeIslandIfNone=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.immediateTeleport=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.respawnOnIsland=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.teamChat=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.logTeamChat=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.chatLevelPrefix=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.chatChallengeLevelPrefix=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.chatIslandPlayer=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.setTeamName=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.teamSuffix=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.restrictWither=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.warpLevelsRestriction=plugin.getConfig().getInt("String_Node_Str",10);
  Settings.useWarpPanel=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.muteDeathMessages=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.backupDuration=(plugin.getConfig().getLong("String_Node_Str",5) * 20 * 60);
  Settings.allowPushing=plugin.getConfig().getBoolean("String_Node_Str",true);
  if (Settings.allowPushing) {
    try {
      ScoreboardManager manager=plugin.getServer().getScoreboardManager();
      if (manager != null) {
        Scoreboard scoreboard=manager.getMainScoreboard();
        if (scoreboard != null) {
          Team pTeam=scoreboard.getTeam(NO_PUSH_TEAM_NAME);
          if (pTeam != null) {
            pTeam.unregister();
          }
        }
      }
    }
 catch (    Exception e) {
      plugin.getLogger().warning("String_Node_Str");
    }
  }
  Settings.recoverSuperFlat=plugin.getConfig().getBoolean("String_Node_Str");
  if (Settings.recoverSuperFlat) {
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
  }
  Settings.persistantCoops=plugin.getConfig().getBoolean("String_Node_Str");
  Settings.onlyLeaderCanCoop=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowedFakePlayers=plugin.getConfig().getStringList("String_Node_Str");
  Settings.allowObsidianScooping=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.displayIslandTopTenInChat=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.useMagicCobbleGen=plugin.getConfig().getBoolean("String_Node_Str",false);
  if (Settings.useMagicCobbleGen) {
    Settings.magicCobbleGenOnlyAtSpawn=plugin.getConfig().getBoolean("String_Node_Str",false);
    if (plugin.getConfig().isSet("String_Node_Str")) {
      LavaCheck.clearChances();
      Settings.magicCobbleGenChances=new TreeMap<Long,TreeMap<Double,Material>>();
      for (      String level : plugin.getConfig().getConfigurationSection("String_Node_Str").getKeys(false)) {
        long levelLong=0;
        try {
          if (level.equals("String_Node_Str")) {
            levelLong=Long.MIN_VALUE;
          }
 else {
            levelLong=Long.parseLong(level);
          }
          TreeMap<Double,Material> blockMapTree=new TreeMap<Double,Material>();
          double chanceTotal=0;
          for (          String block : plugin.getConfig().getConfigurationSection("String_Node_Str" + level).getKeys(false)) {
            double chance=plugin.getConfig().getDouble("String_Node_Str" + level + "String_Node_Str"+ block,0D);
            if (chance > 0 && Material.getMaterial(block) != null && Material.getMaterial(block).isBlock()) {
              chanceTotal+=chance;
              blockMapTree.put(chanceTotal,Material.getMaterial(block));
            }
          }
          if (!blockMapTree.isEmpty()) {
            Settings.magicCobbleGenChances.put(levelLong,blockMapTree);
          }
          Map<Material,Double> chances=new HashMap<Material,Double>();
          for (          Entry<Double,Material> en : blockMapTree.entrySet()) {
            double chance=plugin.getConfig().getDouble("String_Node_Str" + level + "String_Node_Str"+ en.getValue(),0D);
            chances.put(en.getValue(),(chance / chanceTotal) * 100);
          }
          LavaCheck.storeChances(levelLong,chances);
        }
 catch (        NumberFormatException e) {
          plugin.getLogger().severe("String_Node_Str" + level + "String_Node_Str");
        }
      }
    }
  }
  Settings.disableOfflineRedstone=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowTNTPushing=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.fancyIslandLevelDisplay=plugin.getConfig().getBoolean("String_Node_Str",false);
  String configVersion=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  if (configVersion.split("String_Node_Str").length == 4) {
    configVersion=configVersion.substring(0,configVersion.lastIndexOf('.'));
  }
  String version=plugin.getDescription().getVersion();
  if (version.split("String_Node_Str").length == 4) {
    version=version.substring(0,version.lastIndexOf('.'));
  }
  if (configVersion.isEmpty() || !configVersion.equalsIgnoreCase(version)) {
    File newConfig=new File(plugin.getDataFolder(),"String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str" + configVersion + "String_Node_Str");
    plugin.getLogger().warning("String_Node_Str" + version + "String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    if (!newConfig.exists()) {
      File oldConfig=new File(plugin.getDataFolder(),"String_Node_Str");
      File bakConfig=new File(plugin.getDataFolder(),"String_Node_Str");
      if (oldConfig.renameTo(bakConfig)) {
        plugin.saveResource("String_Node_Str",false);
        oldConfig.renameTo(newConfig);
        bakConfig.renameTo(oldConfig);
      }
    }
  }
  Settings.levelLogging=plugin.getConfig().getBoolean("String_Node_Str");
  Settings.useOwnGenerator=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.usePhysics=plugin.getConfig().getBoolean("String_Node_Str",false);
  if (Settings.limitedBlocks.isEmpty()) {
    Settings.hopperLimit=plugin.getConfig().getInt("String_Node_Str",-1);
    if (Settings.hopperLimit > 0) {
      Settings.limitedBlocks.put("String_Node_Str",Settings.hopperLimit);
    }
  }
  Settings.acidBottle=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.defaultWorldSettings.clear();
  Settings.defaultIslandSettings.clear();
  Settings.defaultSpawnSettings.clear();
  Settings.visitorSettings.clear();
  ConfigurationSection protectionWorld=plugin.getConfig().getConfigurationSection("String_Node_Str");
  for (  String setting : protectionWorld.getKeys(false)) {
    try {
      SettingsFlag flag=SettingsFlag.valueOf(setting.toUpperCase());
      boolean value=plugin.getConfig().getBoolean("String_Node_Str" + flag.name());
      Settings.defaultWorldSettings.put(flag,value);
      Settings.defaultSpawnSettings.put(flag,value);
      Settings.defaultIslandSettings.put(flag,value);
    }
 catch (    Exception e) {
      plugin.getLogger().severe("String_Node_Str" + setting.toUpperCase() + "String_Node_Str");
    }
  }
  for (  SettingsFlag flag : SettingsFlag.values()) {
    if (!Settings.defaultWorldSettings.containsKey(flag)) {
      plugin.getLogger().warning("String_Node_Str" + flag.name() + "String_Node_Str");
      Settings.defaultWorldSettings.put(flag,false);
    }
    if (!Settings.defaultIslandSettings.containsKey(flag)) {
      Settings.defaultIslandSettings.put(flag,false);
    }
    if (!Settings.defaultSpawnSettings.containsKey(flag)) {
      Settings.defaultSpawnSettings.put(flag,false);
    }
  }
  ConfigurationSection protectionIsland=plugin.getConfig().getConfigurationSection("String_Node_Str");
  for (  String setting : protectionIsland.getKeys(false)) {
    try {
      SettingsFlag flag=SettingsFlag.valueOf(setting.toUpperCase());
      Settings.visitorSettings.put(flag,protectionIsland.getBoolean(setting));
      Settings.defaultIslandSettings.put(flag,Settings.visitorSettings.get(flag));
    }
 catch (    Exception e) {
      plugin.getLogger().severe("String_Node_Str" + setting.toUpperCase() + "String_Node_Str");
    }
  }
  Settings.biomeCost=plugin.getConfig().getDouble("String_Node_Str",100D);
  if (Settings.biomeCost < 0D) {
    Settings.biomeCost=0D;
    plugin.getLogger().warning("String_Node_Str");
  }
  String defaultBiome=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  try {
    Settings.defaultBiome=Biome.valueOf(defaultBiome);
  }
 catch (  Exception e) {
    plugin.getLogger().severe("String_Node_Str" + defaultBiome + "String_Node_Str");
    Settings.defaultBiome=Biome.PLAINS;
  }
  Settings.hackSkeletonSpawners=plugin.getConfig().getBoolean("String_Node_Str",true);
  YamlConfiguration blockValuesConfig=Util.loadYamlFile("String_Node_Str");
  Settings.deathpenalty=blockValuesConfig.getInt("String_Node_Str",0);
  Settings.sumTeamDeaths=blockValuesConfig.getBoolean("String_Node_Str");
  Settings.maxDeaths=blockValuesConfig.getInt("String_Node_Str",10);
  Settings.islandResetDeathReset=blockValuesConfig.getBoolean("String_Node_Str",true);
  Settings.teamJoinDeathReset=blockValuesConfig.getBoolean("String_Node_Str",true);
  Settings.underWaterMultiplier=blockValuesConfig.getDouble("String_Node_Str",1D);
  Settings.levelCost=blockValuesConfig.getInt("String_Node_Str",100);
  if (Settings.levelCost < 1) {
    Settings.levelCost=1;
    plugin.getLogger().warning("String_Node_Str");
  }
  Settings.blockLimits=new HashMap<MaterialData,Integer>();
  if (blockValuesConfig.isSet("String_Node_Str")) {
    for (    String material : blockValuesConfig.getConfigurationSection("String_Node_Str").getKeys(false)) {
      try {
        String[] split=material.split("String_Node_Str");
        byte data=0;
        if (split.length > 1) {
          data=Byte.valueOf(split[1]);
        }
        Material mat;
        if (StringUtils.isNumeric(split[0])) {
          mat=Material.getMaterial(Integer.parseInt(split[0]));
        }
 else {
          mat=Material.valueOf(split[0].toUpperCase());
        }
        MaterialData materialData=new MaterialData(mat);
        materialData.setData(data);
        Settings.blockLimits.put(materialData,blockValuesConfig.getInt("String_Node_Str" + material,0));
        if (DEBUG) {
          plugin.getLogger().info("String_Node_Str" + materialData + "String_Node_Str"+ Settings.blockLimits.get(materialData));
        }
      }
 catch (      Exception e) {
        plugin.getLogger().warning("String_Node_Str" + material + "String_Node_Str");
      }
    }
  }
  Settings.blockValues=new HashMap<MaterialData,Integer>();
  if (blockValuesConfig.isSet("String_Node_Str")) {
    for (    String material : blockValuesConfig.getConfigurationSection("String_Node_Str").getKeys(false)) {
      try {
        String[] split=material.split("String_Node_Str");
        byte data=0;
        if (split.length > 1) {
          data=Byte.valueOf(split[1]);
        }
        MaterialData materialData=null;
        if (StringUtils.isNumeric(split[0])) {
          materialData=new MaterialData(Integer.parseInt(split[0]));
        }
 else {
          materialData=new MaterialData(Material.valueOf(split[0].toUpperCase()));
        }
        materialData.setData(data);
        Settings.blockValues.put(materialData,blockValuesConfig.getInt("String_Node_Str" + material,0));
        if (DEBUG) {
          plugin.getLogger().info(materialData.toString());
        }
      }
 catch (      Exception e) {
        plugin.getLogger().warning("String_Node_Str" + material + "String_Node_Str");
      }
    }
  }
 else {
    plugin.getLogger().severe("String_Node_Str");
  }
  return true;
}

Fixed version (ground truth):
/** 
 * Loads the various settings from the config.yml file into the plugin
 * @param plugin - ASkyBlock plugin object - askyblock
 * @return true if plugin config is loaded correctly
 */
public static boolean loadPluginConfig(ASkyBlock plugin){
  try {
    plugin.getConfig();
  }
 catch (  final Exception e) {
    e.printStackTrace();
  }
  Settings.islandDistance=plugin.getConfig().getInt("String_Node_Str",200);
  if (Settings.islandDistance < 50) {
    Settings.islandDistance=50;
    plugin.getLogger().info("String_Node_Str");
  }
  if (Settings.islandDistance % 2 != 0) {
    plugin.getLogger().warning("String_Node_Str");
  }
  Settings.islandProtectionRange=plugin.getConfig().getInt("String_Node_Str",100);
  if (Settings.islandProtectionRange > Settings.islandDistance) {
    plugin.getLogger().warning("String_Node_Str");
    Settings.islandProtectionRange=Settings.islandDistance;
  }
  if (Settings.islandProtectionRange <= 0) {
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str" + Settings.islandDistance + "String_Node_Str");
    Settings.islandProtectionRange=Settings.islandDistance;
  }
  if (Settings.islandProtectionRange % 2 != 0) {
    Settings.islandProtectionRange--;
    plugin.getLogger().warning("String_Node_Str" + Settings.islandProtectionRange);
  }
  Settings.islandXOffset=plugin.getConfig().getInt("String_Node_Str",0);
  if (Settings.islandXOffset < 0) {
    Settings.islandXOffset=0;
    plugin.getLogger().info("String_Node_Str");
  }
 else   if (Settings.islandXOffset > Settings.islandDistance) {
    Settings.islandXOffset=Settings.islandDistance;
    plugin.getLogger().info("String_Node_Str" + Settings.islandDistance);
  }
  Settings.islandZOffset=plugin.getConfig().getInt("String_Node_Str",0);
  if (Settings.islandZOffset < 0) {
    Settings.islandZOffset=0;
    plugin.getLogger().info("String_Node_Str");
  }
 else   if (Settings.islandZOffset > Settings.islandDistance) {
    Settings.islandZOffset=Settings.islandDistance;
    plugin.getLogger().info("String_Node_Str" + Settings.islandDistance);
  }
  long x=plugin.getConfig().getLong("String_Node_Str",0);
  long z=plugin.getConfig().getLong("String_Node_Str",0);
  Settings.islandStartX=Math.round((double)x / Settings.islandDistance) * Settings.islandDistance + Settings.islandXOffset;
  Settings.islandStartZ=Math.round((double)z / Settings.islandDistance) * Settings.islandDistance + Settings.islandZOffset;
  if (Settings.GAMETYPE.equals(Settings.GameType.ACIDISLAND)) {
    Settings.islandHeight=plugin.getConfig().getInt("String_Node_Str",50) - 5;
    Settings.seaHeight=plugin.getConfig().getInt("String_Node_Str",50);
  }
 else {
    Settings.islandHeight=plugin.getConfig().getInt("String_Node_Str",120) - 5;
    Settings.seaHeight=plugin.getConfig().getInt("String_Node_Str",0);
  }
  if (Settings.islandHeight < 0) {
    Settings.islandHeight=0;
  }
  if (Settings.seaHeight < 0) {
    Settings.seaHeight=0;
  }
  Settings.resetLimit=plugin.getConfig().getInt("String_Node_Str",2);
  if (Settings.resetWait < 0) {
    Settings.resetWait=-1;
  }
  Settings.resetWait=plugin.getConfig().getInt("String_Node_Str",300);
  if (Settings.resetWait < 0) {
    Settings.resetWait=0;
  }
  Settings.resetConfirmWait=plugin.getConfig().getInt("String_Node_Str",10);
  if (Settings.resetConfirmWait < 0) {
    Settings.resetConfirmWait=0;
  }
  Settings.inviteWait=plugin.getConfig().getInt("String_Node_Str",60);
  if (Settings.inviteWait < 0) {
    Settings.inviteWait=0;
  }
  Settings.inviteTimeout=plugin.getConfig().getInt("String_Node_Str",60);
  Settings.inviteTimeout*=20;
  Settings.maxTeamSize=plugin.getConfig().getInt("String_Node_Str",4);
  Settings.levelWait=plugin.getConfig().getInt("String_Node_Str",60);
  if (Settings.levelWait < 0) {
    Settings.levelWait=0;
  }
  String chestItems=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  if (!chestItems.isEmpty()) {
    final String[] chestItemString=chestItems.split("String_Node_Str");
    final ItemStack[] tempChest=new ItemStack[chestItemString.length];
    for (int i=0; i < tempChest.length; i++) {
      String[] amountdata=chestItemString[i].split("String_Node_Str");
      try {
        if (amountdata.length == 3 && amountdata[0].equalsIgnoreCase("String_Node_Str")) {
          try {
            EntityType type=EntityType.valueOf(amountdata[1].toUpperCase());
            if (Bukkit.getServer().getVersion().contains("String_Node_Str") || Bukkit.getServer().getVersion().contains("String_Node_Str")) {
              tempChest[i]=new SpawnEgg(type).toItemStack(Integer.parseInt(amountdata[2]));
            }
 else {
              try {
                tempChest[i]=new SpawnEgg1_9(type).toItemStack(Integer.parseInt(amountdata[2]));
              }
 catch (              Exception ex) {
                tempChest[i]=new ItemStack(Material.MONSTER_EGG);
                plugin.getLogger().severe("String_Node_Str");
              }
            }
          }
 catch (          Exception e) {
            plugin.getLogger().severe("String_Node_Str");
            for (            EntityType type : EntityType.values()) {
              if (type.isSpawnable() && type.isAlive()) {
                plugin.getLogger().severe(type.toString());
              }
            }
          }
        }
 else         if (amountdata[0].equals("String_Node_Str")) {
          if (amountdata.length == 6) {
            tempChest[i]=Challenges.getPotion(amountdata,Integer.parseInt(amountdata[5]),"String_Node_Str");
          }
 else {
            plugin.getLogger().severe("String_Node_Str" + chestItemString[i]);
            plugin.getLogger().severe("String_Node_Str");
          }
        }
 else {
          Material mat;
          if (StringUtils.isNumeric(amountdata[0])) {
            mat=Material.getMaterial(Integer.parseInt(amountdata[0]));
          }
 else {
            mat=Material.getMaterial(amountdata[0].toUpperCase());
          }
          if (amountdata.length == 2) {
            tempChest[i]=new ItemStack(mat,Integer.parseInt(amountdata[1]));
          }
 else           if (amountdata.length == 3) {
            tempChest[i]=new ItemStack(mat,Integer.parseInt(amountdata[2]),Short.parseShort(amountdata[1]));
          }
        }
      }
 catch (      java.lang.IllegalArgumentException ex) {
        ex.printStackTrace();
        plugin.getLogger().severe("String_Node_Str" + chestItemString[i]);
        plugin.getLogger().severe("String_Node_Str" + ex.getMessage());
        plugin.getLogger().info("String_Node_Str");
        for (        PotionType c : PotionType.values())         plugin.getLogger().info(c.name());
      }
catch (      Exception e) {
        e.printStackTrace();
        plugin.getLogger().severe("String_Node_Str" + chestItemString[i]);
        plugin.getLogger().info("String_Node_Str");
        for (        Material c : Material.values())         plugin.getLogger().info(c.name());
      }
    }
    Settings.chestItems=tempChest;
  }
 else {
    Settings.chestItems=new ItemStack[0];
  }
  String companion=plugin.getConfig().getString("String_Node_Str","String_Node_Str").toUpperCase();
  Settings.islandCompanion=null;
  if (!companion.equalsIgnoreCase("String_Node_Str")) {
    String commaList="String_Node_Str";
    for (    EntityType type : EntityType.values()) {
      if (companion.equalsIgnoreCase(type.toString())) {
        Settings.islandCompanion=type;
        break;
      }
      commaList+="String_Node_Str" + type.toString();
    }
    if (Settings.islandCompanion == null) {
      plugin.getLogger().warning("String_Node_Str" + commaList);
    }
  }
  List<String> companionNames=plugin.getConfig().getStringList("String_Node_Str");
  Settings.companionNames=new ArrayList<String>();
  for (  String name : companionNames) {
    Settings.companionNames.add(ChatColor.translateAlternateColorCodes('&',name));
  }
  Settings.minNameLength=plugin.getConfig().getInt("String_Node_Str",1);
  Settings.maxNameLength=plugin.getConfig().getInt("String_Node_Str",20);
  if (Settings.minNameLength < 0) {
    Settings.minNameLength=0;
  }
  if (Settings.maxNameLength < 1) {
    Settings.maxNameLength=1;
  }
  if (Settings.minNameLength > Settings.maxNameLength) {
    Settings.minNameLength=Settings.maxNameLength;
  }
  Settings.flyTimeOutside=plugin.getConfig().getInt("String_Node_Str",0);
  if (Settings.flyTimeOutside < 0) {
    Settings.flyTimeOutside=0;
  }
  Settings.temporaryPermissions=plugin.getConfig().getStringList("String_Node_Str");
  Settings.allowEndermanGriefing=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.endermanDeathDrop=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.allowCreeperDamage=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.allowCreeperGriefing=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowTNTDamage=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowFireExtinguish=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowChestDamage=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowVisitorKeepInvOnDeath=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowPistonPush=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.allowMobDamageToItemFrames=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.cleanRate=plugin.getConfig().getInt("String_Node_Str",2);
  if (Settings.cleanRate < 1) {
    Settings.cleanRate=1;
  }
  Settings.worldName=plugin.getConfig().getString("String_Node_Str");
  File islandFile=new File(plugin.getDataFolder(),"String_Node_Str");
  if (islandFile.exists()) {
    YamlConfiguration islandYaml=new YamlConfiguration();
    try {
      islandYaml.load(islandFile);
      if (!islandYaml.contains(Settings.worldName)) {
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        plugin.getLogger().severe("String_Node_Str");
        return false;
      }
    }
 catch (    Exception e) {
    }
  }
  Settings.defaultLanguage=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  HashMap<String,ASLocale> availableLocales=new HashMap<String,ASLocale>();
  FileLister fl=new FileLister(plugin);
  try {
    int index=1;
    for (    String code : fl.list()) {
      availableLocales.put(code,new ASLocale(plugin,code,index++));
    }
  }
 catch (  IOException e1) {
    plugin.getLogger().severe("String_Node_Str");
  }
  if (!availableLocales.containsKey(Settings.defaultLanguage)) {
    plugin.getLogger().severe("String_Node_Str" + Settings.defaultLanguage + "String_Node_Str");
    Settings.defaultLanguage="String_Node_Str";
    availableLocales.put(Settings.defaultLanguage,new ASLocale(plugin,Settings.defaultLanguage,0));
  }
  plugin.setAvailableLocales(availableLocales);
  Settings.updateCheck=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.silenceCommandFeedback=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.showInActionBar=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.maxIslands=plugin.getConfig().getInt("String_Node_Str",0);
  Settings.useControlPanel=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.createNether=plugin.getConfig().getBoolean("String_Node_Str",true);
  if (!Settings.createNether) {
    plugin.getLogger().info("String_Node_Str");
  }
  Settings.newNether=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.netherTrees=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.netherRoof=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.netherSpawnRadius=plugin.getConfig().getInt("String_Node_Str",25);
  if (Settings.netherSpawnRadius < 0) {
    Settings.netherSpawnRadius=0;
  }
 else   if (Settings.netherSpawnRadius > 100) {
    Settings.netherSpawnRadius=100;
  }
  Settings.netherRoof=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.loginLevel=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.resetCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.leaveCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.startCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.teamStartCommands=plugin.getConfig().getStringList("String_Node_Str");
  Settings.visitorCommandBlockList=plugin.getConfig().getStringList("String_Node_Str");
  Settings.pvpRestartCooldown=plugin.getConfig().getLong("String_Node_Str",60);
  Settings.invincibleVisitors=plugin.getConfig().getBoolean("String_Node_Str",false);
  if (Settings.invincibleVisitors) {
    Settings.visitorDamagePrevention=new HashSet<DamageCause>();
    List<String> damageSettings=plugin.getConfig().getStringList("String_Node_Str");
    for (    DamageCause cause : DamageCause.values()) {
      if (damageSettings.contains(cause.toString())) {
        Settings.visitorDamagePrevention.add(cause);
      }
    }
  }
  if (Settings.GAMETYPE.equals(Settings.GameType.ACIDISLAND)) {
    Settings.acidDamage=plugin.getConfig().getDouble("String_Node_Str",5D);
    if (Settings.acidDamage > 100D) {
      Settings.acidDamage=100D;
    }
 else     if (Settings.acidDamage < 0D) {
      Settings.acidDamage=0D;
    }
    Settings.mobAcidDamage=plugin.getConfig().getDouble("String_Node_Str",10D);
    if (Settings.mobAcidDamage > 100D) {
      Settings.mobAcidDamage=100D;
    }
 else     if (Settings.mobAcidDamage < 0D) {
      Settings.mobAcidDamage=0D;
    }
    Settings.rainDamage=plugin.getConfig().getDouble("String_Node_Str",0.5D);
    if (Settings.rainDamage > 100D) {
      Settings.rainDamage=100D;
    }
 else     if (Settings.rainDamage < 0D) {
      Settings.rainDamage=0D;
    }
  }
 else {
    Settings.acidDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
    if (Settings.acidDamage > 100D) {
      Settings.acidDamage=100D;
    }
 else     if (Settings.acidDamage < 0D) {
      Settings.acidDamage=0D;
    }
    Settings.mobAcidDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
    if (Settings.mobAcidDamage > 100D) {
      Settings.mobAcidDamage=100D;
    }
 else     if (Settings.mobAcidDamage < 0D) {
      Settings.mobAcidDamage=0D;
    }
    Settings.rainDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
    if (Settings.rainDamage > 100D) {
      Settings.rainDamage=100D;
    }
 else     if (Settings.rainDamage < 0D) {
      Settings.rainDamage=0D;
    }
  }
  Settings.animalAcidDamage=plugin.getConfig().getDouble("String_Node_Str",0D);
  if (Settings.animalAcidDamage > 100D) {
    Settings.animalAcidDamage=100D;
  }
 else   if (Settings.animalAcidDamage < 0D) {
    Settings.animalAcidDamage=0D;
  }
  Settings.damageChickens=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.acidItemDestroyTime=plugin.getConfig().getLong("String_Node_Str",0L) * 20L;
  Settings.damageOps=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.helmetProtection=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.fullArmorProtection=plugin.getConfig().getBoolean("String_Node_Str",false);
  List<String> acidDamageType=plugin.getConfig().getStringList("String_Node_Str");
  Settings.acidDamageType.clear();
  if (acidDamageType != null) {
    for (    String effect : acidDamageType) {
      PotionEffectType newPotionType=PotionEffectType.getByName(effect);
      if (newPotionType != null) {
        if (newPotionType.equals(PotionEffectType.BLINDNESS) || newPotionType.equals(PotionEffectType.CONFUSION) || newPotionType.equals(PotionEffectType.HUNGER)|| newPotionType.equals(PotionEffectType.POISON)|| newPotionType.equals(PotionEffectType.SLOW)|| newPotionType.equals(PotionEffectType.SLOW_DIGGING)|| newPotionType.equals(PotionEffectType.WEAKNESS)) {
          Settings.acidDamageType.add(newPotionType);
        }
      }
 else {
        plugin.getLogger().warning("String_Node_Str" + effect + "String_Node_Str");
        plugin.getLogger().warning("String_Node_Str");
        plugin.getLogger().warning("String_Node_Str");
      }
    }
  }
  Settings.logInRemoveMobs=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.islandRemoveMobs=plugin.getConfig().getBoolean("String_Node_Str",false);
  List<String> mobWhiteList=plugin.getConfig().getStringList("String_Node_Str");
  Settings.mobWhiteList.clear();
  for (  String mobName : mobWhiteList) {
    boolean mobFound=false;
    for (    EntityType type : EntityType.values()) {
      if (mobName.toUpperCase().equals(type.toString())) {
        try {
          Settings.mobWhiteList.add(EntityType.valueOf(mobName.toUpperCase()));
        }
 catch (        Exception e) {
          plugin.getLogger().severe("String_Node_Str" + mobName + "String_Node_Str");
        }
        mobFound=true;
        break;
      }
    }
    if (!mobFound) {
      plugin.getLogger().severe("String_Node_Str" + mobName + "String_Node_Str");
      plugin.getLogger().severe("String_Node_Str");
      for (      EntityType e : EntityType.values()) {
        if (e.isAlive()) {
          plugin.getLogger().severe(e.name());
        }
      }
    }
  }
  Settings.monsterSpawnLimit=plugin.getConfig().getInt("String_Node_Str",100);
  if (Settings.monsterSpawnLimit < -1) {
    Settings.monsterSpawnLimit=-1;
  }
  Settings.animalSpawnLimit=plugin.getConfig().getInt("String_Node_Str",15);
  if (Settings.animalSpawnLimit < -1) {
    Settings.animalSpawnLimit=-1;
  }
  Settings.breedingLimit=plugin.getConfig().getInt("String_Node_Str",0);
  Settings.waterAnimalSpawnLimit=plugin.getConfig().getInt("String_Node_Str",15);
  if (Settings.waterAnimalSpawnLimit < -1) {
    Settings.waterAnimalSpawnLimit=-1;
  }
  Settings.villagerLimit=plugin.getConfig().getInt("String_Node_Str",0);
  Settings.limitedBlocks=new HashMap<String,Integer>();
  Settings.entityLimits=new HashMap<EntityType,Integer>();
  plugin.getLogger().info("String_Node_Str");
  ConfigurationSection entityLimits=plugin.getConfig().getConfigurationSection("String_Node_Str");
  if (entityLimits != null) {
    for (    String entity : entityLimits.getKeys(false)) {
      int limit=entityLimits.getInt(entity.toUpperCase(),-1);
      for (      EntityType type : EntityType.values()) {
        if (type.name().equals(entity.toUpperCase())) {
          Settings.entityLimits.put(type,limit);
          if (limit > 0) {
            plugin.getLogger().info(entity.toUpperCase() + "String_Node_Str" + limit);
          }
          break;
        }
      }
      if (Material.getMaterial(entity.toUpperCase()) != null && limit > -1) {
        Settings.limitedBlocks.put(entity.toUpperCase(),limit);
        plugin.getLogger().info(entity.toUpperCase() + "String_Node_Str" + limit);
        if (entity.equalsIgnoreCase("String_Node_Str")) {
          Settings.limitedBlocks.put("String_Node_Str",limit);
        }
 else         if (entity.equalsIgnoreCase("String_Node_Str")) {
          Settings.limitedBlocks.put("String_Node_Str",limit);
          Settings.limitedBlocks.put("String_Node_Str",limit);
        }
 else         if (entity.equalsIgnoreCase("String_Node_Str")) {
          Settings.limitedBlocks.put("String_Node_Str",limit);
          Settings.limitedBlocks.put("String_Node_Str",limit);
        }
      }
    }
  }
  Settings.abandonedIslandLevel=plugin.getConfig().getInt("String_Node_Str",10);
  if (Settings.abandonedIslandLevel < 0) {
    Settings.abandonedIslandLevel=0;
  }
  Settings.maxPurge=plugin.getConfig().getInt("String_Node_Str",500);
  if (Settings.maxPurge < 0) {
    Settings.maxPurge=0;
  }
  Settings.useEconomy=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.resetMoney=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.useMinishop=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.startingMoney=plugin.getConfig().getDouble("String_Node_Str",0D);
  Settings.resetChallenges=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.clearInventory=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.kickedKeepInv=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.leaversLoseReset=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.resetEnderChest=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowTeleportWhenFalling=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.fallingCommandBlockList=plugin.getConfig().getStringList("String_Node_Str");
  Settings.broadcastMessages=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.removeCompleteOntimeChallenges=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.addCompletedGlow=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.maxHomes=plugin.getConfig().getInt("String_Node_Str",1);
  if (Settings.maxHomes < 1) {
    Settings.maxHomes=1;
  }
  Settings.makeIslandIfNone=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.immediateTeleport=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.respawnOnIsland=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.teamChat=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.logTeamChat=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.chatLevelPrefix=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.chatChallengeLevelPrefix=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.chatIslandPlayer=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.setTeamName=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.teamSuffix=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  Settings.restrictWither=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.warpLevelsRestriction=plugin.getConfig().getInt("String_Node_Str",10);
  Settings.useWarpPanel=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.muteDeathMessages=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.backupDuration=(plugin.getConfig().getLong("String_Node_Str",5) * 20 * 60);
  Settings.allowPushing=plugin.getConfig().getBoolean("String_Node_Str",true);
  if (Settings.allowPushing) {
    try {
      ScoreboardManager manager=plugin.getServer().getScoreboardManager();
      if (manager != null) {
        Scoreboard scoreboard=manager.getMainScoreboard();
        if (scoreboard != null) {
          Team pTeam=scoreboard.getTeam(NO_PUSH_TEAM_NAME);
          if (pTeam != null) {
            pTeam.unregister();
          }
        }
      }
    }
 catch (    Exception e) {
      plugin.getLogger().warning("String_Node_Str");
    }
  }
  Settings.recoverSuperFlat=plugin.getConfig().getBoolean("String_Node_Str");
  if (Settings.recoverSuperFlat) {
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
  }
  Settings.persistantCoops=plugin.getConfig().getBoolean("String_Node_Str");
  Settings.onlyLeaderCanCoop=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowedFakePlayers=plugin.getConfig().getStringList("String_Node_Str");
  Settings.allowObsidianScooping=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.displayIslandTopTenInChat=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.useMagicCobbleGen=plugin.getConfig().getBoolean("String_Node_Str",false);
  if (Settings.useMagicCobbleGen) {
    Settings.magicCobbleGenOnlyAtSpawn=plugin.getConfig().getBoolean("String_Node_Str",false);
    if (plugin.getConfig().isSet("String_Node_Str")) {
      LavaCheck.clearChances();
      Settings.magicCobbleGenChances=new TreeMap<Long,TreeMap<Double,Material>>();
      for (      String level : plugin.getConfig().getConfigurationSection("String_Node_Str").getKeys(false)) {
        long levelLong=0;
        try {
          if (level.equals("String_Node_Str")) {
            levelLong=Long.MIN_VALUE;
          }
 else {
            levelLong=Long.parseLong(level);
          }
          TreeMap<Double,Material> blockMapTree=new TreeMap<Double,Material>();
          double chanceTotal=0;
          for (          String block : plugin.getConfig().getConfigurationSection("String_Node_Str" + level).getKeys(false)) {
            double chance=plugin.getConfig().getDouble("String_Node_Str" + level + "String_Node_Str"+ block,0D);
            if (chance > 0 && Material.getMaterial(block) != null && Material.getMaterial(block).isBlock()) {
              chanceTotal+=chance;
              blockMapTree.put(chanceTotal,Material.getMaterial(block));
            }
          }
          if (!blockMapTree.isEmpty() && chanceTotal > 0) {
            Settings.magicCobbleGenChances.put(levelLong,blockMapTree);
            Map<Material,Double> chances=new HashMap<Material,Double>();
            for (            Entry<Double,Material> en : blockMapTree.entrySet()) {
              double chance=plugin.getConfig().getDouble("String_Node_Str" + level + "String_Node_Str"+ en.getValue(),0D);
              chances.put(en.getValue(),(chance / chanceTotal) * 100);
            }
            LavaCheck.storeChances(levelLong,chances);
          }
        }
 catch (        NumberFormatException e) {
          plugin.getLogger().severe("String_Node_Str" + level + "String_Node_Str");
        }
      }
    }
  }
  Settings.disableOfflineRedstone=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.allowTNTPushing=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.fancyIslandLevelDisplay=plugin.getConfig().getBoolean("String_Node_Str",false);
  String configVersion=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  if (configVersion.split("String_Node_Str").length == 4) {
    configVersion=configVersion.substring(0,configVersion.lastIndexOf('.'));
  }
  String version=plugin.getDescription().getVersion();
  if (version.split("String_Node_Str").length == 4) {
    version=version.substring(0,version.lastIndexOf('.'));
  }
  if (configVersion.isEmpty() || !configVersion.equalsIgnoreCase(version)) {
    File newConfig=new File(plugin.getDataFolder(),"String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    plugin.getLogger().warning("String_Node_Str" + configVersion + "String_Node_Str");
    plugin.getLogger().warning("String_Node_Str" + version + "String_Node_Str");
    plugin.getLogger().warning("String_Node_Str");
    if (!newConfig.exists()) {
      File oldConfig=new File(plugin.getDataFolder(),"String_Node_Str");
      File bakConfig=new File(plugin.getDataFolder(),"String_Node_Str");
      if (oldConfig.renameTo(bakConfig)) {
        plugin.saveResource("String_Node_Str",false);
        oldConfig.renameTo(newConfig);
        bakConfig.renameTo(oldConfig);
      }
    }
  }
  Settings.levelLogging=plugin.getConfig().getBoolean("String_Node_Str");
  Settings.useOwnGenerator=plugin.getConfig().getBoolean("String_Node_Str",false);
  Settings.usePhysics=plugin.getConfig().getBoolean("String_Node_Str",false);
  if (Settings.limitedBlocks.isEmpty()) {
    Settings.hopperLimit=plugin.getConfig().getInt("String_Node_Str",-1);
    if (Settings.hopperLimit > 0) {
      Settings.limitedBlocks.put("String_Node_Str",Settings.hopperLimit);
    }
  }
  Settings.acidBottle=plugin.getConfig().getBoolean("String_Node_Str",true);
  Settings.defaultWorldSettings.clear();
  Settings.defaultIslandSettings.clear();
  Settings.defaultSpawnSettings.clear();
  Settings.visitorSettings.clear();
  ConfigurationSection protectionWorld=plugin.getConfig().getConfigurationSection("String_Node_Str");
  for (  String setting : protectionWorld.getKeys(false)) {
    try {
      SettingsFlag flag=SettingsFlag.valueOf(setting.toUpperCase());
      boolean value=plugin.getConfig().getBoolean("String_Node_Str" + flag.name());
      Settings.defaultWorldSettings.put(flag,value);
      Settings.defaultSpawnSettings.put(flag,value);
      Settings.defaultIslandSettings.put(flag,value);
    }
 catch (    Exception e) {
      plugin.getLogger().severe("String_Node_Str" + setting.toUpperCase() + "String_Node_Str");
    }
  }
  for (  SettingsFlag flag : SettingsFlag.values()) {
    if (!Settings.defaultWorldSettings.containsKey(flag)) {
      plugin.getLogger().warning("String_Node_Str" + flag.name() + "String_Node_Str");
      Settings.defaultWorldSettings.put(flag,false);
    }
    if (!Settings.defaultIslandSettings.containsKey(flag)) {
      Settings.defaultIslandSettings.put(flag,false);
    }
    if (!Settings.defaultSpawnSettings.containsKey(flag)) {
      Settings.defaultSpawnSettings.put(flag,false);
    }
  }
  ConfigurationSection protectionIsland=plugin.getConfig().getConfigurationSection("String_Node_Str");
  for (  String setting : protectionIsland.getKeys(false)) {
    try {
      SettingsFlag flag=SettingsFlag.valueOf(setting.toUpperCase());
      Settings.visitorSettings.put(flag,protectionIsland.getBoolean(setting));
      Settings.defaultIslandSettings.put(flag,Settings.visitorSettings.get(flag));
    }
 catch (    Exception e) {
      plugin.getLogger().severe("String_Node_Str" + setting.toUpperCase() + "String_Node_Str");
    }
  }
  Settings.biomeCost=plugin.getConfig().getDouble("String_Node_Str",100D);
  if (Settings.biomeCost < 0D) {
    Settings.biomeCost=0D;
    plugin.getLogger().warning("String_Node_Str");
  }
  String defaultBiome=plugin.getConfig().getString("String_Node_Str","String_Node_Str");
  try {
    Settings.defaultBiome=Biome.valueOf(defaultBiome);
  }
 catch (  Exception e) {
    plugin.getLogger().severe("String_Node_Str" + defaultBiome + "String_Node_Str");
    Settings.defaultBiome=Biome.PLAINS;
  }
  Settings.hackSkeletonSpawners=plugin.getConfig().getBoolean("String_Node_Str",true);
  YamlConfiguration blockValuesConfig=Util.loadYamlFile("String_Node_Str");
  Settings.deathpenalty=blockValuesConfig.getInt("String_Node_Str",0);
  Settings.sumTeamDeaths=blockValuesConfig.getBoolean("String_Node_Str");
  Settings.maxDeaths=blockValuesConfig.getInt("String_Node_Str",10);
  Settings.islandResetDeathReset=blockValuesConfig.getBoolean("String_Node_Str",true);
  Settings.teamJoinDeathReset=blockValuesConfig.getBoolean("String_Node_Str",true);
  Settings.underWaterMultiplier=blockValuesConfig.getDouble("String_Node_Str",1D);
  Settings.levelCost=blockValuesConfig.getInt("String_Node_Str",100);
  if (Settings.levelCost < 1) {
    Settings.levelCost=1;
    plugin.getLogger().warning("String_Node_Str");
  }
  Settings.blockLimits=new HashMap<MaterialData,Integer>();
  if (blockValuesConfig.isSet("String_Node_Str")) {
    for (    String material : blockValuesConfig.getConfigurationSection("String_Node_Str").getKeys(false)) {
      try {
        String[] split=material.split("String_Node_Str");
        byte data=0;
        if (split.length > 1) {
          data=Byte.valueOf(split[1]);
        }
        Material mat;
        if (StringUtils.isNumeric(split[0])) {
          mat=Material.getMaterial(Integer.parseInt(split[0]));
        }
 else {
          mat=Material.valueOf(split[0].toUpperCase());
        }
        MaterialData materialData=new MaterialData(mat);
        materialData.setData(data);
        Settings.blockLimits.put(materialData,blockValuesConfig.getInt("String_Node_Str" + material,0));
        if (DEBUG) {
          plugin.getLogger().info("String_Node_Str" + materialData + "String_Node_Str"+ Settings.blockLimits.get(materialData));
        }
      }
 catch (      Exception e) {
        plugin.getLogger().warning("String_Node_Str" + material + "String_Node_Str");
      }
    }
  }
  Settings.blockValues=new HashMap<MaterialData,Integer>();
  if (blockValuesConfig.isSet("String_Node_Str")) {
    for (    String material : blockValuesConfig.getConfigurationSection("String_Node_Str").getKeys(false)) {
      try {
        String[] split=material.split("String_Node_Str");
        byte data=0;
        if (split.length > 1) {
          data=Byte.valueOf(split[1]);
        }
        MaterialData materialData=null;
        if (StringUtils.isNumeric(split[0])) {
          materialData=new MaterialData(Integer.parseInt(split[0]));
        }
 else {
          materialData=new MaterialData(Material.valueOf(split[0].toUpperCase()));
        }
        materialData.setData(data);
        Settings.blockValues.put(materialData,blockValuesConfig.getInt("String_Node_Str" + material,0));
        if (DEBUG) {
          plugin.getLogger().info(materialData.toString());
        }
      }
 catch (      Exception e) {
        plugin.getLogger().warning("String_Node_Str" + material + "String_Node_Str");
      }
    }
  }
 else {
    plugin.getLogger().severe("String_Node_Str");
  }
  return true;
}