/** Load the configuration. */ @SuppressWarnings("unchecked") public void load() { // Create the default configuration file plugin.createDefaultConfiguration(new File(plugin.getDataFolder(), "config.yml"), "config.yml"); config = new YAMLProcessor( new File(plugin.getDataFolder(), "config.yml"), true, YAMLFormat.EXTENDED); try { config.load(); } catch (IOException e) { log.severe("Error reading configuration for global config: "); e.printStackTrace(); } config.removeProperty("suppress-tick-sync-warnings"); useRegionsScheduler = config.getBoolean("regions.use-scheduler", true); migrateRegionsToUuid = config.getBoolean("regions.uuid-migration.perform-on-next-start", true); keepUnresolvedNames = config.getBoolean("regions.uuid-migration.keep-names-that-lack-uuids", true); useRegionsCreatureSpawnEvent = config.getBoolean("regions.use-creature-spawn-event", true); useGodPermission = config.getBoolean( "auto-invincible", config.getBoolean("auto-invincible-permission", false)); useGodGroup = config.getBoolean("auto-invincible-group", false); useAmphibiousGroup = config.getBoolean("auto-no-drowning-group", false); config.removeProperty("auto-invincible-permission"); usePlayerMove = config.getBoolean("use-player-move-event", true); usePlayerTeleports = config.getBoolean("use-player-teleports", true); deopOnJoin = config.getBoolean("security.deop-everyone-on-join", false); blockInGameOp = config.getBoolean("security.block-in-game-op-command", false); hostKeys = new HashMap<String, String>(); Object hostKeysRaw = config.getProperty("host-keys"); if (hostKeysRaw == null || !(hostKeysRaw instanceof Map)) { config.setProperty("host-keys", new HashMap<String, String>()); } else { for (Map.Entry<Object, Object> entry : ((Map<Object, Object>) hostKeysRaw).entrySet()) { String key = String.valueOf(entry.getKey()); String value = String.valueOf(entry.getValue()); hostKeys.put(key.toLowerCase(), value); } } // ==================================================================== // Region store drivers // ==================================================================== boolean useSqlDatabase = config.getBoolean("regions.sql.use", false); String sqlDsn = config.getString("regions.sql.dsn", "jdbc:mysql://localhost/worldguard"); String sqlUsername = config.getString("regions.sql.username", "worldguard"); String sqlPassword = config.getString("regions.sql.password", "worldguard"); String sqlTablePrefix = config.getString("regions.sql.table-prefix", ""); DataSourceConfig dataSourceConfig = new DataSourceConfig(sqlDsn, sqlUsername, sqlPassword, sqlTablePrefix); SQLDriver sqlDriver = new SQLDriver(dataSourceConfig); DirectoryYamlDriver yamlDriver = new DirectoryYamlDriver(getWorldsDataFolder(), "regions.yml"); this.regionStoreDriverMap = ImmutableMap.<DriverType, RegionDriver>builder() .put(DriverType.MYSQL, sqlDriver) .put(DriverType.YAML, yamlDriver) .build(); this.selectedRegionStoreDriver = useSqlDatabase ? sqlDriver : yamlDriver; // Load configurations for each world for (World world : plugin.getServer().getWorlds()) { get(world); } config.setHeader(CONFIG_HEADER); }