Improve compatibility with some economy plugins (hopefully) #385
This commit is contained in:
parent
6bc16d25b1
commit
f77750fc91
@ -82,9 +82,9 @@ public class EngineEcon extends EngineAbstract
|
||||
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||
public void takeOnDisband(EventFactionsDisband event)
|
||||
{
|
||||
// If there is a usender ...
|
||||
MPlayer usender = event.getMSender();
|
||||
if (usender == null) return;
|
||||
// If there is a mplayer ...
|
||||
MPlayer mplayer = event.getMPlayer();
|
||||
if (mplayer == null) return;
|
||||
|
||||
// ... and economy is enabled ...
|
||||
if (!Econ.isEnabled()) return;
|
||||
@ -95,10 +95,10 @@ public class EngineEcon extends EngineAbstract
|
||||
double amount = Money.get(faction);
|
||||
String amountString = Money.format(amount);
|
||||
|
||||
Econ.transferMoney(faction, usender, usender, amount, true);
|
||||
Econ.transferMoney(faction, mplayer, mplayer, amount, true);
|
||||
|
||||
usender.msg("<i>You have been given the disbanded faction's bank, totaling %s.", amountString);
|
||||
Factions.get().log(usender.getName() + " has been given bank holdings of "+amountString+" from disbanding "+faction.getName()+".");
|
||||
mplayer.msg("<i>You have been given the disbanded faction's bank, totaling %s.", amountString);
|
||||
Factions.get().log(mplayer.getName() + " has been given bank holdings of "+amountString+" from disbanding "+faction.getName()+".");
|
||||
}
|
||||
|
||||
// -------------------------------------------- //
|
||||
@ -107,16 +107,16 @@ public class EngineEcon extends EngineAbstract
|
||||
|
||||
public static void payForAction(EventFactionsAbstractSender event, Double cost, String desc)
|
||||
{
|
||||
// If there is a sender ...
|
||||
MPlayer usender = event.getMSender();
|
||||
if (usender == null) return;
|
||||
// If there is an mplayer ...
|
||||
MPlayer mplayer = event.getMPlayer();
|
||||
if (mplayer == null) return;
|
||||
|
||||
// ... and there is a cost ...
|
||||
if (cost == null) return;
|
||||
if (cost == 0) return;
|
||||
|
||||
// ... that the sender can't afford ...
|
||||
if (Econ.payForAction(cost, usender, desc)) return;
|
||||
if (Econ.payForAction(cost, mplayer, desc)) return;
|
||||
|
||||
// ... then cancel.
|
||||
event.setCancelled(true);
|
||||
|
@ -147,14 +147,14 @@ public class EngineMain extends EngineAbstract
|
||||
{
|
||||
final int tableCols = 4;
|
||||
final CommandSender sender = event.getSender();
|
||||
final MPlayer msender = event.getMSender();
|
||||
final MPlayer mplayer = event.getMPlayer();
|
||||
final Faction faction = event.getFaction();
|
||||
final boolean normal = faction.isNormal();
|
||||
final Map<String, PriorityLines> idPriorityLiness = event.getIdPriorityLiness();
|
||||
final boolean peaceful = faction.getFlag(MFlag.getFlagPeaceful());
|
||||
|
||||
// ID
|
||||
if (msender.isUsingAdminMode())
|
||||
if (mplayer.isUsingAdminMode())
|
||||
{
|
||||
show(idPriorityLiness, Const.SHOW_ID_FACTION_ID, Const.SHOW_PRIORITY_FACTION_ID, "ID", faction.getId());
|
||||
}
|
||||
@ -242,7 +242,7 @@ public class EngineMain extends EngineAbstract
|
||||
String none = Txt.parse("<silver><italic>none");
|
||||
String everyone = MConf.get().colorTruce.toString() + Txt.parse("<italic>*EVERYONE*");
|
||||
Set<Rel> rels = EnumSet.of(Rel.TRUCE, Rel.ALLY, Rel.ENEMY);
|
||||
Map<Rel, List<String>> relNames = faction.getRelationNames(msender, rels, true);
|
||||
Map<Rel, List<String>> relNames = faction.getRelationNames(mplayer, rels, true);
|
||||
for (Entry<Rel, List<String>> entry : relNames.entrySet())
|
||||
{
|
||||
Rel rel = entry.getKey();
|
||||
@ -279,12 +279,12 @@ public class EngineMain extends EngineAbstract
|
||||
{
|
||||
if (follower.isOnline(sender))
|
||||
{
|
||||
followerNamesOnline.add(follower.getNameAndTitle(msender));
|
||||
followerNamesOnline.add(follower.getNameAndTitle(mplayer));
|
||||
}
|
||||
else if (normal)
|
||||
{
|
||||
// For the non-faction we skip the offline members since they are far to many (infinite almost)
|
||||
followerNamesOffline.add(follower.getNameAndTitle(msender));
|
||||
followerNamesOffline.add(follower.getNameAndTitle(mplayer));
|
||||
}
|
||||
}
|
||||
|
||||
@ -510,14 +510,14 @@ public class EngineMain extends EngineAbstract
|
||||
public void onChunksChangeInner(EventFactionsChunksChange event)
|
||||
{
|
||||
// Args
|
||||
final MPlayer msender = event.getMSender();
|
||||
final MPlayer mplayer = event.getMPlayer();
|
||||
final Faction newFaction = event.getNewFaction();
|
||||
final Map<Faction, Set<PS>> currentFactionChunks = event.getOldFactionChunks();
|
||||
final Set<Faction> currentFactions = currentFactionChunks.keySet();
|
||||
final Set<PS> chunks = event.getChunks();
|
||||
|
||||
// Admin Mode? Sure!
|
||||
if (msender.isUsingAdminMode()) return;
|
||||
if (mplayer.isUsingAdminMode()) return;
|
||||
|
||||
// CALC: Is there at least one normal faction among the current ones?
|
||||
boolean currentFactionsContainsAtLeastOneNormal = false;
|
||||
@ -540,14 +540,14 @@ public class EngineMain extends EngineAbstract
|
||||
if ( ! MConf.get().worldsClaimingEnabled.contains(worldId))
|
||||
{
|
||||
String worldName = Mixin.getWorldDisplayName(worldId);
|
||||
msender.msg("<b>Land claiming is disabled in <h>%s<b>.", worldName);
|
||||
mplayer.msg("<b>Land claiming is disabled in <h>%s<b>.", worldName);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// ... ensure we have permission to alter the territory of the new faction ...
|
||||
if ( ! MPerm.getPermTerritory().has(msender, newFaction, true))
|
||||
if ( ! MPerm.getPermTerritory().has(mplayer, newFaction, true))
|
||||
{
|
||||
// NOTE: No need to send a message. We send message from the permission check itself.
|
||||
event.setCancelled(true);
|
||||
@ -557,7 +557,7 @@ public class EngineMain extends EngineAbstract
|
||||
// ... ensure the new faction has enough players to claim ...
|
||||
if (newFaction.getMPlayers().size() < MConf.get().claimsRequireMinFactionMembers)
|
||||
{
|
||||
msender.msg("<b>Factions must have at least <h>%s<b> members to claim land.", MConf.get().claimsRequireMinFactionMembers);
|
||||
mplayer.msg("<b>Factions must have at least <h>%s<b> members to claim land.", MConf.get().claimsRequireMinFactionMembers);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -566,7 +566,7 @@ public class EngineMain extends EngineAbstract
|
||||
int ownedLand = newFaction.getLandCount();
|
||||
if (MConf.get().claimedLandsMax != 0 && ownedLand + chunks.size() > MConf.get().claimedLandsMax && ! newFaction.getFlag(MFlag.getFlagInfpower()))
|
||||
{
|
||||
msender.msg("<b>Limit reached. You can't claim more land.");
|
||||
mplayer.msg("<b>Limit reached. You can't claim more land.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -574,7 +574,7 @@ public class EngineMain extends EngineAbstract
|
||||
// ... ensure the claim would not bypass the faction power ...
|
||||
if (ownedLand + chunks.size() > newFaction.getPowerRounded())
|
||||
{
|
||||
msender.msg("<b>You don't have enough power to claim that land.");
|
||||
mplayer.msg("<b>You don't have enough power to claim that land.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -592,7 +592,7 @@ public class EngineMain extends EngineAbstract
|
||||
for (Faction nearbyFaction : nearbyFactions)
|
||||
{
|
||||
if (claimnear.has(newFaction, nearbyFaction)) continue;
|
||||
msender.message(claimnear.createDeniedMessage(msender, nearbyFaction));
|
||||
mplayer.message(claimnear.createDeniedMessage(mplayer, nearbyFaction));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -615,11 +615,11 @@ public class EngineMain extends EngineAbstract
|
||||
{
|
||||
if (MConf.get().claimsCanBeUnconnectedIfOwnedByOtherFaction)
|
||||
{
|
||||
msender.msg("<b>You can only claim additional land which is connected to your first claim or controlled by another faction!");
|
||||
mplayer.msg("<b>You can only claim additional land which is connected to your first claim or controlled by another faction!");
|
||||
}
|
||||
else
|
||||
{
|
||||
msender.msg("<b>You can only claim additional land which is connected to your first claim!");
|
||||
mplayer.msg("<b>You can only claim additional land which is connected to your first claim!");
|
||||
}
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
@ -635,15 +635,15 @@ public class EngineMain extends EngineAbstract
|
||||
// ... that is an actual faction ...
|
||||
if (oldFaction.isNone()) continue;
|
||||
|
||||
// ... for which the msender lacks permission ...
|
||||
if (MPerm.getPermTerritory().has(msender, oldFaction, false)) continue;
|
||||
// ... for which the mplayer lacks permission ...
|
||||
if (MPerm.getPermTerritory().has(mplayer, oldFaction, false)) continue;
|
||||
|
||||
// ... consider all reasons to forbid "overclaiming/warclaiming" ...
|
||||
|
||||
// ... claiming from others may be forbidden ...
|
||||
if ( ! MConf.get().claimingFromOthersAllowed)
|
||||
{
|
||||
msender.msg("<b>You may not claim land from others.");
|
||||
mplayer.msg("<b>You may not claim land from others.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -651,7 +651,7 @@ public class EngineMain extends EngineAbstract
|
||||
// ... the relation may forbid ...
|
||||
if (oldFaction.getRelationTo(newFaction).isAtLeast(Rel.TRUCE))
|
||||
{
|
||||
msender.msg("<b>You can't claim this land due to your relation with the current owner.");
|
||||
mplayer.msg("<b>You can't claim this land due to your relation with the current owner.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -659,7 +659,7 @@ public class EngineMain extends EngineAbstract
|
||||
// ... 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));
|
||||
mplayer.msg("%s<i> owns this land and is strong enough to keep it.", oldFaction.getName(mplayer));
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
@ -667,7 +667,7 @@ public class EngineMain extends EngineAbstract
|
||||
// ... 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.");
|
||||
mplayer.msg("<b>You must start claiming land at the border of the territory.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
@ -65,8 +65,13 @@ public class Faction extends Entity<Faction> implements EconomyParticipator, Nam
|
||||
// We may move factions around during upgrades.
|
||||
if (!Factions.get().isDatabaseInitialized()) return;
|
||||
|
||||
// Zero balance
|
||||
// NOTE: Existence check is required for compatibility with some plugins.
|
||||
// If they have money ...
|
||||
if (Money.exists(this))
|
||||
{
|
||||
// ... remove it.
|
||||
Money.set(this, null, 0);
|
||||
}
|
||||
|
||||
// Clean the board
|
||||
BoardColl.get().clean();
|
||||
|
@ -13,7 +13,7 @@ public abstract class EventFactionsAbstractSender extends EventMassiveCore
|
||||
|
||||
private final CommandSender sender;
|
||||
public CommandSender getSender() { return this.sender; }
|
||||
public MPlayer getMSender() { return this.sender == null ? null : MPlayer.get(this.sender); }
|
||||
public MPlayer getMPlayer() { return this.sender == null ? null : MPlayer.get(this.sender); }
|
||||
|
||||
// -------------------------------------------- //
|
||||
// CONSTRUCT
|
||||
@ -29,4 +29,5 @@ public abstract class EventFactionsAbstractSender extends EventMassiveCore
|
||||
super(async);
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public class EventFactionsChunksChange extends EventFactionsAbstractSender
|
||||
this.oldChunkFaction = Collections.unmodifiableMap(BoardColl.getChunkFaction(chunks));
|
||||
this.oldFactionChunks = Collections.unmodifiableMap(MUtil.reverseIndex(this.oldChunkFaction));
|
||||
|
||||
MPlayer msender = this.getMSender();
|
||||
MPlayer msender = this.getMPlayer();
|
||||
Faction self = null;
|
||||
if (msender != null) self = msender.getFaction();
|
||||
Map<PS, EventFactionsChunkChangeType> currentChunkType = new LinkedHashMap<PS, EventFactionsChunkChangeType>();
|
||||
|
@ -77,7 +77,7 @@ public class EngineWorldGuard extends EngineAbstract
|
||||
// Permanent Factions should not apply this rule
|
||||
if (event.getNewFaction().getFlag(MFlag.ID_PERMANENT)) return;
|
||||
|
||||
MPlayer mplayer = event.getMSender();
|
||||
MPlayer mplayer = event.getMPlayer();
|
||||
|
||||
if ( ! MConf.get().worldguardCheckWorldsEnabled.contains(mplayer.getPlayer())) return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user