From 0a048d6553da31338a25ec41844ff81bc50fa700 Mon Sep 17 00:00:00 2001 From: Brettflan Date: Fri, 9 Mar 2012 14:44:17 -0600 Subject: [PATCH 1/2] If plugin failed to load correctly for various reasons, it could end up wiping the board or faction list. This should now be prevented. An example: if you loaded 1.6.6 (not 1.6.6b) on CB 1.1-R6 or newer, it would trigger an exception at startup and cause this problem. --- src/com/massivecraft/factions/P.java | 12 +++++++++--- src/com/massivecraft/factions/zcore/MPlugin.java | 8 ++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/com/massivecraft/factions/P.java b/src/com/massivecraft/factions/P.java index c4b8b569..d0926510 100644 --- a/src/com/massivecraft/factions/P.java +++ b/src/com/massivecraft/factions/P.java @@ -78,7 +78,8 @@ public class P extends MPlugin public void onEnable() { if ( ! preEnable()) return; - + this.loadSuccessful = false; + // Load Conf from disk Conf.load(); FPlayers.i.loadFromDisc(); @@ -112,6 +113,7 @@ public class P extends MPlugin getServer().getPluginManager().registerEvents(serverListener, this); postEnable(); + this.loadSuccessful = true; } @Override @@ -133,8 +135,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 b5254da5..b16c42c7 100644 --- a/src/com/massivecraft/factions/zcore/MPlugin.java +++ b/src/com/massivecraft/factions/zcore/MPlugin.java @@ -34,6 +34,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;} @@ -81,7 +82,8 @@ public abstract class MPlugin extends JavaPlugin { saveTask = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new SaveTask(this), saveTicks, saveTicks); } - + + loadSuccessful = true; return true; } @@ -97,7 +99,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"); } From 1ca93948a3803bb43f12381c3ef53edc5aebd950 Mon Sep 17 00:00:00 2001 From: Brettflan Date: Fri, 9 Mar 2012 14:46:45 -0600 Subject: [PATCH 2/2] Replaced deprecated CreatureType references with EntityType --- src/com/massivecraft/factions/Conf.java | 32 ++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/com/massivecraft/factions/Conf.java b/src/com/massivecraft/factions/Conf.java index 5c8494c7..07c3d311 100644 --- a/src/com/massivecraft/factions/Conf.java +++ b/src/com/massivecraft/factions/Conf.java @@ -3,7 +3,7 @@ package com.massivecraft.factions; import java.util.*; import org.bukkit.*; -import org.bukkit.entity.CreatureType; +import org.bukkit.entity.EntityType; import com.massivecraft.factions.struct.FFlag; import com.massivecraft.factions.struct.FPerm; @@ -155,7 +155,7 @@ public class Conf //public static Set territoryDenyUseageMaterialsWhenOffline = EnumSet.noneOf(Material.class); // TODO: Rename to monsterCreatureTypes - public static transient Set monsters = EnumSet.noneOf(CreatureType.class); + public static transient Set monsters = EnumSet.noneOf(EntityType.class); // Spout features public static boolean spoutFactionTagsOverNames = true; // show faction tags over names over player heads @@ -268,20 +268,20 @@ public class Conf materialsEditTools.add(Material.WATER_BUCKET); materialsEditTools.add(Material.LAVA_BUCKET); - monsters.add(CreatureType.BLAZE); - monsters.add(CreatureType.CAVE_SPIDER); - monsters.add(CreatureType.CREEPER); - monsters.add(CreatureType.ENDERMAN); - monsters.add(CreatureType.ENDER_DRAGON); - monsters.add(CreatureType.GHAST); - monsters.add(CreatureType.GIANT); - monsters.add(CreatureType.MAGMA_CUBE); - monsters.add(CreatureType.PIG_ZOMBIE); - monsters.add(CreatureType.SILVERFISH); - monsters.add(CreatureType.SKELETON); - monsters.add(CreatureType.SLIME); - monsters.add(CreatureType.SPIDER); - monsters.add(CreatureType.ZOMBIE); + monsters.add(EntityType.BLAZE); + monsters.add(EntityType.CAVE_SPIDER); + monsters.add(EntityType.CREEPER); + monsters.add(EntityType.ENDERMAN); + monsters.add(EntityType.ENDER_DRAGON); + monsters.add(EntityType.GHAST); + monsters.add(EntityType.GIANT); + monsters.add(EntityType.MAGMA_CUBE); + monsters.add(EntityType.PIG_ZOMBIE); + monsters.add(EntityType.SILVERFISH); + monsters.add(EntityType.SKELETON); + monsters.add(EntityType.SLIME); + monsters.add(EntityType.SPIDER); + monsters.add(EntityType.ZOMBIE); } // -------------------------------------------- //