public void initWorld(World world) { String name = world.getName(); if (getConfig().getConfigurationSection("worlds." + name) == null) getConfig().createSection("worlds." + name); ConfigurationSection worldConfig = getConfig().getConfigurationSection("worlds." + name); worldConfig.addDefault("global", "none"); Biome globalBiome; try { String gName = worldConfig.getString("global"); if (gName.equalsIgnoreCase("none")) globalBiome = null; else globalBiome = Biome.valueOf(gName.toUpperCase()); } catch (Exception e) { // unsupported global biome in config log.warning("[BioMed] Unrecognized global biome for world \"" + world.getName() + "\""); globalBiome = null; } if (globalBiome != null) { GlobalBlockPopulator pop = new GlobalBlockPopulator(); pop.setBiome(globalBiome); world.getPopulators().add(pop); globalBiomes.put(name, pop); } // load regions from config (backwards compatibility) List<Map<?, ?>> worldRegions = null; try { worldRegions = worldConfig.getMapList("regions"); worldConfig.set("regions", null); } catch (Exception e) { // No regions to load return; } if (worldRegions == null) { return; } boolean found = false; for (Map<?, ?> worldRegion : worldRegions) { int x, z, lx, lz; Biome biome; try { x = (Integer) worldRegion.get("x"); z = (Integer) worldRegion.get("z"); lx = (Integer) worldRegion.get("lx"); lz = (Integer) worldRegion.get("lz"); biome = Biome.valueOf((String) worldRegion.get("biome")); BioMedUtils.setBiomes(x, z, lx, lz, world, biome); found = true; } catch (Exception e) { log.warning( "[BioMed] config for world \"" + world.getName() + "\" contains an invalid region. Ignoring it."); } } if (found) { log.info("[BioMed] finished importing regions for world \"" + name + "\"."); saveConfig(); } }
public WarningActionsConfig(ConfigurationSection config) { isEnabled = config.getBoolean("enabled", false); actions = new HashMap<>(); if (!isEnabled) return; ConfigurationSection actionsConf = config.getConfigurationSection("actions"); if (actionsConf == null) return; for (String amount : actionsConf.getKeys(false)) { if (!StringUtils.isNumeric(amount)) { plugin.getLogger().warning("Invalid warning action, " + amount + " is not numeric"); continue; } // New check List<Map<?, ?>> mapList = actionsConf.getMapList(amount); if (mapList != null && mapList.size() != 0) { List<ActionCommand> actionCommands = new ArrayList<>(mapList.size()); for (Map<?, ?> map : mapList) { if (map.get("cmd") == null) { plugin.getLogger().severe("Missing cmd from warningActions " + amount); continue; } long delay = 0; if (map.get("delay") != null) { try { delay = Long.valueOf((Integer) map.get("delay")); } catch (NumberFormatException e) { plugin.getLogger().severe("Invalid delay for " + map.get("cmd")); continue; } delay = delay * 20L; // Convert from seconds to ticks } actionCommands.add(new ActionCommand((String) map.get("cmd"), delay)); } this.actions.put(NumberUtils.toDouble(amount), actionCommands); } else { List<String> actions = actionsConf.getStringList(amount); if (actions.size() == 0) continue; plugin .getLogger() .warning( "warningActions amount " + amount + " is using a deprecated list, please use new cmd and delay syntax"); List<ActionCommand> actionCommands = new ArrayList<>(actions.size()); for (String action : actions) { actionCommands.add(new ActionCommand(action, 0)); } this.actions.put(NumberUtils.toDouble(amount), actionCommands); } } }