/**
* @author Aleksey Terzi
*
*/
package com.lishid.orebfuscator.config;
import java.util.List;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
public class Convert12To13 {
private static final int CONFIG_VERSION = 13;
private JavaPlugin plugin;
private FileConfiguration config;
public Convert12To13(JavaPlugin plugin) {
this.plugin = plugin;
}
public void convert() {
this.config = new YamlConfiguration();
setGlobalValues();
setWorldValues();
String contents = this.config.saveToString();
try {
this.plugin.getConfig().loadFromString(contents);
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
}
private void setGlobalValues() {
FileConfiguration oldConfig = this.plugin.getConfig();
this.config.set("ConfigVersion", CONFIG_VERSION);
this.config.set("Booleans.UseCache", oldConfig.get("Booleans.UseCache"));
this.config.set("Booleans.Enabled", oldConfig.get("Booleans.Enabled"));
this.config.set("Booleans.UpdateOnDamage", oldConfig.get("Booleans.UpdateOnDamage"));
this.config.set("Booleans.NoObfuscationForMetadata", oldConfig.get("Booleans.NoObfuscationForMetadata"));
this.config.set("Booleans.NoObfuscationForOps", oldConfig.get("Booleans.NoObfuscationForOps"));
this.config.set("Booleans.NoObfuscationForPermission", oldConfig.get("Booleans.NoObfuscationForPermission"));
this.config.set("Booleans.LoginNotification", oldConfig.get("Booleans.LoginNotification"));
this.config.set("Integers.MaxLoadedCacheFiles", oldConfig.get("Integers.MaxLoadedCacheFiles"));
this.config.set("Integers.DeleteCacheFilesAfterDays", oldConfig.get("Integers.DeleteCacheFilesAfterDays"));
this.config.set("Integers.EngineMode", oldConfig.get("Integers.EngineMode"));
this.config.set("Integers.InitialRadius", oldConfig.get("Integers.InitialRadius"));
this.config.set("Integers.UpdateRadius", oldConfig.get("Integers.UpdateRadius"));
this.config.set("Strings.CacheLocation", oldConfig.get("Strings.CacheLocation"));
this.config.set("Strings.NoObfuscationForMetadataTagName", oldConfig.get("Strings.NoObfuscationForMetadataTagName"));
this.config.set("Lists.TransparentBlocks", oldConfig.get("Lists.TransparentBlocks"));
this.config.set("Lists.NonTransparentBlocks", oldConfig.get("Lists.NonTransparentBlocks"));
}
private void setWorldValues() {
FileConfiguration oldConfig = this.plugin.getConfig();
boolean worldEnabled = oldConfig.get("Booleans.UseWorldsAsBlacklist") == null
|| oldConfig.getBoolean("Booleans.UseWorldsAsBlacklist");
// Default World
this.config.set("Worlds.Default.Types", new String[] { "DEFAULT" });
this.config.set("Worlds.Default.Enabled", worldEnabled);
this.config.set("Worlds.Default.AntiTexturePackAndFreecam", oldConfig.get("Booleans.AntiTexturePackAndFreecam"));
this.config.set("Worlds.Default.AirGeneratorMaxChance", oldConfig.get("Integers.AirGeneratorMaxChance"));
this.config.set("Worlds.Default.DarknessHideBlocks", oldConfig.get("Booleans.DarknessHideBlocks"));
this.config.set("Worlds.Default.DarknessBlocks", oldConfig.get("Lists.DarknessBlocks"));
this.config.set("Worlds.Default.Mode1Block", 1);
this.config.set("Worlds.Default.ProximityHider.Enabled", oldConfig.get("Booleans.UseProximityHider"));
this.config.set("Worlds.Default.ProximityHider.Distance", oldConfig.get("Integers.ProximityHiderDistance"));
this.config.set("Worlds.Default.ProximityHider.SpecialBlock", oldConfig.get("Integers.ProximityHiderID"));
this.config.set("Worlds.Default.ProximityHider.Y", oldConfig.get("Integers.ProximityHiderEnd"));
this.config.set("Worlds.Default.ProximityHider.UseSpecialBlock", oldConfig.get("Booleans.UseSpecialBlockForProximityHider"));
this.config.set("Worlds.Default.ProximityHider.ObfuscateAboveY", oldConfig.get("Booleans.UseYLocationProximity"));
this.config.set("Worlds.Default.ProximityHider.ProximityHiderBlocks", oldConfig.get("Lists.ProximityHiderBlocks"));
//Normal and TheEnd Worlds
this.config.set("Worlds.Normal.Types", new String[] { "NORMAL", "THE_END" });
this.config.set("Worlds.Normal.Mode1Block", 1);
this.config.set("Worlds.Normal.RandomBlocks", oldConfig.get("Lists.RandomBlocks"));
this.config.set("Worlds.Normal.ObfuscateBlocks", oldConfig.get("Lists.ObfuscateBlocks"));
//Nether World
this.config.set("Worlds.Nether.Types", new String[] { "NETHER" });
this.config.set("Worlds.Nether.Mode1Block", 87);
this.config.set("Worlds.Nether.RandomBlocks", oldConfig.get("Lists.NetherRandomBlocks"));
this.config.set("Worlds.Nether.ObfuscateBlocks", oldConfig.get("Lists.NetherObfuscateBlocks"));
List<String> worldNames = oldConfig.getStringList("Lists.Worlds");
if(worldNames == null) {
worldNames = oldConfig.getStringList("Lists.DisabledWorlds");
}
if(worldNames != null && worldNames.size() > 0) {
this.config.set("Worlds.CustomWorld.Names", worldNames);
this.config.set("Worlds.CustomWorld.Enabled", !worldEnabled);
}
}
}