/** * 設定ファイルのバージョンをチェックする * * @param ver */ private void checkver(final double ver) { double configVersion = ver; double nowVersion = 0.1D; String versionString = plugin.getDescription().getVersion(); try { // Support maven and Jenkins build number int index = versionString.indexOf("-"); if (index > 0) { versionString = versionString.substring(0, index); } nowVersion = Double.parseDouble(versionString); } catch (NumberFormatException ex) { log.warning(logPrefix + "Cannot parse version string!"); } // 比較 設定ファイルのバージョンが古ければ config.yml を上書きする if (configVersion < nowVersion) { // 先に古い設定ファイルをリネームする String destName = "oldconfig-v" + configVersion + ".yml"; String srcPath = new File(pluginDir, "config.yml").getPath(); String destPath = new File(pluginDir, destName).getPath(); try { copyTransfer(srcPath, destPath); log.info(logPrefix + "Copied old config.yml to " + destName + "!"); } catch (Exception ex) { log.warning(logPrefix + "Cannot copy old config.yml!"); } // config.ymlを強制コピー extractResource("/config.yml", pluginDir, true, false); log.info(logPrefix + "Deleted existing configuration file and generate a new one!"); } }
/** * 設定をファイルから読み込む * * @param initialLoad 初回ロードかどうか */ public void loadConfig(boolean initialLoad) throws Exception { // create directories createDirs(); // 設定ファイルパス取得 File file = new File(pluginDir, "config.yml"); // 無ければデフォルトコピー if (!file.exists()) { extractResource("/config.yml", pluginDir, false, true); log.info(logPrefix + "config.yml is not found! Created default config.yml!"); } plugin.reloadConfig(); // check version double version = plugin.getConfig().getDouble("Version", 0.1D); checkver(version); /* Basic Configs */ whiteWorlds = plugin.getConfig().getStringList("WhiteWorlds"); useSpawnEvent = plugin.getConfig().getBoolean("CancelWitherSpawnEvent", true); deniedMessage = plugin.getConfig().getString("DeniedMessage", "You do not have permission to do this!"); /* Other Configs */ debug = plugin.getConfig().getBoolean("Debug", false); }
/** 必要なディレクトリ群を作成する */ private void createDirs() { createDir(plugin.getDataFolder()); }
/** * 設定ファイルに設定を書き込む (コメントが消えるため使わない) * * @throws Exception */ public void save() throws Exception { plugin.saveConfig(); }