The message to log
*/ private static void log(Level severity, String message) { - logger.log(severity, getBackupString("prefix") + message); + if (logger == null) { + logger = Bukkit.getLogger(); + } + if (getInstance() == null) { + logger.log(severity, "[Stargate]: " + message); + } else { + logger.log(severity, getBackupString("prefix") + message); + } } /** @@ -349,9 +357,9 @@ public class Stargate extends JavaPlugin { super.reloadConfig(); this.configuration = new StargateYamlConfiguration(); try { - configuration.load(configFile); + configuration.load(new File(getDataFolder(), configFileName)); } catch (IOException | InvalidConfigurationException e) { - Stargate.logSevere(e.getMessage()); + e.printStackTrace(); } } @@ -359,9 +367,9 @@ public class Stargate extends JavaPlugin { public void saveConfig() { super.saveConfig(); try { - configuration.save(configFile); + configuration.save(new File(getDataFolder(), configFileName)); } catch (IOException e) { - logSevere(e.getMessage()); + e.printStackTrace(); } } @@ -375,16 +383,16 @@ public class Stargate extends JavaPlugin { @Override public void onEnable() { - configFile = new File(this.getDataFolder(), "config.yml"); + this.saveDefaultConfig(); + this.getConfig(); PluginDescriptionFile pluginDescriptionFile = this.getDescription(); pluginManager = getServer().getPluginManager(); configuration = new StargateYamlConfiguration(); try { - configuration.load(configFile); + configuration.load(new File(getDataFolder(), configFileName)); } catch (IOException | InvalidConfigurationException e) { - Stargate.logSevere(e.getMessage()); + getLogger().log(Level.SEVERE, e.getMessage()); } - this.saveDefaultConfig(); configuration.options().copyDefaults(true); logger = Logger.getLogger("Minecraft"); diff --git a/src/main/java/net/knarcraft/stargate/config/StargateConfig.java b/src/main/java/net/knarcraft/stargate/config/StargateConfig.java index ea8598d..a7aecf4 100644 --- a/src/main/java/net/knarcraft/stargate/config/StargateConfig.java +++ b/src/main/java/net/knarcraft/stargate/config/StargateConfig.java @@ -15,6 +15,7 @@ import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.messaging.Messenger; import org.dynmap.DynmapAPI; @@ -434,18 +435,25 @@ public final class StargateConfig { /** * Changes all configuration values from the old name to the new name * - * @param newConfigThe config to read from and write to
+ * @param currentConfigurationThe current config to back up
*/ - private void migrateConfig(FileConfiguration newConfig) { + private void migrateConfig(FileConfiguration currentConfiguration) { //Save the old config just in case something goes wrong try { - newConfig.save(dataFolderPath + "/config.yml.old"); + currentConfiguration.save(new File(dataFolderPath, "config.yml.old")); } catch (IOException e) { Stargate.debug("Stargate::migrateConfig", "Unable to save old backup and do migration"); e.printStackTrace(); return; } + //Load old and new configuration + Stargate.getInstance().reloadConfig(); + FileConfiguration oldConfiguration = Stargate.getInstance().getConfig(); + YamlConfiguration newConfiguration = StargateYamlConfiguration.loadConfiguration( + FileHelper.getBufferedReaderFromInputStream( + FileHelper.getInputStreamForInternalFile("/config.yml"))); + //Read all available config migrations Map