diff --git a/src/com/massivecraft/factions/P.java b/src/com/massivecraft/factions/P.java index 7754bd3c..0a71305f 100644 --- a/src/com/massivecraft/factions/P.java +++ b/src/com/massivecraft/factions/P.java @@ -73,7 +73,8 @@ public class P extends MPlugin public void onEnable() { if ( ! preEnable()) return; - + this.loadSuccessful = false; + // Load Conf from disk Conf.load(); FPlayers.i.loadFromDisc(); @@ -107,6 +108,7 @@ public class P extends MPlugin getServer().getPluginManager().registerEvents(serverListener, this); postEnable(); + this.loadSuccessful = true; } @Override @@ -125,8 +127,12 @@ public class P extends MPlugin @Override public void onDisable() { - Board.save(); - Conf.save(); + // only save data if plugin actually completely loaded successfully + if (this.loadSuccessful) + { + Board.save(); + Conf.save(); + } EssentialsFeatures.unhookChat(); if (AutoLeaveTask != null) { diff --git a/src/com/massivecraft/factions/zcore/MPlugin.java b/src/com/massivecraft/factions/zcore/MPlugin.java index 5e246a7a..6595ad9c 100644 --- a/src/com/massivecraft/factions/zcore/MPlugin.java +++ b/src/com/massivecraft/factions/zcore/MPlugin.java @@ -37,6 +37,7 @@ public abstract class MPlugin extends JavaPlugin public Gson gson; private Integer saveTask = null; private boolean autoSave = true; + protected boolean loadSuccessful = false; public boolean getAutoSave() {return this.autoSave;} public void setAutoSave(boolean val) {this.autoSave = val;} @@ -84,7 +85,8 @@ public abstract class MPlugin extends JavaPlugin { saveTask = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new SaveTask(this), saveTicks, saveTicks); } - + + loadSuccessful = true; return true; } @@ -100,7 +102,9 @@ public abstract class MPlugin extends JavaPlugin this.getServer().getScheduler().cancelTask(saveTask); saveTask = null; } - EM.saveAllToDisc(); + // only save data if plugin actually loaded successfully + if (loadSuccessful) + EM.saveAllToDisc(); log("Disabled"); }