public ConfigProxy(FileConfiguration global, File dir) { _global = global; if (!_global.isSet("version") || !_global.getString("version").equalsIgnoreCase(_configversion)) { try { _global.save(new File(dir, "config_" + _configversion + ".yml")); } catch (Throwable t) { t.printStackTrace(); } for (String s : _global.getKeys(false).toArray(new String[0])) { _global.set(s, null); } } for (File file : dir.listFiles()) { if (!file.isFile()) { continue; } String string = file.getName(); if (string.matches("world_(.*)\\.yml")) { String world = string.substring(6, string.length() - 4); YamlConfiguration yaml = new YamlConfiguration(); try { yaml.load(file); } catch (Throwable t) { t.printStackTrace(); } yaml.set("world", world); _worlds.put(world, yaml); } } for (String world : _worlds.keySet().toArray(new String[0])) { YamlConfiguration yaml = _worlds.get(world); if (yaml.isSet("copy")) { if (_worlds.containsKey(yaml.getString("copy"))) { if (_worlds.get(yaml.getString("copy")) == yaml) { _log.severe( "[VirtualPack] World \"" + world + "\" copies configuration of world \"" + yaml.getString("copy") + "\" which results in a loop!"); _log.severe("[VirtualPack] Disabling VirtualPack on world \"" + world + "\"!"); yaml.set("enabled", "false"); } else { _worlds.put(world, _worlds.get(yaml.getString("copy"))); } } else { _log.severe( "[VirtualPack] World \"" + world + "\" copies configuration of world \"" + yaml.getString("copy") + "\", but there is no config for this world!"); _log.severe("[VirtualPack] Disabling VirtualPack on world \"" + world + "\"!"); yaml.set("enabled", "false"); } } } setDefs(); for (Map.Entry<String, Object> entry : _global.getConfigurationSection("blacklist").getValues(false).entrySet()) { if (entry.getValue() instanceof ConfigurationSection) { _blacklists.put( entry.getKey().toLowerCase(), new ConfigBlacklist((ConfigurationSection) entry.getValue())); } } for (String s : _global.getStringList("transmutation.god-items")) { _godItems.add(new ComparativeItemStack(s)); } }
private void setDef(String path, Object value) { if (!_global.isSet(path)) { _global.set(path, value); } }