protected static void addWorldConfigSection(final ConfigurationSection config, final ConfigurationSection section, final String path, final char sep) { final Map<String, Object> values = section.getValues(false); for (final Entry<String, Object> entry : values.entrySet()) { final String fullPath = path + sep + entry.getKey(); if (!mayBeInWorldConfig(fullPath)) { continue; } final Object value = entry.getValue(); if (value instanceof ConfigurationSection) { addWorldConfigSection(config, (ConfigurationSection) value, fullPath, sep); } else { config.set(fullPath, value); } } }
/** * A config file only containing the entries that are not set as global only. * @param defaultConfig * @return */ public static MemoryConfiguration getWorldsDefaultConfig(final MemoryConfiguration defaultConfig) { final char sep = defaultConfig.options().pathSeparator(); final MemoryConfiguration config = new ConfigFile(); config.options().pathSeparator(sep); final Map<String, Object> defaults = defaultConfig.getValues(false); for (final Entry<String, Object> entry : defaults.entrySet()) { final String part = entry.getKey(); if (!part.isEmpty() && !mayBeInWorldConfig(part)) { continue; } final Object value = entry.getValue(); if (value instanceof ConfigurationSection) { addWorldConfigSection(config, (ConfigurationSection) value, part, sep); } else { config.set(part, value); } } return config; }