Fixed treasures config NPE

This commit is contained in:
nossr50
2012-02-28 21:00:28 -08:00
parent ee986970fe
commit a2b3e6fa83
5 changed files with 895 additions and 909 deletions

View File

@ -19,22 +19,8 @@ package com.gmail.nossr50.config;
import com.gmail.nossr50.mcMMO;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.datatypes.HUDType;
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
import com.gmail.nossr50.datatypes.treasure.Treasure;
public class LoadProperties {
public static Boolean enableOnlyActivateWhenSneaking,
@ -162,7 +148,7 @@ public class LoadProperties {
}
private void loadKeys() {
plugin.getLogger().info("Loading Config File...");
plugin.getLogger().info("Loading mcMMO config.yml File...");
// Setup default HUD
String temp = readString("Spout.HUD.Default", "STANDARD");

View File

@ -43,14 +43,14 @@ public class LoadTreasures {
this.plugin = plugin;
dataFolder = plugin.getDataFolder();
configFile = new File(dataFolder, File.separator + "treasures.yml");
config = plugin.getCustomConfig();
config = plugin.getTreasuresConfig();
}
public void load() {
// If not exist, copy from the jar
if (!configFile.exists()) {
dataFolder.mkdir();
plugin.saveCustomConfig();
config.options().copyDefaults();
}
addDefaults();
loadKeys();
@ -77,14 +77,14 @@ public class LoadTreasures {
private void loadKeys()
{
plugin.getLogger().info("Loading Config File...");
plugin.getLogger().info("Loading mcMMO treasures.yml File...");
// Load treasures
Map<String, Treasure> treasures = new HashMap<String, Treasure>();
ConfigurationSection treasureSection = config.getConfigurationSection("Treasures");
Set<String> treasureConfigSet = treasureSection.getKeys(true);
Iterator<String> iterator = treasureConfigSet.iterator();
Set<String> treasureConfigSet = treasureSection.getKeys(false);
Iterator<String> iterator = treasureConfigSet.iterator();
while(iterator.hasNext())
{
String treasureName = iterator.next();

View File

@ -392,38 +392,38 @@ public class mcMMO extends JavaPlugin
* Boilerplate Custom Config Stuff
*/
private FileConfiguration customConfig = null;
private File customConfigFile = null;
private FileConfiguration treasuresConfig = null;
private File treasuresConfigFile = null;
public void reloadCustomConfig() {
if (customConfigFile == null) {
customConfigFile = new File(getDataFolder(), "customConfig.yml");
public void reloadTreasuresConfig() {
if (treasuresConfigFile == null) {
treasuresConfigFile = new File(getDataFolder(), "treasures.yml");
}
customConfig = YamlConfiguration.loadConfiguration(customConfigFile);
treasuresConfig = YamlConfiguration.loadConfiguration(treasuresConfigFile);
// Look for defaults in the jar
InputStream defConfigStream = getResource("customConfig.yml");
InputStream defConfigStream = getResource("treasures.yml");
if (defConfigStream != null) {
YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(defConfigStream);
customConfig.setDefaults(defConfig);
treasuresConfig.setDefaults(defConfig);
}
}
public FileConfiguration getCustomConfig() {
if (customConfig == null) {
reloadCustomConfig();
public FileConfiguration getTreasuresConfig() {
if (treasuresConfig == null) {
reloadTreasuresConfig();
}
return customConfig;
return treasuresConfig;
}
public void saveCustomConfig() {
if (customConfig == null || customConfigFile == null) {
public void saveTreasuresConfig() {
if (treasuresConfig == null || treasuresConfigFile == null) {
return;
}
try {
customConfig.save(customConfigFile);
treasuresConfig.save(treasuresConfigFile);
} catch (IOException ex) {
Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Could not save config to " + customConfigFile, ex);
Logger.getLogger(JavaPlugin.class.getName()).log(Level.SEVERE, "Could not save config to " + treasuresConfigFile, ex);
}
}
}