diff --git a/src/main/java/com/massivecraft/factions/entity/MConf.java b/src/main/java/com/massivecraft/factions/entity/MConf.java index 81d8ca73..a0735457 100644 --- a/src/main/java/com/massivecraft/factions/entity/MConf.java +++ b/src/main/java/com/massivecraft/factions/entity/MConf.java @@ -422,19 +422,6 @@ public class MConf extends Entity EventFactionsChunkChangeType.PILLAGE, false ); - public Map lwcAllowIn = MUtil.map( - Rel.ALLY, false, - Rel.ENEMY, false, - Rel.NEUTRAL, false, - Rel.TRUCE, false - ); - - public Set lwcDisallowIn = MUtil.set( - MConf.get().factionIdWarzone, - MConf.get().factionIdSafezone, - MConf.get().factionIdNone - ); - // -------------------------------------------- // // INTEGRATION: ECONOMY // -------------------------------------------- // diff --git a/src/main/java/com/massivecraft/factions/integration/lwc/EngineLwc.java b/src/main/java/com/massivecraft/factions/integration/lwc/EngineLwc.java index dabca270..e080450b 100644 --- a/src/main/java/com/massivecraft/factions/integration/lwc/EngineLwc.java +++ b/src/main/java/com/massivecraft/factions/integration/lwc/EngineLwc.java @@ -17,15 +17,13 @@ import com.griefcraft.lwc.LWC; import com.griefcraft.model.Protection; import com.griefcraft.scripting.event.LWCProtectionRegisterEvent; import com.massivecraft.factions.Factions; -import com.massivecraft.factions.Rel; -import com.massivecraft.factions.entity.BoardColl; import com.massivecraft.factions.entity.Faction; import com.massivecraft.factions.entity.MConf; import com.massivecraft.factions.entity.MPlayer; import com.massivecraft.factions.event.EventFactionsChunkChange; import com.massivecraft.factions.event.EventFactionsChunkChangeType; +import com.massivecraft.factions.listeners.FactionsListenerMain; import com.massivecraft.massivecore.ps.PS; -import com.massivecraft.massivecore.util.Txt; public class EngineLwc implements Listener @@ -70,48 +68,11 @@ public class EngineLwc implements Listener removeAlienProtections(event.getChunk(), newFaction); } - @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onCreateProtection(LWCProtectionRegisterEvent event) { - Faction factionHere = BoardColl.get().getFactionAt(PS.valueOf(event.getBlock())); - MPlayer mplayer = MPlayer.get(event.getPlayer()); - - Rel relation = factionHere.getRelationTo(mplayer.getFaction()); - - Boolean notAllowedHere = false; - - // Are they allowed to have LWC protections in this faction land - if (MConf.get().lwcDisallowIn.contains(factionHere.getId())) - { - notAllowedHere = true; - } - - // Should we ignore the relationship check? - Boolean ignore = - factionHere.getId().equals(MConf.get().factionIdNone) || - factionHere.getId().equals(MConf.get().factionIdSafezone) || - factionHere.getId().equals(MConf.get().factionIdWarzone); - - if ( ! ignore) - { - if (!MConf.get().lwcAllowIn.containsKey(relation)) - { - notAllowedHere = true; - } - else - { - if(!MConf.get().lwcAllowIn.get(relation)) - { - notAllowedHere = true; - } - } - } - - if (notAllowedHere) - { - event.setCancelled(true); - mplayer.msg(Txt.parse("You cannot create this LWC protection in this faction.")); - } + if (FactionsListenerMain.canPlayerBuildAt(event.getPlayer(), PS.valueOf(event.getBlock()), false)) return; + event.setCancelled(true); } // -------------------------------------------- // @@ -125,26 +86,6 @@ public class EngineLwc implements Listener { MPlayer owner = MPlayer.get(protection.getOwner()); if (nonAliens.contains(owner)) continue; - - // Compare the relationship to the faction - Rel rel = owner.getRelationTo(faction); - Boolean passRelationTest = true; - - // If the relationship isn't in the MConf, consider it failed - if ( ! MConf.get().lwcAllowIn.containsKey(rel)) - { - passRelationTest = false; - } - else - { - if ( ! MConf.get().lwcAllowIn.get(rel)) - { - passRelationTest = false; - } - } - - if ( ! passRelationTest) continue; - protection.remove(); } }