parent
e5d7749255
commit
d23ac9de09
@ -590,39 +590,52 @@ public class EngineMain extends EngineAbstract
|
|||||||
}
|
}
|
||||||
|
|
||||||
// For each of the old factions ...
|
// For each of the old factions ...
|
||||||
for (Faction oldFaction : currentFactions)
|
for (Entry<Faction, Set<PS>> entry : currentFactionChunks.entrySet())
|
||||||
{
|
{
|
||||||
|
Faction oldFaction = entry.getKey();
|
||||||
|
Set<PS> oldChunks = entry.getValue();
|
||||||
|
|
||||||
// ... that is an actual faction ...
|
// ... that is an actual faction ...
|
||||||
if (oldFaction.isNone()) continue;
|
if (oldFaction.isNone()) continue;
|
||||||
|
|
||||||
// ... for which the msender lacks permission ...
|
// ... for which the msender lacks permission ...
|
||||||
if (MPerm.getPermTerritory().has(msender, oldFaction, false)) continue;
|
if (MPerm.getPermTerritory().has(msender, oldFaction, false)) continue;
|
||||||
|
|
||||||
// ... print the error message of choice ...
|
// ... consider all reasons to forbid "overclaiming/warclaiming" ...
|
||||||
if (msender.hasFaction() && msender.getFaction() == oldFaction)
|
|
||||||
{
|
// ... claiming from others may be forbidden ...
|
||||||
msender.sendMessage(MPerm.getPermTerritory().createDeniedMessage(msender, oldFaction));
|
if ( ! MConf.get().claimingFromOthersAllowed)
|
||||||
}
|
|
||||||
else if ( ! MConf.get().claimingFromOthersAllowed)
|
|
||||||
{
|
{
|
||||||
msender.msg("<b>You may not claim land from others.");
|
msender.msg("<b>You may not claim land from others.");
|
||||||
}
|
event.setCancelled(true);
|
||||||
else if (oldFaction.getRelationTo(newFaction).isAtLeast(Rel.TRUCE))
|
return;
|
||||||
{
|
|
||||||
msender.msg("<b>You can't claim this land due to your relation with the current owner.");
|
|
||||||
}
|
|
||||||
else if ( ! oldFaction.hasLandInflation())
|
|
||||||
{
|
|
||||||
msender.msg("%s<i> owns this land and is strong enough to keep it.", oldFaction.getName(msender));
|
|
||||||
}
|
|
||||||
else if ( ! BoardColl.get().isAnyBorderPs(chunks))
|
|
||||||
{
|
|
||||||
msender.msg("<b>You must start claiming land at the border of the territory.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ... and cancel.
|
// ... the relation may forbid ...
|
||||||
event.setCancelled(true);
|
if (oldFaction.getRelationTo(newFaction).isAtLeast(Rel.TRUCE))
|
||||||
return;
|
{
|
||||||
|
msender.msg("<b>You can't claim this land due to your relation with the current owner.");
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ... the old faction might not be inflated enough ...
|
||||||
|
if (oldFaction.getPowerRounded() > oldFaction.getLandCount() - oldChunks.size())
|
||||||
|
{
|
||||||
|
msender.msg("%s<i> owns this land and is strong enough to keep it.", oldFaction.getName(msender));
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ... and you might be trying to claim without starting at the border ...
|
||||||
|
if ( ! BoardColl.get().isAnyBorderPs(chunks))
|
||||||
|
{
|
||||||
|
msender.msg("<b>You must start claiming land at the border of the territory.");
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ... otherwise you may claim from this old faction even though you lack explicit permission from them.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user