diff --git a/src/com/massivecraft/factions/Conf.java b/src/com/massivecraft/factions/Conf.java index 877c49e3..91db6205 100644 --- a/src/com/massivecraft/factions/Conf.java +++ b/src/com/massivecraft/factions/Conf.java @@ -73,6 +73,7 @@ public class Conf { public static int noPVPDamageToOthersForXSecondsAfterLogin = 3; public static boolean claimsMustBeConnected = false; + public static boolean claimsCanBeUnconnectedIfOwnedByOtherFaction = true; public static double considerFactionsReallyOfflineAfterXMinutes = 0; diff --git a/src/com/massivecraft/factions/FPlayer.java b/src/com/massivecraft/factions/FPlayer.java index 0e177938..d1bb73c7 100644 --- a/src/com/massivecraft/factions/FPlayer.java +++ b/src/com/massivecraft/factions/FPlayer.java @@ -503,8 +503,16 @@ public class FPlayer { return false; } - if (Conf.claimsMustBeConnected && myFaction.getLandRoundedInWorld(flocation.getWorldName()) > 0 && !Board.isConnectedLocation(flocation, myFaction)) { - sendMessage("You can only claim additional land which is connected to your first claim!"); + if ( + Conf.claimsMustBeConnected + && myFaction.getLandRoundedInWorld(flocation.getWorldName()) > 0 + && !Board.isConnectedLocation(flocation, myFaction) + && (!Conf.claimsCanBeUnconnectedIfOwnedByOtherFaction || !otherFaction.isNormal()) + ) { + if (Conf.claimsCanBeUnconnectedIfOwnedByOtherFaction) + sendMessage("You can only claim additional land which is connected to your first claim or controlled by another faction!"); + else + sendMessage("You can only claim additional land which is connected to your first claim!"); return false; }