diff --git a/src/org/mcteam/factions/Conf.java b/src/org/mcteam/factions/Conf.java index 674c5663..8f2884e1 100644 --- a/src/org/mcteam/factions/Conf.java +++ b/src/org/mcteam/factions/Conf.java @@ -90,6 +90,8 @@ public class Conf { public static Set territoryProtectedMaterials = new HashSet(); public static Set territoryDenyUseageMaterials = new HashSet(); + public static Set territoryProtectedMaterialsWhenOffline = new HashSet(); + public static Set territoryDenyUseageMaterialsWhenOffline = new HashSet(); public static transient Set safeZoneNerfedCreatureTypes = new HashSet(); @@ -111,6 +113,17 @@ public class Conf { territoryDenyUseageMaterials.add(Material.BUCKET); territoryDenyUseageMaterials.add(Material.WATER_BUCKET); territoryDenyUseageMaterials.add(Material.LAVA_BUCKET); + + territoryProtectedMaterialsWhenOffline.add(Material.WOODEN_DOOR); + territoryProtectedMaterialsWhenOffline.add(Material.TRAP_DOOR); + territoryProtectedMaterialsWhenOffline.add(Material.DISPENSER); + territoryProtectedMaterialsWhenOffline.add(Material.CHEST); + territoryProtectedMaterialsWhenOffline.add(Material.FURNACE); + + territoryDenyUseageMaterialsWhenOffline.add(Material.FLINT_AND_STEEL); + territoryDenyUseageMaterialsWhenOffline.add(Material.BUCKET); + territoryDenyUseageMaterialsWhenOffline.add(Material.WATER_BUCKET); + territoryDenyUseageMaterialsWhenOffline.add(Material.LAVA_BUCKET); safeZoneNerfedCreatureTypes.add(CreatureType.CREEPER); safeZoneNerfedCreatureTypes.add(CreatureType.GHAST); diff --git a/src/org/mcteam/factions/Factions.java b/src/org/mcteam/factions/Factions.java index ff09ef12..ab6b11e6 100644 --- a/src/org/mcteam/factions/Factions.java +++ b/src/org/mcteam/factions/Factions.java @@ -24,7 +24,6 @@ import org.mcteam.factions.gson.GsonBuilder; import org.mcteam.factions.listeners.FactionsBlockListener; import org.mcteam.factions.listeners.FactionsEntityListener; import org.mcteam.factions.listeners.FactionsPlayerListener; -import org.mcteam.factions.util.MiscUtil; import com.nijiko.permissions.PermissionHandler; @@ -57,8 +56,6 @@ public class Factions extends JavaPlugin { private String baseCommand; - private static boolean lock = false; - public Factions() { Factions.instance = this; } diff --git a/src/org/mcteam/factions/listeners/FactionsPlayerListener.java b/src/org/mcteam/factions/listeners/FactionsPlayerListener.java index 1e1ad765..cc850056 100644 --- a/src/org/mcteam/factions/listeners/FactionsPlayerListener.java +++ b/src/org/mcteam/factions/listeners/FactionsPlayerListener.java @@ -202,12 +202,18 @@ public class FactionsPlayerListener extends PlayerListener{ return true; } - if ( ! Conf.territoryDenyUseageMaterials.contains(material)) { - return true; // Item isn't one we're preventing. - } - Faction otherFaction = Board.getFactionAt(new FLocation(block)); + if (otherFaction.getOnlinePlayers()!=null){ + if ( ! Conf.territoryDenyUseageMaterials.contains(material)) { + return true; // Item isn't one we're preventing for online factions. + } + }else{ + if ( ! Conf.territoryDenyUseageMaterialsWhenOffline.contains(material)) { + return true; // Item isn't one we're preventing for offline factions. + } + } + FPlayer me = FPlayer.get(player); if (otherFaction.isNone()) { @@ -252,14 +258,21 @@ public class FactionsPlayerListener extends PlayerListener{ Material material = block.getType(); + Faction otherFaction = Board.getFactionAt(new FLocation(block)); + // We only care about some material types. - if ( ! Conf.territoryProtectedMaterials.contains(material)) { - return true; + if (otherFaction.getOnlinePlayers()!=null){ + if ( ! Conf.territoryProtectedMaterials.contains(material)) { + return true; + } + } else { + if ( ! Conf.territoryProtectedMaterialsWhenOffline.contains(material)) { + return true; + } } FPlayer me = FPlayer.get(player); Faction myFaction = me.getFaction(); - Faction otherFaction = Board.getFactionAt(new FLocation(block)); // In safe zones you may use any block... if (otherFaction.isNormal() && myFaction != otherFaction) {