Almost finished money refactoring
This commit is contained in:
parent
d37a4d6ff7
commit
b202acb685
@ -2,7 +2,7 @@ name: Factions
|
|||||||
version: 1.6.0_dev
|
version: 1.6.0_dev
|
||||||
main: com.massivecraft.factions.P
|
main: com.massivecraft.factions.P
|
||||||
authors: [Olof Larsson, Brett Flannigan]
|
authors: [Olof Larsson, Brett Flannigan]
|
||||||
softdepend: [PermissionsEx, Permissions, Essentials, EssentialsChat, HeroChat, iChat, LocalAreaChat, nChat, ChatManager, AuthMe, iConomy, Register, Spout, WorldEdit, WorldGuard]
|
softdepend: [PermissionsEx, Permissions, Essentials, EssentialsChat, HeroChat, iChat, LocalAreaChat, nChat, ChatManager, AuthMe, Register, Spout, WorldEdit, WorldGuard]
|
||||||
permissions:
|
permissions:
|
||||||
factions.kit.admin:
|
factions.kit.admin:
|
||||||
description: All faction permissions.
|
description: All faction permissions.
|
||||||
|
@ -208,7 +208,7 @@ public class Board
|
|||||||
} else {
|
} else {
|
||||||
FLocation flocationHere = topLeft.getRelative(dx, dz);
|
FLocation flocationHere = topLeft.getRelative(dx, dz);
|
||||||
Faction factionHere = getFactionAt(flocationHere);
|
Faction factionHere = getFactionAt(flocationHere);
|
||||||
Relation relation = faction.getRelation(factionHere);
|
Relation relation = faction.getRelationTo(factionHere);
|
||||||
if (factionHere.isNone()) {
|
if (factionHere.isNone()) {
|
||||||
row += ChatColor.GRAY+"-";
|
row += ChatColor.GRAY+"-";
|
||||||
} else if (factionHere.isSafeZone()) {
|
} else if (factionHere.isSafeZone()) {
|
||||||
@ -225,7 +225,7 @@ public class Board
|
|||||||
if (!fList.containsKey(factionHere.getTag()))
|
if (!fList.containsKey(factionHere.getTag()))
|
||||||
fList.put(factionHere.getTag(), Conf.mapKeyChrs[chrIdx++]);
|
fList.put(factionHere.getTag(), Conf.mapKeyChrs[chrIdx++]);
|
||||||
char tag = fList.get(factionHere.getTag());
|
char tag = fList.get(factionHere.getTag());
|
||||||
row += factionHere.getRelation(faction).getColor() + "" + tag;
|
row += factionHere.getRelationTo(faction).getColor() + "" + tag;
|
||||||
} else {
|
} else {
|
||||||
row += ChatColor.GRAY+"-";
|
row += ChatColor.GRAY+"-";
|
||||||
}
|
}
|
||||||
|
@ -194,9 +194,8 @@ public class Conf
|
|||||||
public static String capePeaceful = "https://github.com/MassiveCraft/Factions/raw/master/capes/peaceful.png";
|
public static String capePeaceful = "https://github.com/MassiveCraft/Factions/raw/master/capes/peaceful.png";
|
||||||
|
|
||||||
// Economy settings
|
// Economy settings
|
||||||
public static boolean econRegisterEnabled = false;
|
public static boolean econEnabled = false;
|
||||||
public static boolean econIConomyEnabled = false;
|
public static String econUniverseAccount = "";
|
||||||
public static boolean econEssentialsEcoEnabled = false;
|
|
||||||
public static double econCostClaimWilderness = 30.0;
|
public static double econCostClaimWilderness = 30.0;
|
||||||
public static double econCostClaimFromFactionBonus = 30.0;
|
public static double econCostClaimFromFactionBonus = 30.0;
|
||||||
public static double econClaimAdditionalMultiplier = 0.5;
|
public static double econClaimAdditionalMultiplier = 0.5;
|
||||||
|
@ -4,13 +4,17 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||||
|
import com.massivecraft.factions.iface.RelationParticipator;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
import com.massivecraft.factions.integration.Econ;
|
||||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||||
import com.massivecraft.factions.integration.Worldguard;
|
import com.massivecraft.factions.integration.Worldguard;
|
||||||
import com.massivecraft.factions.struct.ChatMode;
|
import com.massivecraft.factions.struct.ChatMode;
|
||||||
import com.massivecraft.factions.struct.Relation;
|
import com.massivecraft.factions.struct.Relation;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
|
import com.massivecraft.factions.util.RelationUtil;
|
||||||
import com.massivecraft.factions.zcore.persist.PlayerEntity;
|
import com.massivecraft.factions.zcore.persist.PlayerEntity;
|
||||||
|
import com.nijikokun.register.payment.Method.MethodAccount;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -24,7 +28,7 @@ import com.massivecraft.factions.zcore.persist.PlayerEntity;
|
|||||||
* This means you can use the == operator. No .equals method necessary.
|
* This means you can use the == operator. No .equals method necessary.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class FPlayer extends PlayerEntity
|
public class FPlayer extends PlayerEntity implements EconomyParticipator
|
||||||
{
|
{
|
||||||
//private transient String playerName;
|
//private transient String playerName;
|
||||||
private transient FLocation lastStoodAt = new FLocation(); // Where did this player stand the last time we checked?
|
private transient FLocation lastStoodAt = new FLocation(); // Where did this player stand the last time we checked?
|
||||||
@ -116,6 +120,13 @@ public class FPlayer extends PlayerEntity
|
|||||||
// FIELD: chatMode
|
// FIELD: chatMode
|
||||||
private ChatMode chatMode;
|
private ChatMode chatMode;
|
||||||
|
|
||||||
|
// FIELD: account
|
||||||
|
public MethodAccount getAccount()
|
||||||
|
{
|
||||||
|
if ( ! Econ.shouldBeUsed()) return null;
|
||||||
|
return Econ.getMethod().getAccount(this.getId());
|
||||||
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// Construct
|
// Construct
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
@ -325,7 +336,7 @@ public class FPlayer extends PlayerEntity
|
|||||||
public String getNameAndRelevant(Faction faction)
|
public String getNameAndRelevant(Faction faction)
|
||||||
{
|
{
|
||||||
// Which relation?
|
// Which relation?
|
||||||
Relation rel = this.getRelation(faction);
|
Relation rel = this.getRelationTo(faction);
|
||||||
|
|
||||||
// For member we show title
|
// For member we show title
|
||||||
if (rel == Relation.MEMBER) {
|
if (rel == Relation.MEMBER) {
|
||||||
@ -359,7 +370,7 @@ public class FPlayer extends PlayerEntity
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.getRelation(faction).getColor()+getChatTag();
|
return this.getRelationTo(faction).getColor()+getChatTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getChatTag(FPlayer fplayer)
|
public String getChatTag(FPlayer fplayer)
|
||||||
@ -368,39 +379,48 @@ public class FPlayer extends PlayerEntity
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.getRelation(fplayer).getColor()+getChatTag();
|
return this.getRelationTo(fplayer).getColor()+getChatTag();
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
// Relation and relation colors
|
// Relation and relation colors
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
|
||||||
public Relation getRelation(Faction faction)
|
@Override
|
||||||
|
public String describeTo(RelationParticipator that, boolean ucfirst)
|
||||||
{
|
{
|
||||||
return faction.getRelation(this);
|
return RelationUtil.describeThatToMe(that, this, ucfirst);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Relation getRelation(FPlayer fplayer)
|
@Override
|
||||||
|
public String describeTo(RelationParticipator that)
|
||||||
{
|
{
|
||||||
return this.getFaction().getRelation(fplayer);
|
return RelationUtil.describeThatToMe(that, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Relation getRelationTo(RelationParticipator rp)
|
||||||
|
{
|
||||||
|
return RelationUtil.getRelationTo(this, rp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Relation getRelationTo(RelationParticipator rp, boolean ignorePeaceful)
|
||||||
|
{
|
||||||
|
return RelationUtil.getRelationTo(this, rp, ignorePeaceful);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Relation getRelationToLocation()
|
public Relation getRelationToLocation()
|
||||||
{
|
{
|
||||||
return Board.getFactionAt(new FLocation(this)).getRelation(this);
|
return Board.getFactionAt(new FLocation(this)).getRelationTo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatColor getRelationColor(Faction faction)
|
@Override
|
||||||
|
public ChatColor getRelationColor(RelationParticipator rp)
|
||||||
{
|
{
|
||||||
return faction.getRelationColor(this);
|
return RelationUtil.getRelationColor(this, rp);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatColor getRelationColor(FPlayer fplayer)
|
|
||||||
{
|
|
||||||
return this.getRelation(fplayer).getColor();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
// Health
|
// Health
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
@ -519,17 +539,17 @@ public class FPlayer extends PlayerEntity
|
|||||||
|
|
||||||
public boolean isInAllyTerritory()
|
public boolean isInAllyTerritory()
|
||||||
{
|
{
|
||||||
return Board.getFactionAt(new FLocation(this)).getRelation(this).isAlly();
|
return Board.getFactionAt(new FLocation(this)).getRelationTo(this).isAlly();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInNeutralTerritory()
|
public boolean isInNeutralTerritory()
|
||||||
{
|
{
|
||||||
return Board.getFactionAt(new FLocation(this)).getRelation(this).isNeutral();
|
return Board.getFactionAt(new FLocation(this)).getRelationTo(this).isNeutral();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isInEnemyTerritory()
|
public boolean isInEnemyTerritory()
|
||||||
{
|
{
|
||||||
return Board.getFactionAt(new FLocation(this)).getRelation(this).isEnemy();
|
return Board.getFactionAt(new FLocation(this)).getRelationTo(this).isEnemy();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendFactionHereMessage()
|
public void sendFactionHereMessage()
|
||||||
@ -569,13 +589,15 @@ public class FPlayer extends PlayerEntity
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if economy is enabled and they're not on the bypass list, make 'em pay
|
// if economy is enabled and they're not on the bypass list, make 'em pay
|
||||||
if (makePay && Econ.enabled() && ! this.isAdminBypassing())
|
if (makePay && Econ.shouldBeUsed() && ! this.isAdminBypassing())
|
||||||
{
|
{
|
||||||
double cost = Conf.econCostLeave;
|
double cost = Conf.econCostLeave;
|
||||||
|
if ( ! Econ.modifyMoney(this, -cost, "to leave your faction.", "for leaving your faction.")) return;
|
||||||
|
/*
|
||||||
// pay up
|
// pay up
|
||||||
if (cost > 0.0) {
|
if (cost > 0.0) {
|
||||||
String costString = Econ.moneyString(cost);
|
String costString = Econ.moneyString(cost);
|
||||||
if (!Econ.deductMoney(this.getName(), cost)) {
|
if ( ! Econ.deductMoney(this.getName(), cost)) {
|
||||||
msg("<b>It costs <h>%s<b> to leave your faction, which you can't currently afford.", costString);
|
msg("<b>It costs <h>%s<b> to leave your faction, which you can't currently afford.", costString);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -587,7 +609,7 @@ public class FPlayer extends PlayerEntity
|
|||||||
String costString = Econ.moneyString(-cost);
|
String costString = Econ.moneyString(-cost);
|
||||||
Econ.addMoney(this.getName(), -cost);
|
Econ.addMoney(this.getName(), -cost);
|
||||||
msg("<i>You have been paid <h>%s<i> for leaving your faction.", costString);
|
msg("<i>You have been paid <h>%s<i> for leaving your faction.", costString);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myFaction.isNormal())
|
if (myFaction.isNormal())
|
||||||
@ -671,7 +693,7 @@ public class FPlayer extends PlayerEntity
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (otherFaction.getRelation(this) == Relation.ALLY)
|
if (otherFaction.getRelationTo(this) == Relation.ALLY)
|
||||||
{
|
{
|
||||||
if (notifyFailure)
|
if (notifyFailure)
|
||||||
msg("<b>You can't claim the land of your allies.");
|
msg("<b>You can't claim the land of your allies.");
|
||||||
@ -723,15 +745,16 @@ public class FPlayer extends PlayerEntity
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if economy is enabled and they're not on the bypass list, make 'em pay
|
// if economy is enabled and they're not on the bypass list, make 'em pay
|
||||||
if (Econ.enabled() && ! this.isAdminBypassing())
|
if (Econ.shouldBeUsed() && ! this.isAdminBypassing())
|
||||||
{
|
{
|
||||||
double cost = Econ.calculateClaimCost(ownedLand, otherFaction.isNormal());
|
double cost = Econ.calculateClaimCost(ownedLand, otherFaction.isNormal());
|
||||||
String costString = Econ.moneyString(cost);
|
//String costString = Econ.moneyString(cost);
|
||||||
|
|
||||||
if(Conf.bankFactionPaysLandCosts && this.hasFaction())
|
if(Conf.bankFactionPaysLandCosts && this.hasFaction())
|
||||||
{
|
{
|
||||||
Faction faction = this.getFaction();
|
Faction faction = this.getFaction();
|
||||||
|
if ( ! Econ.modifyMoney(faction, -cost, "to claim this land", "for claiming this land")) return false;
|
||||||
|
/*
|
||||||
if( ! faction.removeMoney(cost))
|
if( ! faction.removeMoney(cost))
|
||||||
{
|
{
|
||||||
msg("<b>It costs <h>%s<b> to claim this land, which your faction can't currently afford.", costString);
|
msg("<b>It costs <h>%s<b> to claim this land, which your faction can't currently afford.", costString);
|
||||||
@ -741,16 +764,17 @@ public class FPlayer extends PlayerEntity
|
|||||||
{
|
{
|
||||||
// TODO: Only I can see this right?
|
// TODO: Only I can see this right?
|
||||||
msg("%s<i> has paid <h>%s<i> to claim some land.", faction.getTag(this), costString);
|
msg("%s<i> has paid <h>%s<i> to claim some land.", faction.getTag(this), costString);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( ! Econ.deductMoney(this.getId(), cost))
|
if ( ! Econ.modifyMoney(this, -cost, "to claim this land", "for claiming this land")) return false;
|
||||||
|
/*if ( ! Econ.deductMoney(this.getId(), cost))
|
||||||
{
|
{
|
||||||
msg("<b>Claiming this land will cost <h>%s<b>, which you can't currently afford.", costString);
|
msg("<b>Claiming this land will cost <h>%s<b>, which you can't currently afford.", costString);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
sendMessage("You have paid "+costString+" to claim this land.");
|
sendMessage("You have paid "+costString+" to claim this land.");*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,13 +8,17 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||||
|
import com.massivecraft.factions.iface.RelationParticipator;
|
||||||
|
import com.massivecraft.factions.integration.Econ;
|
||||||
import com.massivecraft.factions.struct.Relation;
|
import com.massivecraft.factions.struct.Relation;
|
||||||
import com.massivecraft.factions.struct.Role;
|
import com.massivecraft.factions.struct.Role;
|
||||||
import com.massivecraft.factions.util.*;
|
import com.massivecraft.factions.util.*;
|
||||||
import com.massivecraft.factions.zcore.persist.Entity;
|
import com.massivecraft.factions.zcore.persist.Entity;
|
||||||
|
import com.nijikokun.register.payment.Method.MethodAccount;
|
||||||
|
|
||||||
|
|
||||||
public class Faction extends Entity
|
public class Faction extends Entity implements EconomyParticipator
|
||||||
{
|
{
|
||||||
// FIELD: relationWish
|
// FIELD: relationWish
|
||||||
private Map<String, Relation> relationWish;
|
private Map<String, Relation> relationWish;
|
||||||
@ -106,10 +110,15 @@ public class Faction extends Entity
|
|||||||
// FIELD: lastPlayerLoggedOffTime
|
// FIELD: lastPlayerLoggedOffTime
|
||||||
private transient long lastPlayerLoggedOffTime;
|
private transient long lastPlayerLoggedOffTime;
|
||||||
|
|
||||||
// FIELD: money
|
// FIELD: account (fake field)
|
||||||
// Bank functions
|
// Bank functions
|
||||||
private double money;
|
public double money; // Deprecated TODO: Hantera.
|
||||||
public double getMoney() { return this.money; }
|
public MethodAccount getAccount()
|
||||||
|
{
|
||||||
|
return Econ.getMethod().getAccount("faction-"+this.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
/*public double getMoney() { return this.money; }
|
||||||
public boolean addMoney(double amount)
|
public boolean addMoney(double amount)
|
||||||
{
|
{
|
||||||
if ( amount > 0.0 )
|
if ( amount > 0.0 )
|
||||||
@ -127,7 +136,7 @@ public class Faction extends Entity
|
|||||||
|
|
||||||
this.money -= amount;
|
this.money -= amount;
|
||||||
return true;
|
return true;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// Construct
|
// Construct
|
||||||
@ -191,6 +200,36 @@ public class Faction extends Entity
|
|||||||
// Relation and relation colors TODO
|
// Relation and relation colors TODO
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String describeTo(RelationParticipator that, boolean ucfirst)
|
||||||
|
{
|
||||||
|
return RelationUtil.describeThatToMe(that, this, ucfirst);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String describeTo(RelationParticipator that)
|
||||||
|
{
|
||||||
|
return RelationUtil.describeThatToMe(that, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Relation getRelationTo(RelationParticipator rp)
|
||||||
|
{
|
||||||
|
return RelationUtil.getRelationTo(rp, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Relation getRelationTo(RelationParticipator rp, boolean ignorePeaceful)
|
||||||
|
{
|
||||||
|
return RelationUtil.getRelationTo(rp, this, ignorePeaceful);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ChatColor getRelationColor(RelationParticipator rp)
|
||||||
|
{
|
||||||
|
return RelationUtil.getRelationColor(this, rp);
|
||||||
|
}
|
||||||
|
|
||||||
public Relation getRelationWish(Faction otherFaction)
|
public Relation getRelationWish(Faction otherFaction)
|
||||||
{
|
{
|
||||||
if (this.relationWish.containsKey(otherFaction.getId()))
|
if (this.relationWish.containsKey(otherFaction.getId()))
|
||||||
@ -212,12 +251,12 @@ public class Faction extends Entity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Relation getRelation(Faction otherFaction)
|
/*public Relation getRelationTo(Faction otherFaction)
|
||||||
{
|
{
|
||||||
return getRelation(otherFaction, false);
|
return getRelationTo(otherFaction, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Relation getRelation(Faction otherFaction, boolean ignorePeaceful)
|
public Relation getRelationTo(Faction otherFaction, boolean ignorePeaceful)
|
||||||
{
|
{
|
||||||
if (!otherFaction.isNormal() || !this.isNormal())
|
if (!otherFaction.isNormal() || !this.isNormal())
|
||||||
{
|
{
|
||||||
@ -242,13 +281,13 @@ public class Faction extends Entity
|
|||||||
return this.getRelationWish(otherFaction);
|
return this.getRelationWish(otherFaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Relation getRelation(FPlayer fplayer)
|
public Relation getRelationTo(FPlayer fplayer)
|
||||||
{
|
{
|
||||||
if (fplayer == null)
|
if (fplayer == null)
|
||||||
return Relation.NEUTRAL;
|
return Relation.NEUTRAL;
|
||||||
else
|
else
|
||||||
return getRelation(fplayer.getFaction());
|
return getRelationTo(fplayer.getFaction());
|
||||||
}
|
}*/
|
||||||
|
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
// Power
|
// Power
|
||||||
@ -444,12 +483,12 @@ public class Faction extends Entity
|
|||||||
|
|
||||||
public ChatColor getRelationColor(Faction otherFaction)
|
public ChatColor getRelationColor(Faction otherFaction)
|
||||||
{
|
{
|
||||||
return this.getRelation(otherFaction).getColor();
|
return this.getRelationTo(otherFaction).getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatColor getRelationColor(FPlayer fplayer)
|
public ChatColor getRelationColor(FPlayer fplayer)
|
||||||
{
|
{
|
||||||
return this.getRelation(fplayer).getColor();
|
return this.getRelationTo(fplayer).getColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------//
|
//----------------------------------------------//
|
||||||
|
@ -22,6 +22,7 @@ import com.massivecraft.factions.listeners.FactionsBlockListener;
|
|||||||
import com.massivecraft.factions.listeners.FactionsChatEarlyListener;
|
import com.massivecraft.factions.listeners.FactionsChatEarlyListener;
|
||||||
import com.massivecraft.factions.listeners.FactionsEntityListener;
|
import com.massivecraft.factions.listeners.FactionsEntityListener;
|
||||||
import com.massivecraft.factions.listeners.FactionsPlayerListener;
|
import com.massivecraft.factions.listeners.FactionsPlayerListener;
|
||||||
|
import com.massivecraft.factions.listeners.FactionsServerListener;
|
||||||
import com.massivecraft.factions.struct.ChatMode;
|
import com.massivecraft.factions.struct.ChatMode;
|
||||||
import com.massivecraft.factions.util.MapFLocToStringSetTypeAdapter;
|
import com.massivecraft.factions.util.MapFLocToStringSetTypeAdapter;
|
||||||
import com.massivecraft.factions.util.MyLocationTypeAdapter;
|
import com.massivecraft.factions.util.MyLocationTypeAdapter;
|
||||||
@ -43,6 +44,7 @@ public class P extends MPlugin
|
|||||||
public final FactionsChatEarlyListener chatEarlyListener;
|
public final FactionsChatEarlyListener chatEarlyListener;
|
||||||
public final FactionsEntityListener entityListener;
|
public final FactionsEntityListener entityListener;
|
||||||
public final FactionsBlockListener blockListener;
|
public final FactionsBlockListener blockListener;
|
||||||
|
public final FactionsServerListener serverListener;
|
||||||
|
|
||||||
// Persistance related
|
// Persistance related
|
||||||
private boolean locked = false;
|
private boolean locked = false;
|
||||||
@ -59,8 +61,11 @@ public class P extends MPlugin
|
|||||||
this.chatEarlyListener = new FactionsChatEarlyListener(this);
|
this.chatEarlyListener = new FactionsChatEarlyListener(this);
|
||||||
this.entityListener = new FactionsEntityListener(this);
|
this.entityListener = new FactionsEntityListener(this);
|
||||||
this.blockListener = new FactionsBlockListener(this);
|
this.blockListener = new FactionsBlockListener(this);
|
||||||
|
this.serverListener = new FactionsServerListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static PermissionHandler Permissions;
|
public static PermissionHandler Permissions;
|
||||||
private static EssentialsChat essChat;
|
private static EssentialsChat essChat;
|
||||||
|
|
||||||
@ -83,15 +88,15 @@ public class P extends MPlugin
|
|||||||
//setupPermissions();
|
//setupPermissions();
|
||||||
integrateEssentialsChat();
|
integrateEssentialsChat();
|
||||||
setupSpout(this);
|
setupSpout(this);
|
||||||
Econ.setup(this);
|
Econ.doSetup();
|
||||||
Econ.monitorPlugins();
|
Econ.oldMoneyDoTransfer();
|
||||||
|
|
||||||
if(Conf.worldGuardChecking)
|
if(Conf.worldGuardChecking)
|
||||||
{
|
{
|
||||||
Worldguard.init(this);
|
Worldguard.init(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register events
|
// Player Events
|
||||||
this.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Highest);
|
this.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Highest);
|
||||||
this.registerEvent(Event.Type.PLAYER_CHAT, this.chatEarlyListener, Event.Priority.Lowest);
|
this.registerEvent(Event.Type.PLAYER_CHAT, this.chatEarlyListener, Event.Priority.Lowest);
|
||||||
this.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, this.playerListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, this.playerListener, Event.Priority.Normal);
|
||||||
@ -103,6 +108,8 @@ public class P extends MPlugin
|
|||||||
this.registerEvent(Event.Type.PLAYER_BUCKET_EMPTY, this.playerListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.PLAYER_BUCKET_EMPTY, this.playerListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.PLAYER_BUCKET_FILL, this.playerListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.PLAYER_BUCKET_FILL, this.playerListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.PLAYER_KICK, this.playerListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.PLAYER_KICK, this.playerListener, Event.Priority.Normal);
|
||||||
|
|
||||||
|
// Entity Events
|
||||||
this.registerEvent(Event.Type.ENDERMAN_PICKUP, this.entityListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.ENDERMAN_PICKUP, this.entityListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.ENDERMAN_PLACE, this.entityListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.ENDERMAN_PLACE, this.entityListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.ENTITY_DEATH, this.entityListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.ENTITY_DEATH, this.entityListener, Event.Priority.Normal);
|
||||||
@ -112,12 +119,18 @@ public class P extends MPlugin
|
|||||||
this.registerEvent(Event.Type.ENTITY_TARGET, this.entityListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.ENTITY_TARGET, this.entityListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.PAINTING_BREAK, this.entityListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.PAINTING_BREAK, this.entityListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.PAINTING_PLACE, this.entityListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.PAINTING_PLACE, this.entityListener, Event.Priority.Normal);
|
||||||
|
|
||||||
|
// Block Events
|
||||||
this.registerEvent(Event.Type.BLOCK_BREAK, this.blockListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.BLOCK_BREAK, this.blockListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.BLOCK_DAMAGE, this.blockListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.BLOCK_DAMAGE, this.blockListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.BLOCK_PLACE, this.blockListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.BLOCK_PLACE, this.blockListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.BLOCK_PISTON_EXTEND, this.blockListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.BLOCK_PISTON_EXTEND, this.blockListener, Event.Priority.Normal);
|
||||||
this.registerEvent(Event.Type.BLOCK_PISTON_RETRACT, this.blockListener, Event.Priority.Normal);
|
this.registerEvent(Event.Type.BLOCK_PISTON_RETRACT, this.blockListener, Event.Priority.Normal);
|
||||||
|
|
||||||
|
// Server Events
|
||||||
|
this.registerEvent(Event.Type.PLUGIN_ENABLE, this.serverListener, Event.Priority.Monitor);
|
||||||
|
this.registerEvent(Event.Type.PLUGIN_DISABLE, this.serverListener, Event.Priority.Monitor);
|
||||||
|
|
||||||
postEnable();
|
postEnable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ public class CmdBalance extends FCommand
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg("<a>%s balance: %s", faction.getTag(fme), Econ.moneyString(faction.getMoney()));
|
msg("<a>%s balance: %s", faction.getTag(fme), Econ.moneyString(faction.getAccount().balance()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,10 +3,6 @@ package com.massivecraft.factions.cmd;
|
|||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
import com.massivecraft.factions.integration.Econ;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.FPlayers;
|
|
||||||
import com.massivecraft.factions.Faction;
|
|
||||||
import com.massivecraft.factions.P;
|
|
||||||
import com.massivecraft.factions.FPlayer;
|
|
||||||
|
|
||||||
|
|
||||||
public class CmdDeposit extends FCommand
|
public class CmdDeposit extends FCommand
|
||||||
@ -33,11 +29,8 @@ public class CmdDeposit extends FCommand
|
|||||||
public void perform()
|
public void perform()
|
||||||
{
|
{
|
||||||
if ( ! Conf.bankEnabled) return;
|
if ( ! Conf.bankEnabled) return;
|
||||||
|
Econ.transferMoney(fme, fme, myFaction, this.argAsDouble(0, 0));
|
||||||
Faction faction = myFaction;
|
/*
|
||||||
|
|
||||||
double amount = this.argAsDouble(0, 0);
|
|
||||||
|
|
||||||
if( amount > 0.0 )
|
if( amount > 0.0 )
|
||||||
{
|
{
|
||||||
String amountString = Econ.moneyString(amount);
|
String amountString = Econ.moneyString(amount);
|
||||||
@ -61,7 +54,7 @@ public class CmdDeposit extends FCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.massivecraft.factions.cmd;
|
package com.massivecraft.factions.cmd;
|
||||||
|
|
||||||
import com.massivecraft.factions.Conf;
|
|
||||||
import com.massivecraft.factions.integration.Econ;
|
import com.massivecraft.factions.integration.Econ;
|
||||||
import com.massivecraft.factions.FPlayers;
|
import com.massivecraft.factions.FPlayers;
|
||||||
import com.massivecraft.factions.Faction;
|
import com.massivecraft.factions.Faction;
|
||||||
@ -71,10 +70,13 @@ public class CmdDisband extends FCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Conf.bankEnabled)
|
if (Econ.shouldBeUsed())
|
||||||
{
|
{
|
||||||
double amount = faction.getMoney();
|
//Give all the faction's money to the disbander
|
||||||
Econ.addMoney(fme.getId(), amount); //Give all the faction's money to the disbander
|
double amount = faction.getAccount().balance();
|
||||||
|
fme.getAccount().add(amount);
|
||||||
|
faction.getAccount().remove();
|
||||||
|
|
||||||
if (amount > 0.0)
|
if (amount > 0.0)
|
||||||
{
|
{
|
||||||
String amountString = Econ.moneyString(amount);
|
String amountString = Econ.moneyString(amount);
|
||||||
|
@ -2,7 +2,6 @@ package com.massivecraft.factions.cmd;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import com.massivecraft.factions.Conf;
|
|
||||||
import com.massivecraft.factions.P;
|
import com.massivecraft.factions.P;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
import com.massivecraft.factions.integration.Econ;
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
@ -84,7 +83,7 @@ public class CmdHelp extends FCommand
|
|||||||
pageLines.add( p.cmdBase.cmdSethome.getUseageTemplate() );
|
pageLines.add( p.cmdBase.cmdSethome.getUseageTemplate() );
|
||||||
helpPages.add(pageLines);
|
helpPages.add(pageLines);
|
||||||
|
|
||||||
if (Econ.enabled() && Conf.bankEnabled)
|
if (Econ.shouldBeUsed())
|
||||||
{
|
{
|
||||||
pageLines = new ArrayList<String>();
|
pageLines = new ArrayList<String>();
|
||||||
pageLines.add( "" );
|
pageLines.add( "" );
|
||||||
|
@ -101,7 +101,7 @@ public class CmdHome extends FCommand
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
FPlayer fp = FPlayers.i.get(p);
|
FPlayer fp = FPlayers.i.get(p);
|
||||||
if (fme.getRelation(fp) != Relation.ENEMY)
|
if (fme.getRelationTo(fp) != Relation.ENEMY)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
Location l = p.getLocation();
|
Location l = p.getLocation();
|
||||||
|
@ -49,16 +49,16 @@ public class CmdPay extends FCommand
|
|||||||
{
|
{
|
||||||
String amountString = Econ.moneyString(amount);
|
String amountString = Econ.moneyString(amount);
|
||||||
|
|
||||||
if( amount > us.getMoney() )
|
if( amount > us.getAccount().balance() )
|
||||||
{
|
{
|
||||||
amount = us.getMoney();
|
amount = us.getAccount().balance();
|
||||||
}
|
}
|
||||||
|
|
||||||
us.removeMoney(amount);
|
us.getAccount().subtract(amount);
|
||||||
them.addMoney(amount);
|
them.getAccount().add(amount);
|
||||||
|
|
||||||
msg("<i>You have paid "+amountString+" from "+us.getTag()+"'s bank to "+them.getTag()+"'s bank.");
|
msg("<i>You have paid "+amountString+" from "+us.getTag()+"'s bank to "+them.getTag()+"'s bank.");
|
||||||
msg("<i>"+us.getTag()+" now has "+Econ.moneyString(us.getMoney()));
|
msg("<i>"+us.getTag()+" now has "+Econ.moneyString(us.getAccount().balance()));
|
||||||
P.p.log(fme.getName() + " paid "+amountString+" from "+us.getTag()+"'s bank to "+them.getTag()+"'s bank.");
|
P.p.log(fme.getName() + " paid "+amountString+" from "+us.getTag()+"'s bank to "+them.getTag()+"'s bank.");
|
||||||
|
|
||||||
for (FPlayer fplayer : FPlayers.i.getOnline())
|
for (FPlayer fplayer : FPlayers.i.getOnline())
|
||||||
|
@ -69,7 +69,7 @@ public class CmdShow extends FCommand
|
|||||||
}
|
}
|
||||||
|
|
||||||
// show the land value
|
// show the land value
|
||||||
if (Econ.enabled())
|
if (Econ.shouldBeUsed())
|
||||||
{
|
{
|
||||||
double value = Econ.calculateTotalLandValue(faction.getLandRounded());
|
double value = Econ.calculateTotalLandValue(faction.getLandRounded());
|
||||||
double refund = value * Conf.econClaimRefundMultiplier;
|
double refund = value * Conf.econClaimRefundMultiplier;
|
||||||
@ -82,7 +82,7 @@ public class CmdShow extends FCommand
|
|||||||
|
|
||||||
//Show bank contents
|
//Show bank contents
|
||||||
if(Conf.bankEnabled) {
|
if(Conf.bankEnabled) {
|
||||||
msg("<a>Bank contains: <i>"+Econ.moneyString(faction.getMoney()));
|
msg("<a>Bank contains: <i>"+Econ.moneyString(faction.getAccount().balance()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,11 +98,11 @@ public class CmdShow extends FCommand
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
listpart = otherFaction.getTag(fme)+p.txt.parse("<i>")+", ";
|
listpart = otherFaction.getTag(fme)+p.txt.parse("<i>")+", ";
|
||||||
if (otherFaction.getRelation(faction).isAlly())
|
if (otherFaction.getRelationTo(faction).isAlly())
|
||||||
{
|
{
|
||||||
allyList += listpart;
|
allyList += listpart;
|
||||||
}
|
}
|
||||||
else if (otherFaction.getRelation(faction).isEnemy())
|
else if (otherFaction.getRelationTo(faction).isEnemy())
|
||||||
{
|
{
|
||||||
enemyList += listpart;
|
enemyList += listpart;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ public class CmdUnclaimall extends FCommand
|
|||||||
public void perform()
|
public void perform()
|
||||||
{
|
{
|
||||||
String moneyBack = "<i>";
|
String moneyBack = "<i>";
|
||||||
if (Econ.enabled())
|
if (Econ.shouldBeUsed())
|
||||||
{
|
{
|
||||||
double refund = Econ.calculateTotalLandRefund(myFaction.getLandRounded());
|
double refund = Econ.calculateTotalLandRefund(myFaction.getLandRounded());
|
||||||
// a real refund
|
// a real refund
|
||||||
|
@ -2,12 +2,7 @@ package com.massivecraft.factions.cmd;
|
|||||||
|
|
||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
import com.massivecraft.factions.integration.Econ;
|
||||||
import com.massivecraft.factions.FPlayers;
|
|
||||||
import com.massivecraft.factions.Faction;
|
|
||||||
import com.massivecraft.factions.P;
|
|
||||||
import com.massivecraft.factions.FPlayer;
|
|
||||||
import com.massivecraft.factions.struct.Permission;
|
import com.massivecraft.factions.struct.Permission;
|
||||||
import com.massivecraft.factions.struct.Role;
|
|
||||||
|
|
||||||
|
|
||||||
public class CmdWithdraw extends FCommand
|
public class CmdWithdraw extends FCommand
|
||||||
@ -34,7 +29,9 @@ public class CmdWithdraw extends FCommand
|
|||||||
{
|
{
|
||||||
if ( ! Conf.bankEnabled) return;
|
if ( ! Conf.bankEnabled) return;
|
||||||
|
|
||||||
if ( ! Conf.bankMembersCanWithdraw && ! assertMinRole(Role.MODERATOR))
|
Econ.transferMoney(fme, myFaction, fme, this.argAsDouble(0, 0));
|
||||||
|
|
||||||
|
/*if ( ! Conf.bankMembersCanWithdraw && ! assertMinRole(Role.MODERATOR))
|
||||||
{
|
{
|
||||||
msg("<b>Only faction moderators or admins are able to withdraw from the bank.");
|
msg("<b>Only faction moderators or admins are able to withdraw from the bank.");
|
||||||
return;
|
return;
|
||||||
@ -69,7 +66,7 @@ public class CmdWithdraw extends FCommand
|
|||||||
fplayer.msg("%s<i> has withdrawn %s", fme.getNameAndRelevant(fplayer), amountString);
|
fplayer.msg("%s<i> has withdrawn %s", fme.getNameAndRelevant(fplayer), amountString);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -275,14 +275,25 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
// if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost
|
// if economy is enabled and they're not on the bypass list, make 'em pay; returns true unless person can't afford the cost
|
||||||
public boolean payForCommand(double cost)
|
public boolean payForCommand(double cost)
|
||||||
{
|
{
|
||||||
if ( ! Econ.enabled() || this.fme == null || cost == 0.0 || fme.isAdminBypassing())
|
if ( ! Econ.shouldBeUsed() || this.fme == null || cost == 0.0 || fme.isAdminBypassing())
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
String desc = this.getHelpShort().toLowerCase();
|
String desc = this.getHelpShort().toLowerCase();
|
||||||
|
|
||||||
Faction faction = fme.getFaction();
|
if(Conf.bankFactionPaysLandCosts && fme.hasFaction())
|
||||||
|
{
|
||||||
|
if ( ! Econ.modifyMoney(myFaction, -cost, "to "+desc, "for "+desc)) return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ( ! Econ.modifyMoney(fme, -cost, "to "+desc, "for "+desc)) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
/*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// pay up
|
// pay up
|
||||||
if (cost > 0.0)
|
if (cost > 0.0)
|
||||||
@ -290,7 +301,7 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
String costString = Econ.moneyString(cost);
|
String costString = Econ.moneyString(cost);
|
||||||
if(Conf.bankFactionPaysCosts && fme.hasFaction() )
|
if(Conf.bankFactionPaysCosts && fme.hasFaction() )
|
||||||
{
|
{
|
||||||
if(!faction.removeMoney(cost))
|
if( ! faction.getAccount().subtract(cost))
|
||||||
{
|
{
|
||||||
sendMessage("It costs "+costString+" to "+desc+", which your faction can't currently afford.");
|
sendMessage("It costs "+costString+" to "+desc+", which your faction can't currently afford.");
|
||||||
return false;
|
return false;
|
||||||
@ -303,7 +314,7 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!Econ.deductMoney(fme.getName(), cost))
|
if ( ! Econ.deductMoney(fme.getName(), cost))
|
||||||
{
|
{
|
||||||
sendMessage("It costs "+costString+" to "+desc+", which you can't currently afford.");
|
sendMessage("It costs "+costString+" to "+desc+", which you can't currently afford.");
|
||||||
return false;
|
return false;
|
||||||
@ -318,7 +329,7 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
|
|
||||||
if(Conf.bankFactionPaysCosts && fme.hasFaction() )
|
if(Conf.bankFactionPaysCosts && fme.hasFaction() )
|
||||||
{
|
{
|
||||||
faction.addMoney(-cost);
|
faction.getAccount().add(-cost);
|
||||||
sendMessage(faction.getTag()+" has been paid "+costString+" to "+desc+".");
|
sendMessage(faction.getTag()+" has been paid "+costString+" to "+desc+".");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -329,6 +340,6 @@ public abstract class FCommand extends MCommand<P>
|
|||||||
|
|
||||||
sendMessage("You have been paid "+costString+" to "+desc+".");
|
sendMessage("You have been paid "+costString+" to "+desc+".");
|
||||||
}
|
}
|
||||||
return true;
|
return true;*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ public abstract class FRelationCommand extends FCommand
|
|||||||
if ( ! payForCommand(targetRelation.getRelationCost())) return;
|
if ( ! payForCommand(targetRelation.getRelationCost())) return;
|
||||||
|
|
||||||
myFaction.setRelationWish(them, targetRelation);
|
myFaction.setRelationWish(them, targetRelation);
|
||||||
Relation currentRelation = myFaction.getRelation(them, true);
|
Relation currentRelation = myFaction.getRelationTo(them, true);
|
||||||
ChatColor currentRelationColor = currentRelation.getColor();
|
ChatColor currentRelationColor = currentRelation.getColor();
|
||||||
if (targetRelation.value == currentRelation.value)
|
if (targetRelation.value == currentRelation.value)
|
||||||
{
|
{
|
||||||
|
10
src/com/massivecraft/factions/iface/EconomyParticipator.java
Normal file
10
src/com/massivecraft/factions/iface/EconomyParticipator.java
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package com.massivecraft.factions.iface;
|
||||||
|
|
||||||
|
import com.nijikokun.register.payment.Method.MethodAccount;
|
||||||
|
|
||||||
|
public interface EconomyParticipator extends RelationParticipator
|
||||||
|
{
|
||||||
|
public MethodAccount getAccount();
|
||||||
|
|
||||||
|
public void msg(String str, Object... args);
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.massivecraft.factions.iface;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.struct.Relation;
|
||||||
|
|
||||||
|
public interface RelationParticipator
|
||||||
|
{
|
||||||
|
public String describeTo(RelationParticipator that);
|
||||||
|
public String describeTo(RelationParticipator that, boolean ucfirst);
|
||||||
|
|
||||||
|
public Relation getRelationTo(RelationParticipator that);
|
||||||
|
public Relation getRelationTo(RelationParticipator that, boolean ignorePeaceful);
|
||||||
|
|
||||||
|
public ChatColor getRelationColor(RelationParticipator to);
|
||||||
|
}
|
@ -1,172 +1,214 @@
|
|||||||
package com.massivecraft.factions.integration;
|
package com.massivecraft.factions.integration;
|
||||||
|
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.massivecraft.factions.listeners.FactionsServerListener;
|
import com.nijikokun.register.Register;
|
||||||
|
import com.nijikokun.register.payment.Method;
|
||||||
import com.earth2me.essentials.api.Economy;
|
|
||||||
import com.nijikokun.register.payment.Methods;
|
|
||||||
import com.nijikokun.register.payment.Method.MethodAccount;
|
import com.nijikokun.register.payment.Method.MethodAccount;
|
||||||
import com.iConomy.*;
|
import com.nijikokun.register.payment.Methods;
|
||||||
import com.iConomy.system.*;
|
|
||||||
import com.massivecraft.factions.Conf;
|
import com.massivecraft.factions.Conf;
|
||||||
|
import com.massivecraft.factions.FPlayer;
|
||||||
|
import com.massivecraft.factions.Faction;
|
||||||
|
import com.massivecraft.factions.Factions;
|
||||||
import com.massivecraft.factions.P;
|
import com.massivecraft.factions.P;
|
||||||
|
import com.massivecraft.factions.iface.EconomyParticipator;
|
||||||
|
import com.massivecraft.factions.struct.Role;
|
||||||
|
import com.massivecraft.factions.util.RelationUtil;
|
||||||
|
|
||||||
public class Econ
|
public class Econ
|
||||||
{
|
{
|
||||||
private static boolean registerUse = false;
|
private static Register register = null;
|
||||||
private static boolean iConomyUse = false;
|
|
||||||
private static boolean essEcoUse = false;
|
public static Method getMethod()
|
||||||
|
|
||||||
// TODO: WHY put this here instead of at the same place as the other listeners?
|
|
||||||
public static void monitorPlugins()
|
|
||||||
{
|
{
|
||||||
P.p.getServer().getPluginManager().registerEvent(Event.Type.PLUGIN_ENABLE, new FactionsServerListener(P.p), Event.Priority.Monitor, P.p);
|
if ( ! isSetup()) return null;
|
||||||
P.p.getServer().getPluginManager().registerEvent(Event.Type.PLUGIN_DISABLE, new FactionsServerListener(P.p), Event.Priority.Monitor, P.p);
|
return Methods.getMethod();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setup(P factions)
|
public static boolean shouldBeUsed()
|
||||||
{
|
{
|
||||||
if (enabled())
|
return Conf.econEnabled && getMethod() != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isSetup()
|
||||||
|
{
|
||||||
|
return register != null && register.isEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void doSetup()
|
||||||
|
{
|
||||||
|
if (isSetup()) return;
|
||||||
|
|
||||||
|
Plugin plug = Bukkit.getServer().getPluginManager().getPlugin("Register");
|
||||||
|
if (plug != null && plug.getClass().getName().equals("com.nijikokun.register.Register") && plug.isEnabled())
|
||||||
{
|
{
|
||||||
return;
|
P.p.log("Integration with Register (economy): successful");
|
||||||
}
|
if ( ! Conf.econEnabled)
|
||||||
|
|
||||||
if (!registerHooked())
|
|
||||||
{
|
|
||||||
Plugin plug = factions.getServer().getPluginManager().getPlugin("Register");
|
|
||||||
if (plug != null && plug.getClass().getName().equals("com.nijikokun.register.Register") && plug.isEnabled())
|
|
||||||
{
|
{
|
||||||
registerSet(true);
|
P.p.log("NOTE: Economy is disabled. Enable in conf \"econRegisterEnabled\": true");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!iConomyHooked())
|
|
||||||
{
|
|
||||||
Plugin plug = factions.getServer().getPluginManager().getPlugin("iConomy");
|
|
||||||
if (plug != null && plug.getClass().getName().equals("com.iConomy.iConomy") && plug.isEnabled())
|
|
||||||
{
|
|
||||||
iConomySet(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!essentialsEcoHooked())
|
|
||||||
{
|
|
||||||
Plugin plug = factions.getServer().getPluginManager().getPlugin("Essentials");
|
|
||||||
if (plug != null && plug.isEnabled())
|
|
||||||
{
|
|
||||||
essentialsEcoSet(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void registerSet(boolean enable)
|
|
||||||
{
|
|
||||||
registerUse = enable;
|
|
||||||
if (enable) {
|
|
||||||
P.p.log("Register hook available, "+(Conf.econRegisterEnabled ? "and interface is enabled" : "but disabled (\"econRegisterEnabled\": false)")+".");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
P.p.log("Un-hooked from Register.");
|
|
||||||
}
|
|
||||||
P.p.cmdBase.cmdHelp.updateHelp();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void iConomySet(boolean enable)
|
|
||||||
{
|
|
||||||
iConomyUse = enable;
|
|
||||||
if (enable && !registerUse) {
|
|
||||||
P.p.log("iConomy hook available, "+(Conf.econIConomyEnabled ? "and interface is enabled" : "but disabled (\"econIConomyEnabled\": false)")+".");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
P.p.log("Un-hooked from iConomy.");
|
|
||||||
}
|
|
||||||
P.p.cmdBase.cmdHelp.updateHelp();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void essentialsEcoSet(boolean enable)
|
|
||||||
{
|
|
||||||
essEcoUse = enable;
|
|
||||||
if (enable && !registerUse)
|
|
||||||
{
|
|
||||||
P.p.log("EssentialsEco hook available, "+(Conf.econEssentialsEcoEnabled ? "and interface is enabled" : "but disabled (\"econEssentialsEcoEnabled\": false)")+".");
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
P.p.log("Un-hooked from EssentialsEco.");
|
P.p.log("Integration with Register (economy): failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
P.p.cmdBase.cmdHelp.updateHelp();
|
P.p.cmdBase.cmdHelp.updateHelp();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean registerHooked()
|
public static MethodAccount getUniverseAccount()
|
||||||
{
|
{
|
||||||
return registerUse;
|
if (Conf.econUniverseAccount == null) return null;
|
||||||
|
if (Conf.econUniverseAccount.length() == 0) return null;
|
||||||
|
return getMethod().getAccount(Conf.econUniverseAccount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean iConomyHooked()
|
public static void modifyUniverseMoney(double delta)
|
||||||
{
|
{
|
||||||
return iConomyUse;
|
MethodAccount acc = getUniverseAccount();
|
||||||
|
if (acc == null) return;
|
||||||
|
acc.add(delta);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean essentialsEcoHooked()
|
public static boolean canInvokerTransferFrom(EconomyParticipator invoker, EconomyParticipator from)
|
||||||
{
|
{
|
||||||
return essEcoUse;
|
Faction fInvoker = RelationUtil.getFaction(invoker);
|
||||||
|
Faction fFrom = RelationUtil.getFaction(from);
|
||||||
|
|
||||||
|
// This is a system invoker. Accept it.
|
||||||
|
if (fInvoker == null) return true;
|
||||||
|
|
||||||
|
// Bypassing players can do any kind of transaction
|
||||||
|
if (invoker instanceof FPlayer && ((FPlayer)invoker).isAdminBypassing()) return true;
|
||||||
|
|
||||||
|
// You can deposit to anywhere you feel like. It's your loss if you can't withdraw it again.
|
||||||
|
if (invoker == from) return true;
|
||||||
|
|
||||||
|
// A faction can always transfer away the money of it's members and its own money...
|
||||||
|
// This will however probably never happen as a faction does not have free will.
|
||||||
|
// Ohh by the way... Yes it could. For daily rent to the faction.
|
||||||
|
if (invoker == fInvoker && fInvoker == fFrom) return true;
|
||||||
|
|
||||||
|
// If you are part of the same faction as from and members can withdraw or you are at least moderator... then it is ok.
|
||||||
|
if (fInvoker == fFrom && (Conf.bankMembersCanWithdraw || ((FPlayer)invoker).getRole().value < Role.MODERATOR.value)) return true;
|
||||||
|
|
||||||
|
// Otherwise you may not! ;,,;
|
||||||
|
invoker.msg("<h>%s<b> don't have the right to transfer money from <h>%s<b>.", invoker.describeTo(invoker, true), from.describeTo(invoker));
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean registerAvailable()
|
public static boolean transferMoney(EconomyParticipator invoker, EconomyParticipator from, EconomyParticipator to, double amount)
|
||||||
{
|
{
|
||||||
return Conf.econRegisterEnabled && registerUse && Methods.hasMethod();
|
// The amount must be positive.
|
||||||
}
|
// If the amount is negative we must flip and multiply amount with -1.
|
||||||
|
if (amount < 0)
|
||||||
// If economy is enabled in conf.json, and we're successfully hooked into an economy plugin
|
|
||||||
public static boolean enabled()
|
|
||||||
{
|
|
||||||
return (Conf.econRegisterEnabled && registerUse && Methods.hasMethod())
|
|
||||||
|| (Conf.econIConomyEnabled && iConomyUse)
|
|
||||||
|| (Conf.econEssentialsEcoEnabled && essEcoUse);
|
|
||||||
}
|
|
||||||
|
|
||||||
// mainly for internal use, for a little less code repetition
|
|
||||||
public static Holdings getIconomyHoldings(String playerName)
|
|
||||||
{
|
|
||||||
if ( ! enabled())
|
|
||||||
{
|
{
|
||||||
return null;
|
amount *= -1;
|
||||||
|
EconomyParticipator temp = from;
|
||||||
|
from = to;
|
||||||
|
to = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
Account account = iConomy.getAccount(playerName);
|
// Check the rights
|
||||||
if (account == null)
|
if ( ! canInvokerTransferFrom(invoker, from)) return false;
|
||||||
|
|
||||||
|
//Faction fFrom = RelationUtil.getFaction(from);
|
||||||
|
//Faction fTo = RelationUtil.getFaction(to);
|
||||||
|
//Faction fInvoker = RelationUtil.getFaction(invoker);
|
||||||
|
|
||||||
|
// Is there enough money for the transaction to happen?
|
||||||
|
if ( ! from.getAccount().hasEnough(amount))
|
||||||
{
|
{
|
||||||
return null;
|
// There was not enough money to pay
|
||||||
|
if (invoker != null)
|
||||||
|
{
|
||||||
|
invoker.msg("<h>%s<b> can't afford to transfer <h>%s<b> to %s.", from.describeTo(invoker, true), moneyString(amount), to.describeTo(invoker));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
Holdings holdings = account.getHoldings();
|
|
||||||
return holdings;
|
// Transfer money
|
||||||
|
from.getAccount().subtract(amount);
|
||||||
|
to.getAccount().add(amount);
|
||||||
|
|
||||||
|
// Inform
|
||||||
|
if (invoker == null)
|
||||||
|
{
|
||||||
|
from.msg("<h>%s<i> was transfered from <h>%s<i> to <h>%s<i>.", moneyString(amount), from.describeTo(from), to.describeTo(from));
|
||||||
|
to.msg ("<h>%s<i> was transfered from <h>%s<i> to <h>%s<i>.", moneyString(amount), from.describeTo(to), to.describeTo(to));
|
||||||
|
}
|
||||||
|
else if (invoker == from || invoker == to)
|
||||||
|
{
|
||||||
|
from.msg("<h>%s<i> transfered <h>%s<i> to <h>%s<i>.", from.describeTo(from), moneyString(amount), to.describeTo(from));
|
||||||
|
to.msg ("<h>%s<i> transfered <h>%s<i> to <h>%s<i>.", from.describeTo(to), moneyString(amount), to.describeTo(to));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
from.msg("<h>%s<b> was transfered from <h>%s<b> to <h>%s<b> by <h>%s<g>.", moneyString(amount), from.describeTo(from), to.describeTo(from), invoker.describeTo(from));
|
||||||
|
to.msg ("<h>%s<g> was transfered from <h>%s<g> to <h>%s<g> by <h>%s<g>.", moneyString(amount), from.describeTo(to), to.describeTo(to), invoker.describeTo(to));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
public static MethodAccount getRegisterAccount(String playerName)
|
|
||||||
|
public static boolean modifyMoney(EconomyParticipator ep, double delta, String toDoThis, String forDoingThis)
|
||||||
{
|
{
|
||||||
if (!enabled())
|
MethodAccount acc = ep.getAccount();
|
||||||
|
String You = ep.describeTo(ep, true);
|
||||||
|
|
||||||
|
if (delta >= 0)
|
||||||
{
|
{
|
||||||
return null;
|
// The player should gain money
|
||||||
|
// There is no risk of failure
|
||||||
|
acc.add(delta);
|
||||||
|
modifyUniverseMoney(-delta);
|
||||||
|
ep.msg("<h>%<g> gained %s<i> %s.", You, moneyString(delta), forDoingThis);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
if (!Methods.getMethod().hasAccount(playerName))
|
else
|
||||||
{
|
{
|
||||||
return null;
|
// The player should loose money
|
||||||
|
// The player might not have enough.
|
||||||
|
|
||||||
|
if (acc.hasEnough(-delta))
|
||||||
|
{
|
||||||
|
// There is enough money to pay
|
||||||
|
acc.add(delta);
|
||||||
|
modifyUniverseMoney(-delta);
|
||||||
|
ep.msg("<h>%<b> lost %s<i> %s.", You, moneyString(-delta), forDoingThis);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// There was not enough money to pay
|
||||||
|
ep.msg("<h>%<g> can't afford %s<i> %s.", You, moneyString(-delta), toDoThis);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MethodAccount account = Methods.getMethod().getAccount(playerName);
|
|
||||||
return account;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// format money string based on server's set currency type, like "24 gold" or "$24.50"
|
// format money string based on server's set currency type, like "24 gold" or "$24.50"
|
||||||
public static String moneyString(double amount)
|
public static String moneyString(double amount)
|
||||||
{
|
{
|
||||||
return registerAvailable() ? Methods.getMethod().format(amount)
|
return getMethod().format(amount);
|
||||||
: (iConomyUse ? iConomy.format(amount) : Economy.format(amount));
|
}
|
||||||
|
|
||||||
|
public static void oldMoneyDoTransfer()
|
||||||
|
{
|
||||||
|
if ( ! shouldBeUsed()) return;
|
||||||
|
|
||||||
|
for (Faction faction : Factions.i.get())
|
||||||
|
{
|
||||||
|
faction.getAccount().add(faction.money);
|
||||||
|
faction.money = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// whether a player can afford specified amount
|
// whether a player can afford specified amount
|
||||||
public static boolean canAfford(String playerName, double amount) {
|
/*public static boolean canAfford(String playerName, double amount) {
|
||||||
// if Economy support is not enabled, they can certainly afford to pay nothing
|
// if Economy support is not enabled, they can certainly afford to pay nothing
|
||||||
if (!enabled())
|
if (!enabled())
|
||||||
{
|
{
|
||||||
@ -204,10 +246,10 @@ public class Econ
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// deduct money from their account; returns true if successful
|
// deduct money from their account; returns true if successful
|
||||||
public static boolean deductMoney(String playerName, double amount)
|
/*public static boolean deductMoney(String playerName, double amount)
|
||||||
{
|
{
|
||||||
if (!enabled())
|
if (!enabled())
|
||||||
{
|
{
|
||||||
@ -251,10 +293,10 @@ public class Econ
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// add money to their account; returns true if successful
|
// add money to their account; returns true if successful
|
||||||
public static boolean addMoney(String playerName, double amount)
|
/*public static boolean addMoney(String playerName, double amount)
|
||||||
{
|
{
|
||||||
if (!enabled())
|
if (!enabled())
|
||||||
{
|
{
|
||||||
@ -294,15 +336,15 @@ public class Econ
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
// calculate the cost for claiming land
|
// calculate the cost for claiming land
|
||||||
public static double calculateClaimCost(int ownedLand, boolean takingFromAnotherFaction)
|
public static double calculateClaimCost(int ownedLand, boolean takingFromAnotherFaction)
|
||||||
{
|
{
|
||||||
if (!enabled())
|
if ( ! shouldBeUsed())
|
||||||
{
|
{
|
||||||
return 0.0;
|
return 0d;
|
||||||
}
|
}
|
||||||
|
|
||||||
// basic claim cost, plus land inflation cost, minus the potential bonus given for claiming from another faction
|
// basic claim cost, plus land inflation cost, minus the potential bonus given for claiming from another faction
|
||||||
|
@ -101,7 +101,7 @@ public class SpoutFeatures
|
|||||||
factionA = playerA.getFaction();
|
factionA = playerA.getFaction();
|
||||||
for (FPlayer playerB : players)
|
for (FPlayer playerB : players)
|
||||||
{
|
{
|
||||||
updateSingle(playerB.getPlayer(), playerA.getPlayer(), factionA.getRelation(playerB), factionA, playerA.getTitle(), playerA.getRole());
|
updateSingle(playerB.getPlayer(), playerA.getPlayer(), factionA.getRelationTo(playerB), factionA, playerA.getTitle(), playerA.getRole());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ public class SpoutFeatures
|
|||||||
for (FPlayer playerB : players)
|
for (FPlayer playerB : players)
|
||||||
{
|
{
|
||||||
Player player2 = playerB.getPlayer();
|
Player player2 = playerB.getPlayer();
|
||||||
Relation rel = factionA.getRelation(playerB);
|
Relation rel = factionA.getRelationTo(playerB);
|
||||||
updateSingle(player2, player, rel, factionA, playerA.getTitle(), playerA.getRole());
|
updateSingle(player2, player, rel, factionA, playerA.getTitle(), playerA.getRole());
|
||||||
updateSingle(player, player2, rel, playerB.getFaction(), playerB.getTitle(), playerB.getRole());
|
updateSingle(player, player2, rel, playerB.getFaction(), playerB.getTitle(), playerB.getRole());
|
||||||
}
|
}
|
||||||
@ -149,7 +149,7 @@ public class SpoutFeatures
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
updateSingle(playerB.getPlayer(), playerA.getPlayer(), factionA.getRelation(factionB), factionA, playerA.getTitle(), playerA.getRole());
|
updateSingle(playerB.getPlayer(), playerA.getPlayer(), factionA.getRelationTo(factionB), factionA, playerA.getTitle(), playerA.getRole());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -168,7 +168,7 @@ public class SpoutFeatures
|
|||||||
{
|
{
|
||||||
Player player1 = playerA.getPlayer();
|
Player player1 = playerA.getPlayer();
|
||||||
Player player2 = playerB.getPlayer();
|
Player player2 = playerB.getPlayer();
|
||||||
Relation rel = factionA.getRelation(factionB);
|
Relation rel = factionA.getRelationTo(factionB);
|
||||||
updateSingle(player2, player1, rel, factionA, playerA.getTitle(), playerA.getRole());
|
updateSingle(player2, player1, rel, factionA, playerA.getTitle(), playerA.getRole());
|
||||||
updateSingle(player1, player2, rel, factionB, playerB.getTitle(), playerB.getRole());
|
updateSingle(player1, player2, rel, factionB, playerB.getTitle(), playerB.getRole());
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ public class FactionsBlockListener extends BlockListener
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Relation rel = pistonFaction.getRelation(otherFaction);
|
Relation rel = pistonFaction.getRelationTo(otherFaction);
|
||||||
boolean online = otherFaction.hasPlayersOnline();
|
boolean online = otherFaction.hasPlayersOnline();
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -222,7 +222,7 @@ public class FactionsBlockListener extends BlockListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
Faction myFaction = me.getFaction();
|
Faction myFaction = me.getFaction();
|
||||||
Relation rel = myFaction.getRelation(otherFaction);
|
Relation rel = myFaction.getRelationTo(otherFaction);
|
||||||
boolean ownershipFail = Conf.ownedAreasEnabled && (Conf.ownedAreaDenyBuild || Conf.ownedAreaPainBuild) && !otherFaction.playerHasOwnershipRights(me, loc);
|
boolean ownershipFail = Conf.ownedAreasEnabled && (Conf.ownedAreaDenyBuild || Conf.ownedAreaPainBuild) && !otherFaction.playerHasOwnershipRights(me, loc);
|
||||||
|
|
||||||
// Cancel and/or cause pain (depending on configuration) if we are not in our own territory
|
// Cancel and/or cause pain (depending on configuration) if we are not in our own territory
|
||||||
|
@ -80,7 +80,7 @@ public class FactionsChatEarlyListener extends PlayerListener
|
|||||||
myFaction.sendMessage(message);
|
myFaction.sendMessage(message);
|
||||||
for (FPlayer fplayer : FPlayers.i.getOnline())
|
for (FPlayer fplayer : FPlayers.i.getOnline())
|
||||||
{
|
{
|
||||||
if(myFaction.getRelation(fplayer) == Relation.ALLY)
|
if(myFaction.getRelationTo(fplayer) == Relation.ALLY)
|
||||||
{
|
{
|
||||||
//Send to all our allies
|
//Send to all our allies
|
||||||
fplayer.sendMessage(message);
|
fplayer.sendMessage(message);
|
||||||
|
@ -317,7 +317,7 @@ public class FactionsEntityListener extends EntityListener
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Relation relation = defendFaction.getRelation(attackFaction);
|
Relation relation = defendFaction.getRelationTo(attackFaction);
|
||||||
|
|
||||||
// You can not hurt neutral factions
|
// You can not hurt neutral factions
|
||||||
if (Conf.disablePVPBetweenNeutralFactions && relation.isNeutral())
|
if (Conf.disablePVPBetweenNeutralFactions && relation.isNeutral())
|
||||||
@ -477,7 +477,7 @@ public class FactionsEntityListener extends EntityListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
Faction myFaction = me.getFaction();
|
Faction myFaction = me.getFaction();
|
||||||
Relation rel = myFaction.getRelation(otherFaction);
|
Relation rel = myFaction.getRelationTo(otherFaction);
|
||||||
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaDenyBuild && !otherFaction.playerHasOwnershipRights(me, loc);
|
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaDenyBuild && !otherFaction.playerHasOwnershipRights(me, loc);
|
||||||
|
|
||||||
// Cancel if we are not in our own territory and building should be denied
|
// Cancel if we are not in our own territory and building should be denied
|
||||||
|
@ -385,7 +385,7 @@ public class FactionsPlayerListener extends PlayerListener
|
|||||||
}
|
}
|
||||||
|
|
||||||
Faction myFaction = me.getFaction();
|
Faction myFaction = me.getFaction();
|
||||||
Relation rel = myFaction.getRelation(otherFaction);
|
Relation rel = myFaction.getRelationTo(otherFaction);
|
||||||
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaDenyUseage && !otherFaction.playerHasOwnershipRights(me, loc);
|
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaDenyUseage && !otherFaction.playerHasOwnershipRights(me, loc);
|
||||||
|
|
||||||
// Cancel if we are not in our own territory
|
// Cancel if we are not in our own territory
|
||||||
@ -446,7 +446,7 @@ public class FactionsPlayerListener extends PlayerListener
|
|||||||
|
|
||||||
|
|
||||||
Faction myFaction = me.getFaction();
|
Faction myFaction = me.getFaction();
|
||||||
Relation rel = myFaction.getRelation(otherFaction);
|
Relation rel = myFaction.getRelationTo(otherFaction);
|
||||||
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaProtectMaterials && !otherFaction.playerHasOwnershipRights(me, loc);
|
boolean ownershipFail = Conf.ownedAreasEnabled && Conf.ownedAreaProtectMaterials && !otherFaction.playerHasOwnershipRights(me, loc);
|
||||||
|
|
||||||
// You may use any block unless it is another faction's territory...
|
// You may use any block unless it is another faction's territory...
|
||||||
|
@ -6,7 +6,6 @@ import org.bukkit.event.server.PluginDisableEvent;
|
|||||||
import org.bukkit.event.server.PluginEnableEvent;
|
import org.bukkit.event.server.PluginEnableEvent;
|
||||||
|
|
||||||
import com.massivecraft.factions.P;
|
import com.massivecraft.factions.P;
|
||||||
import com.massivecraft.factions.integration.Econ;
|
|
||||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||||
|
|
||||||
|
|
||||||
@ -22,19 +21,7 @@ public class FactionsServerListener extends ServerListener
|
|||||||
public void onPluginDisable(PluginDisableEvent event)
|
public void onPluginDisable(PluginDisableEvent event)
|
||||||
{
|
{
|
||||||
String name = event.getPlugin().getDescription().getName();
|
String name = event.getPlugin().getDescription().getName();
|
||||||
if (Econ.registerHooked() && name.equals("Register"))
|
if (name.equals("Spout"))
|
||||||
{
|
|
||||||
Econ.registerSet(false);
|
|
||||||
}
|
|
||||||
else if (Econ.iConomyHooked() && name.equals("iConomy"))
|
|
||||||
{
|
|
||||||
Econ.iConomySet(false);
|
|
||||||
}
|
|
||||||
else if (Econ.essentialsEcoHooked() && name.equals("Essentials"))
|
|
||||||
{
|
|
||||||
Econ.essentialsEcoSet(false);
|
|
||||||
}
|
|
||||||
else if (name.equals("Spout"))
|
|
||||||
{
|
{
|
||||||
SpoutFeatures.setAvailable(false, "");
|
SpoutFeatures.setAvailable(false, "");
|
||||||
}
|
}
|
||||||
@ -45,19 +32,7 @@ public class FactionsServerListener extends ServerListener
|
|||||||
{
|
{
|
||||||
Plugin plug = event.getPlugin();
|
Plugin plug = event.getPlugin();
|
||||||
String name = plug.getDescription().getName();
|
String name = plug.getDescription().getName();
|
||||||
if ( ! Econ.registerHooked() && name.equals("Register") && plug.getClass().getName().equals("com.nijikokun.register.Register"))
|
if (name.equals("Spout"))
|
||||||
{
|
|
||||||
Econ.registerSet(true);
|
|
||||||
}
|
|
||||||
else if ( ! Econ.iConomyHooked() && name.equals("iConomy") && plug.getClass().getName().equals("com.iConomy.iConomy"))
|
|
||||||
{
|
|
||||||
Econ.iConomySet(true);
|
|
||||||
}
|
|
||||||
else if ( ! Econ.essentialsEcoHooked() && name.equals("Essentials"))
|
|
||||||
{
|
|
||||||
Econ.essentialsEcoSet(true);
|
|
||||||
}
|
|
||||||
else if (name.equals("Spout"))
|
|
||||||
{
|
{
|
||||||
SpoutFeatures.setAvailable(true, plug.getDescription().getFullName());
|
SpoutFeatures.setAvailable(true, plug.getDescription().getFullName());
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,8 @@ public enum Relation
|
|||||||
public final int value;
|
public final int value;
|
||||||
public final String nicename;
|
public final String nicename;
|
||||||
|
|
||||||
private Relation(final int value, final String nicename) {
|
private Relation(final int value, final String nicename)
|
||||||
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
this.nicename = nicename;
|
this.nicename = nicename;
|
||||||
}
|
}
|
||||||
@ -29,22 +30,22 @@ public enum Relation
|
|||||||
// TODO: Insane way to use enums!!!?
|
// TODO: Insane way to use enums!!!?
|
||||||
public boolean isMember()
|
public boolean isMember()
|
||||||
{
|
{
|
||||||
return this.value == MEMBER.value;
|
return this == MEMBER;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAlly()
|
public boolean isAlly()
|
||||||
{
|
{
|
||||||
return this.value == ALLY.value;
|
return this == ALLY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNeutral()
|
public boolean isNeutral()
|
||||||
{
|
{
|
||||||
return this.value == NEUTRAL.value;
|
return this == NEUTRAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEnemy()
|
public boolean isEnemy()
|
||||||
{
|
{
|
||||||
return this.value == ENEMY.value;
|
return this == ENEMY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAtLeast(Relation relation)
|
public boolean isAtLeast(Relation relation)
|
||||||
@ -59,15 +60,15 @@ public enum Relation
|
|||||||
|
|
||||||
public ChatColor getColor()
|
public ChatColor getColor()
|
||||||
{
|
{
|
||||||
if (this.value == MEMBER.value)
|
if (this == MEMBER)
|
||||||
{
|
{
|
||||||
return Conf.colorMember;
|
return Conf.colorMember;
|
||||||
}
|
}
|
||||||
else if (this.value == ALLY.value)
|
else if (this == ALLY)
|
||||||
{
|
{
|
||||||
return Conf.colorAlly;
|
return Conf.colorAlly;
|
||||||
}
|
}
|
||||||
else if (this.value == NEUTRAL.value)
|
else if (this == NEUTRAL)
|
||||||
{
|
{
|
||||||
return Conf.colorNeutral;
|
return Conf.colorNeutral;
|
||||||
}
|
}
|
||||||
|
@ -8,8 +8,7 @@ import org.bukkit.entity.CreatureType;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
|
|
||||||
public class MiscUtil
|
public class MiscUtil
|
||||||
{
|
{
|
||||||
|
|
||||||
public static CreatureType creatureTypeFromEntity(Entity entity)
|
public static CreatureType creatureTypeFromEntity(Entity entity)
|
||||||
{
|
{
|
||||||
if ( ! (entity instanceof Creature))
|
if ( ! (entity instanceof Creature))
|
||||||
|
120
src/com/massivecraft/factions/util/RelationUtil.java
Normal file
120
src/com/massivecraft/factions/util/RelationUtil.java
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
package com.massivecraft.factions.util;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
|
import com.massivecraft.factions.FPlayer;
|
||||||
|
import com.massivecraft.factions.Faction;
|
||||||
|
import com.massivecraft.factions.iface.RelationParticipator;
|
||||||
|
import com.massivecraft.factions.struct.Relation;
|
||||||
|
import com.massivecraft.factions.zcore.util.TextUtil;
|
||||||
|
|
||||||
|
public class RelationUtil
|
||||||
|
{
|
||||||
|
public static String describeThatToMe(RelationParticipator that, RelationParticipator me, boolean ucfirst)
|
||||||
|
{
|
||||||
|
String ret = "";
|
||||||
|
|
||||||
|
Faction fthat = getFaction(that);
|
||||||
|
if (fthat == null) return "ERROR"; // ERROR
|
||||||
|
|
||||||
|
Faction fme = getFaction(me);
|
||||||
|
if (fme == null) return "ERROR"; // ERROR
|
||||||
|
|
||||||
|
if (that instanceof Faction)
|
||||||
|
{
|
||||||
|
if (me instanceof FPlayer && fme == fthat)
|
||||||
|
{
|
||||||
|
ret = "your faction";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = "the faction "+fthat.getTag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(that instanceof FPlayer)
|
||||||
|
{
|
||||||
|
FPlayer fplayerthat = (FPlayer)that;
|
||||||
|
if (that == me)
|
||||||
|
{
|
||||||
|
ret = "you";
|
||||||
|
}
|
||||||
|
else if (fthat == fme)
|
||||||
|
{
|
||||||
|
ret = fplayerthat.getNameAndTitle();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret = fplayerthat.getNameAndTag();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ucfirst)
|
||||||
|
{
|
||||||
|
ret = TextUtil.upperCaseFirst(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ""+getRelationColor(me, that)+ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String describeThatToMe(RelationParticipator that, RelationParticipator me)
|
||||||
|
{
|
||||||
|
return describeThatToMe(that, me, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Relation getRelationTo(RelationParticipator me, RelationParticipator that)
|
||||||
|
{
|
||||||
|
return getRelationTo(that, me, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Relation getRelationTo(RelationParticipator me, RelationParticipator that, boolean ignorePeaceful)
|
||||||
|
{
|
||||||
|
Faction fthat = getFaction(that);
|
||||||
|
if (fthat == null) return Relation.NEUTRAL; // ERROR
|
||||||
|
|
||||||
|
Faction fme = getFaction(me);
|
||||||
|
if (fme == null) return Relation.NEUTRAL; // ERROR
|
||||||
|
|
||||||
|
if ( ! fthat.isNormal() || ! fme.isNormal())
|
||||||
|
{
|
||||||
|
return Relation.NEUTRAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fthat.equals(fme))
|
||||||
|
{
|
||||||
|
return Relation.MEMBER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! ignorePeaceful && (fme.isPeaceful() || fthat.isPeaceful()))
|
||||||
|
{
|
||||||
|
return Relation.NEUTRAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fme.getRelationWish(fthat).value >= fthat.getRelationWish(fme).value)
|
||||||
|
{
|
||||||
|
return fthat.getRelationWish(fme);
|
||||||
|
}
|
||||||
|
|
||||||
|
return fme.getRelationWish(fthat);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Faction getFaction(RelationParticipator rp)
|
||||||
|
{
|
||||||
|
if (rp instanceof Faction)
|
||||||
|
{
|
||||||
|
return (Faction)rp;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rp instanceof FPlayer)
|
||||||
|
{
|
||||||
|
return ((FPlayer)rp).getFaction();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ERROR
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ChatColor getRelationColor(RelationParticipator me, RelationParticipator that)
|
||||||
|
{
|
||||||
|
return getRelationTo(that, me).getColor();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user