diff --git a/classes/artifacts/Factions_jar/Factions.jar b/classes/artifacts/Factions_jar/Factions.jar index 6c07e54f..7e6457bf 100644 Binary files a/classes/artifacts/Factions_jar/Factions.jar and b/classes/artifacts/Factions_jar/Factions.jar differ diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java index 4a9db787..17e5c2ba 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -18,7 +18,7 @@ import com.massivecraft.factions.util.MultiversionMaterials; import com.massivecraft.factions.util.VisualizeUtil; import com.massivecraft.factions.zcore.fperms.Access; import com.massivecraft.factions.zcore.fperms.PermissableAction; -import com.massivecraft.factions.zcore.persist.MemoryFPlayer; +import com.massivecraft.factions.zcore.persist.*; import com.massivecraft.factions.zcore.util.TL; import com.massivecraft.factions.zcore.util.TagUtil; import com.massivecraft.factions.zcore.util.TextUtil; @@ -872,13 +872,16 @@ public class FactionsPlayerListener implements Listener { Block block = event.getClickedBlock(); Player player = event.getPlayer(); + FLocation loc = new FLocation(block.getLocation()); + Faction faction = MemoryBoard.getInstance().getFactionAt(loc); + FPlayer fplayer = MemoryFPlayers.getInstance().getByPlayer(player); // Check if the material is bypassing protection if (Conf.territoryBypasssProtectedMaterials.contains(block.getType())) return; if (block == null) return; // clicked in air, apparently - if (!FactionsBlockListener.playerCanBuildDestroyBlock(player, block.getLocation(), "build", false) + if (!CheckPlayerAccess(player, fplayer, loc, faction, faction.getAccess(fplayer, PermissableAction.BUILD), PermissableAction.BUILD, (faction.getAccess(fplayer, PermissableAction.PAIN_BUILD) == Access.ALLOW)) || !canPlayerUseBlock(player, block, false) || !playerCanUseItemHere(player, block.getLocation(), event.getMaterial(), false)) { event.setCancelled(true);