Add possibility for new money system
This commit is contained in:
parent
858343d121
commit
0a0cc047ae
@ -76,7 +76,7 @@ public class CmdFactionsTop extends FactionsCommand
|
|||||||
{
|
{
|
||||||
switch(category)
|
switch(category)
|
||||||
{
|
{
|
||||||
case MONEY: return Money.get(faction);
|
case MONEY: return Econ.getMoney(faction);
|
||||||
case MEMBERS: return faction.getMPlayers().size();
|
case MEMBERS: return faction.getMPlayers().size();
|
||||||
case TERRITORY: return faction.getLandCount();
|
case TERRITORY: return faction.getLandCount();
|
||||||
case AGE: return faction.getAge();
|
case AGE: return faction.getAge();
|
||||||
@ -89,7 +89,7 @@ public class CmdFactionsTop extends FactionsCommand
|
|||||||
String ret = Txt.parse("%s<i>: ", faction.getName(mplayer));
|
String ret = Txt.parse("%s<i>: ", faction.getName(mplayer));
|
||||||
switch(category)
|
switch(category)
|
||||||
{
|
{
|
||||||
case MONEY: ret += Money.format(Money.get(faction), true); break;
|
case MONEY: ret += Money.format(Econ.getMoney(faction), true); break;
|
||||||
case MEMBERS: ret += faction.getMPlayers().size() + " members"; break;
|
case MEMBERS: ret += faction.getMPlayers().size() + " members"; break;
|
||||||
case TERRITORY: ret += faction.getLandCount() + " chunks"; break;
|
case TERRITORY: ret += faction.getLandCount() + " chunks"; break;
|
||||||
case AGE:
|
case AGE:
|
||||||
|
@ -59,7 +59,7 @@ public class EngineEcon extends Engine
|
|||||||
if (oldFaction.getMPlayers().size() > 1) return;
|
if (oldFaction.getMPlayers().size() > 1) return;
|
||||||
|
|
||||||
// ... then transfer all money to the player.
|
// ... then transfer all money to the player.
|
||||||
double money = Money.get(oldFaction);
|
double money = Econ.getMoney(oldFaction);
|
||||||
if (money == 0) return;
|
if (money == 0) return;
|
||||||
Econ.transferMoney(mplayer, oldFaction, mplayer, money);
|
Econ.transferMoney(mplayer, oldFaction, mplayer, money);
|
||||||
}
|
}
|
||||||
@ -81,7 +81,7 @@ public class EngineEcon extends Engine
|
|||||||
// ... then transfer all the faction money to the sender.
|
// ... then transfer all the faction money to the sender.
|
||||||
Faction faction = event.getFaction();
|
Faction faction = event.getFaction();
|
||||||
|
|
||||||
double amount = Money.get(faction);
|
double amount = Econ.getMoney(faction);
|
||||||
|
|
||||||
// Check that there is an amount
|
// Check that there is an amount
|
||||||
if (amount == 0) return;
|
if (amount == 0) return;
|
||||||
|
@ -153,7 +153,7 @@ public class EngineShow extends Engine
|
|||||||
// BANK
|
// BANK
|
||||||
if (MConf.get().bankEnabled)
|
if (MConf.get().bankEnabled)
|
||||||
{
|
{
|
||||||
double bank = Money.get(faction);
|
double bank = Econ.getMoney(faction);
|
||||||
String bankDesc = Txt.parse("<h>%s", Money.format(bank, true));
|
String bankDesc = Txt.parse("<h>%s", Money.format(bank, true));
|
||||||
show(idPriorityLiness, SHOW_ID_FACTION_BANK, SHOW_PRIORITY_FACTION_BANK, "Bank", bankDesc);
|
show(idPriorityLiness, SHOW_ID_FACTION_BANK, SHOW_PRIORITY_FACTION_BANK, "Bank", bankDesc);
|
||||||
}
|
}
|
||||||
|
@ -135,12 +135,10 @@ public class Faction extends Entity<Faction> implements FactionsParticipator, MP
|
|||||||
// The powerBoost is a custom increase/decrease to default and maximum power.
|
// The powerBoost is a custom increase/decrease to default and maximum power.
|
||||||
// Null means the faction has powerBoost (0).
|
// Null means the faction has powerBoost (0).
|
||||||
private Double powerBoost = null;
|
private Double powerBoost = null;
|
||||||
|
|
||||||
// Can anyone join the Faction?
|
// The money a Faction has
|
||||||
// If the faction is open they can.
|
// null means 0.0
|
||||||
// If the faction is closed an invite is required.
|
private Double money = null;
|
||||||
// Null means default.
|
|
||||||
// private Boolean open = null;
|
|
||||||
|
|
||||||
// This is the ids of the invited players.
|
// This is the ids of the invited players.
|
||||||
// They are actually "senderIds" since you can invite "@console" to your faction.
|
// They are actually "senderIds" since you can invite "@console" to your faction.
|
||||||
@ -425,6 +423,28 @@ public class Faction extends Entity<Faction> implements FactionsParticipator, MP
|
|||||||
// Mark as changed
|
// Mark as changed
|
||||||
this.changed();
|
this.changed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// FIELD: money
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public double getMoney()
|
||||||
|
{
|
||||||
|
if (!MConf.get().econEnabled) throw new UnsupportedOperationException("econ not enabled");
|
||||||
|
if (!MConf.get().bankEnabled) throw new UnsupportedOperationException("bank not enabled");
|
||||||
|
if (!MConf.get().useNewMoneySystem) throw new UnsupportedOperationException("this server does not use the new econ system");
|
||||||
|
|
||||||
|
return this.convertGet(this.money, 0D);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMoney(Double money)
|
||||||
|
{
|
||||||
|
if (!MConf.get().econEnabled) throw new UnsupportedOperationException("econ not enabled");
|
||||||
|
if (!MConf.get().bankEnabled) throw new UnsupportedOperationException("bank not enabled");
|
||||||
|
if (!MConf.get().useNewMoneySystem) throw new UnsupportedOperationException("this server does not use the new econ system");
|
||||||
|
|
||||||
|
this.money = this.convertSet(money, this.money, 0D);
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FIELD: open
|
// FIELD: open
|
||||||
|
@ -625,4 +625,6 @@ public class MConf extends Entity<MConf>
|
|||||||
// If you set this to false the player executing the command will pay instead.
|
// If you set this to false the player executing the command will pay instead.
|
||||||
public boolean bankFactionPaysCosts = true;
|
public boolean bankFactionPaysCosts = true;
|
||||||
|
|
||||||
|
public boolean useNewMoneySystem = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ public class Econ
|
|||||||
|
|
||||||
public static void sendBalanceInfo(MPlayer to, EconomyParticipator about)
|
public static void sendBalanceInfo(MPlayer to, EconomyParticipator about)
|
||||||
{
|
{
|
||||||
to.msg("<a>%s's<i> balance is <h>%s<i>.", about.describeTo(to, true), Money.format(Money.get(about)));
|
to.msg("<a>%s's<i> balance is <h>%s<i>.", about.describeTo(to, true), Money.format(getMoney(about)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isMePermittedYou(EconomyParticipator me, EconomyParticipator you, MPerm mperm)
|
public static boolean isMePermittedYou(EconomyParticipator me, EconomyParticipator you, MPerm mperm)
|
||||||
@ -128,7 +128,7 @@ public class Econ
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Is there enough money for the transaction to happen?
|
// Is there enough money for the transaction to happen?
|
||||||
if (Money.get(from) < amount)
|
if (getMoney(from) < amount)
|
||||||
{
|
{
|
||||||
// There was not enough money to pay
|
// There was not enough money to pay
|
||||||
if (by != null && notify)
|
if (by != null && notify)
|
||||||
@ -139,7 +139,7 @@ public class Econ
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Transfer money
|
// Transfer money
|
||||||
if (Money.move(from, to, by, amount, "Factions"))
|
if (moveMoney(from, to, by, amount))
|
||||||
{
|
{
|
||||||
if (notify)
|
if (notify)
|
||||||
{
|
{
|
||||||
@ -219,7 +219,7 @@ public class Econ
|
|||||||
{
|
{
|
||||||
if ( ! isEnabled()) return true;
|
if ( ! isEnabled()) return true;
|
||||||
|
|
||||||
if (Money.get(ep) < delta)
|
if (getMoney(ep) < delta)
|
||||||
{
|
{
|
||||||
if (toDoThis != null && !toDoThis.isEmpty())
|
if (toDoThis != null && !toDoThis.isEmpty())
|
||||||
{
|
{
|
||||||
@ -240,7 +240,7 @@ public class Econ
|
|||||||
|
|
||||||
boolean hasActionDesctription = (actionDescription != null && !actionDescription.isEmpty());
|
boolean hasActionDesctription = (actionDescription != null && !actionDescription.isEmpty());
|
||||||
|
|
||||||
if (Money.spawn(ep, null, delta, "Factions"))
|
if (moveMoney(null, ep, null, delta))
|
||||||
{
|
{
|
||||||
modifyUniverseMoney(ep, -delta);
|
modifyUniverseMoney(ep, -delta);
|
||||||
|
|
||||||
@ -273,5 +273,62 @@ public class Econ
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static double getMoney(EconomyParticipator ep)
|
||||||
|
{
|
||||||
|
if (ep instanceof Faction && MConf.get().useNewMoneySystem)
|
||||||
|
{
|
||||||
|
return ((Faction) ep).getMoney();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return Money.get(ep);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean moveMoney(EconomyParticipator from, EconomyParticipator to, EconomyParticipator by, double amount)
|
||||||
|
{
|
||||||
|
final boolean fromFaction = from instanceof Faction;
|
||||||
|
final boolean toFaction = to instanceof Faction;
|
||||||
|
|
||||||
|
// If the old money system is used just do that
|
||||||
|
if (!MConf.get().useNewMoneySystem)
|
||||||
|
{
|
||||||
|
return Money.move(from, to, by, amount, "Factions");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Or if neither to or from is a faction
|
||||||
|
if (!fromFaction && !toFaction)
|
||||||
|
{
|
||||||
|
return Money.move(from, to, by, amount, "Factions");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle from
|
||||||
|
if (fromFaction)
|
||||||
|
{
|
||||||
|
Faction faction = (Faction) from;
|
||||||
|
double money = faction.getMoney();
|
||||||
|
if (amount > money) return false;
|
||||||
|
faction.setMoney(money - amount);
|
||||||
|
}
|
||||||
|
else if (from != null)
|
||||||
|
{
|
||||||
|
Money.despawn(from, by, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle to
|
||||||
|
if (toFaction)
|
||||||
|
{
|
||||||
|
Faction faction = (Faction) to;
|
||||||
|
double money = faction.getMoney();
|
||||||
|
faction.setMoney(money + amount);
|
||||||
|
}
|
||||||
|
else if (to != null)
|
||||||
|
{
|
||||||
|
Money.spawn(to, by, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user