Some refactoring and better messages
This commit is contained in:
parent
bb5a676430
commit
0c46809952
@ -171,10 +171,9 @@ public class Board
|
||||
int width = halfWidth * 2 + 1;
|
||||
int height = halfHeight * 2 + 1;
|
||||
|
||||
/*if (Conf.showMapFactionKey)
|
||||
{
|
||||
//Make room for the list of tags
|
||||
height--;
|
||||
}*/
|
||||
|
||||
|
||||
Map<Faction, Character> fList = new HashMap<Faction, Character>();
|
||||
int chrIdx = 0;
|
||||
@ -194,33 +193,17 @@ public class Board
|
||||
|
||||
FLocation flocationHere = topLeft.getRelative(dx, dz);
|
||||
Faction factionHere = getFactionAt(flocationHere);
|
||||
//Rel relation = faction.getRelationTo(factionHere);
|
||||
if (factionHere.isNone())
|
||||
{
|
||||
row += ChatColor.GRAY+"-";
|
||||
}
|
||||
else /*if
|
||||
(
|
||||
factionHere == faction
|
||||
||
|
||||
factionHere == factionLoc
|
||||
||
|
||||
relation.isAtLeast(Rel.ALLY)
|
||||
||
|
||||
(Conf.showNeutralFactionsOnMap && relation.equals(Rel.NEUTRAL))
|
||||
||
|
||||
(Conf.showEnemyFactionsOnMap && relation.equals(Rel.ENEMY))
|
||||
)*/
|
||||
else
|
||||
{
|
||||
if (!fList.containsKey(factionHere.getTag()))
|
||||
if (!fList.containsKey(factionHere))
|
||||
fList.put(factionHere, Conf.mapKeyChrs[chrIdx++]);
|
||||
char tag = fList.get(factionHere);
|
||||
row += factionHere.getColorTo(observer) + "" + tag;
|
||||
char fchar = fList.get(factionHere);
|
||||
row += factionHere.getColorTo(observer) + "" + fchar;
|
||||
}
|
||||
/*else
|
||||
{
|
||||
row += ChatColor.GRAY+"-";
|
||||
}*/
|
||||
}
|
||||
ret.add(row);
|
||||
}
|
||||
@ -233,18 +216,13 @@ public class Board
|
||||
ret.set(2, asciiCompass.get(1)+ret.get(2).substring(3*3));
|
||||
ret.set(3, asciiCompass.get(2)+ret.get(3).substring(3*3));
|
||||
|
||||
// Add the faction key
|
||||
// TODO: relation color for them
|
||||
//if (Conf.showMapFactionKey)
|
||||
//{
|
||||
|
||||
String fRow = "";
|
||||
for(Faction keyfaction : fList.keySet())
|
||||
{
|
||||
fRow += String.format("%s%s: %s ", keyfaction.getColorTo(observer), fList.get(keyfaction), keyfaction.getTag());
|
||||
fRow += ""+keyfaction.getColorTo(observer) + fList.get(keyfaction) + ": " + keyfaction.getTag() + " ";
|
||||
}
|
||||
fRow = fRow.trim();
|
||||
ret.add(fRow);
|
||||
//}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -100,7 +100,8 @@ public class Conf
|
||||
public static double homesTeleportAllowedEnemyDistance = 32.0;
|
||||
public static boolean homesTeleportIgnoreEnemiesIfInOwnTerritory = true;
|
||||
|
||||
public static boolean disablePVPBetweenNeutralFactions = false;
|
||||
|
||||
public static Rel friendlyFireFromRel = Rel.TRUCE;
|
||||
public static boolean disablePVPForFactionlessPlayers = false;
|
||||
public static boolean enablePVPAgainstFactionlessInAttackersLand = false;
|
||||
|
||||
@ -165,7 +166,6 @@ public class Conf
|
||||
public static double econClaimAdditionalMultiplier = 0.5;
|
||||
public static double econClaimRefundMultiplier = 0.7;
|
||||
public static double econCostCreate = 100.0;
|
||||
public static double econCostOwner = 15.0;
|
||||
public static double econCostSethome = 30.0;
|
||||
public static double econCostJoin = 0.0;
|
||||
public static double econCostLeave = 0.0;
|
||||
@ -181,9 +181,9 @@ public class Conf
|
||||
public static double econCostShow = 0.0;
|
||||
public static double econCostOpen = 0.0;
|
||||
public static double econCostAlly = 0.0;
|
||||
public static double econCostEnemy = 0.0;
|
||||
public static double econCostTruce = 0.0;
|
||||
public static double econCostNeutral = 0.0;
|
||||
public static double econCostNoBoom = 0.0;
|
||||
public static double econCostEnemy = 0.0;
|
||||
|
||||
//Faction banks, to pay for land claiming and other costs instead of individuals paying for them
|
||||
public static boolean bankEnabled = true;
|
||||
|
@ -268,27 +268,27 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator
|
||||
// -------------------------------
|
||||
|
||||
@Override
|
||||
public String describeTo(RelationParticipator that, boolean ucfirst)
|
||||
public String describeTo(RelationParticipator observer, boolean ucfirst)
|
||||
{
|
||||
return RelationUtil.describeThatToMe(this, that, ucfirst);
|
||||
return RelationUtil.describeThatToMe(this, observer, ucfirst);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describeTo(RelationParticipator that)
|
||||
public String describeTo(RelationParticipator observer)
|
||||
{
|
||||
return RelationUtil.describeThatToMe(this, that);
|
||||
return RelationUtil.describeThatToMe(this, observer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Rel getRelationTo(RelationParticipator rp)
|
||||
public Rel getRelationTo(RelationParticipator observer)
|
||||
{
|
||||
return RelationUtil.getRelationTo(this, rp);
|
||||
return RelationUtil.getRelationOfThatToMe(this, observer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Rel getRelationTo(RelationParticipator rp, boolean ignorePeaceful)
|
||||
public Rel getRelationTo(RelationParticipator observer, boolean ignorePeaceful)
|
||||
{
|
||||
return RelationUtil.getRelationTo(this, rp, ignorePeaceful);
|
||||
return RelationUtil.getRelationOfThatToMe(this, observer, ignorePeaceful);
|
||||
}
|
||||
|
||||
public Rel getRelationToLocation()
|
||||
@ -297,9 +297,9 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChatColor getColorTo(RelationParticipator rp)
|
||||
public ChatColor getColorTo(RelationParticipator observer)
|
||||
{
|
||||
return RelationUtil.getColorOfThatToMe(this, rp);
|
||||
return RelationUtil.getColorOfThatToMe(this, observer);
|
||||
}
|
||||
|
||||
//----------------------------------------------//
|
||||
|
@ -186,33 +186,33 @@ public class Faction extends Entity implements EconomyParticipator
|
||||
// -------------------------------
|
||||
|
||||
@Override
|
||||
public String describeTo(RelationParticipator that, boolean ucfirst)
|
||||
public String describeTo(RelationParticipator observer, boolean ucfirst)
|
||||
{
|
||||
return RelationUtil.describeThatToMe(this, that, ucfirst);
|
||||
return RelationUtil.describeThatToMe(this, observer, ucfirst);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describeTo(RelationParticipator that)
|
||||
public String describeTo(RelationParticipator observer)
|
||||
{
|
||||
return RelationUtil.describeThatToMe(this, that);
|
||||
return RelationUtil.describeThatToMe(this, observer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Rel getRelationTo(RelationParticipator rp)
|
||||
public Rel getRelationTo(RelationParticipator observer)
|
||||
{
|
||||
return RelationUtil.getRelationTo(this, rp);
|
||||
return RelationUtil.getRelationOfThatToMe(this, observer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Rel getRelationTo(RelationParticipator rp, boolean ignorePeaceful)
|
||||
public Rel getRelationTo(RelationParticipator observer, boolean ignorePeaceful)
|
||||
{
|
||||
return RelationUtil.getRelationTo(this, rp, ignorePeaceful);
|
||||
return RelationUtil.getRelationOfThatToMe(this, observer, ignorePeaceful);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChatColor getColorTo(RelationParticipator rp)
|
||||
public ChatColor getColorTo(RelationParticipator observer)
|
||||
{
|
||||
return RelationUtil.getColorOfThatToMe(this, rp);
|
||||
return RelationUtil.getColorOfThatToMe(this, observer);
|
||||
}
|
||||
|
||||
public Rel getRelationWish(Faction otherFaction)
|
||||
|
@ -52,7 +52,7 @@ public class CmdKick extends FCommand
|
||||
return;
|
||||
}
|
||||
|
||||
if (you.getRole().value >= fme.getRole().value)
|
||||
if (you.getRole().isAtLeast(fme.getRole()))
|
||||
{
|
||||
// TODO add more informative messages.
|
||||
msg("<b>Your rank is too low to kick this player.");
|
||||
|
@ -138,7 +138,7 @@ public abstract class FCommand extends MCommand<P>
|
||||
{
|
||||
if (me == null) return true;
|
||||
|
||||
if (fme.getRole().value < role.value)
|
||||
if (fme.getRole().isLessThan(role))
|
||||
{
|
||||
msg("<b>You <h>must be "+role+"<b> to "+this.getHelpShort()+".");
|
||||
return false;
|
||||
@ -356,7 +356,7 @@ public abstract class FCommand extends MCommand<P>
|
||||
return false;
|
||||
}
|
||||
|
||||
if (i.getRole().value > you.getRole().value || i.getRole().equals(Rel.LEADER) )
|
||||
if (i.getRole().isMoreThan(you.getRole()) || i.getRole().equals(Rel.LEADER) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.Faction;
|
||||
import com.massivecraft.factions.integration.SpoutFeatures;
|
||||
@ -51,26 +49,26 @@ public abstract class FRelationCommand extends FCommand
|
||||
|
||||
myFaction.setRelationWish(them, targetRelation);
|
||||
Rel currentRelation = myFaction.getRelationTo(them, true);
|
||||
ChatColor currentRelationColor = currentRelation.getColor();
|
||||
if (targetRelation.value == currentRelation.value)
|
||||
if (targetRelation == currentRelation)
|
||||
{
|
||||
them.msg("<i>Your faction is now "+currentRelationColor+targetRelation.toString()+"<i> to "+currentRelationColor+myFaction.getTag());
|
||||
myFaction.msg("<i>Your faction is now "+currentRelationColor+targetRelation.toString()+"<i> to "+currentRelationColor+them.getTag());
|
||||
them.msg("%s<i> is now %s.", myFaction.describeTo(them, true), targetRelation.getDescFactionOne());
|
||||
myFaction.msg("%s<i> is now %s.", them.describeTo(myFaction, true), targetRelation.getDescFactionOne());
|
||||
}
|
||||
else
|
||||
{
|
||||
them.msg(currentRelationColor+myFaction.getTag()+"<i> wishes to be your "+targetRelation.getColor()+targetRelation.toString());
|
||||
them.msg("%s<i> wishes to be %s.", myFaction.describeTo(them, true), targetRelation.getColor()+targetRelation.getDescFactionOne());
|
||||
them.msg("<i>Type <c>/"+Conf.baseCommandAliases.get(0)+" "+targetRelation+" "+myFaction.getTag()+"<i> to accept.");
|
||||
myFaction.msg(currentRelationColor+them.getTag()+"<i> were informed that you wish to be "+targetRelation.getColor()+targetRelation);
|
||||
myFaction.msg("%s<i> were informed that you wish to be %s<i>.", them.describeTo(myFaction, true), targetRelation.getColor()+targetRelation.getDescFactionOne());
|
||||
}
|
||||
|
||||
if ( targetRelation != Rel.NEUTRAL && them.getFlag(FFlag.PEACEFUL))
|
||||
// TODO: The ally case should work!!
|
||||
if ( targetRelation != Rel.TRUCE && them.getFlag(FFlag.PEACEFUL))
|
||||
{
|
||||
them.msg("<i>This will have no effect while your faction is peaceful.");
|
||||
myFaction.msg("<i>This will have no effect while their faction is peaceful.");
|
||||
}
|
||||
|
||||
if ( targetRelation != Rel.NEUTRAL && myFaction.getFlag(FFlag.PEACEFUL))
|
||||
if ( targetRelation != Rel.TRUCE && myFaction.getFlag(FFlag.PEACEFUL))
|
||||
{
|
||||
them.msg("<i>This will have no effect while their faction is peaceful.");
|
||||
myFaction.msg("<i>This will have no effect while your faction is peaceful.");
|
||||
|
@ -5,11 +5,11 @@ import com.massivecraft.factions.struct.Rel;
|
||||
|
||||
public interface RelationParticipator
|
||||
{
|
||||
public String describeTo(RelationParticipator that);
|
||||
public String describeTo(RelationParticipator that, boolean ucfirst);
|
||||
public String describeTo(RelationParticipator observer);
|
||||
public String describeTo(RelationParticipator observer, boolean ucfirst);
|
||||
|
||||
public Rel getRelationTo(RelationParticipator that);
|
||||
public Rel getRelationTo(RelationParticipator that, boolean ignorePeaceful);
|
||||
public Rel getRelationTo(RelationParticipator observer);
|
||||
public Rel getRelationTo(RelationParticipator observer, boolean ignorePeaceful);
|
||||
|
||||
public ChatColor getColorTo(RelationParticipator to);
|
||||
public ChatColor getColorTo(RelationParticipator observer);
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ public class PluginCapiListener extends CapiListener
|
||||
for (Player somePlayer : Bukkit.getServer().getOnlinePlayers())
|
||||
{
|
||||
FPlayer someFPlayer = FPlayers.i.get(somePlayer);
|
||||
if (someFPlayer.getRelationTo(fme).value >= Rel.ALLY.value)
|
||||
if (someFPlayer.getRelationTo(fme).isAtLeast(Rel.ALLY))
|
||||
{
|
||||
event.getThem().add(somePlayer);
|
||||
}
|
||||
|
@ -115,10 +115,7 @@ public class FactionsEntityListener extends EntityListener
|
||||
Entity damagee = sub.getEntity();
|
||||
int damage = sub.getDamage();
|
||||
|
||||
if ( ! (damagee instanceof Player))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if ( ! (damagee instanceof Player)) return true;
|
||||
|
||||
FPlayer defender = FPlayers.i.get((Player)damagee);
|
||||
|
||||
@ -206,23 +203,10 @@ public class FactionsEntityListener extends EntityListener
|
||||
|
||||
Rel relation = defendFaction.getRelationTo(attackFaction);
|
||||
|
||||
// You can not hurt neutral factions
|
||||
if (Conf.disablePVPBetweenNeutralFactions && relation == Rel.NEUTRAL)
|
||||
// Check the relation
|
||||
if (relation.isAtLeast(Conf.friendlyFireFromRel))
|
||||
{
|
||||
attacker.msg("<i>You can't hurt neutral factions. Declare them as an enemy.");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Players without faction may be hurt anywhere
|
||||
if (!defender.hasFaction())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// You can never hurt faction members or allies
|
||||
if (relation == Rel.MEMBER || relation == Rel.ALLY)
|
||||
{
|
||||
attacker.msg("<i>You can't hurt %s<i>.", defender.describeTo(attacker));
|
||||
attacker.msg("<i>You can't hurt %s<i>.", relation.getDescPlayerMany());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ public enum FPerm
|
||||
List<String> rels = new ArrayList<String>();
|
||||
for (Rel rel : value)
|
||||
{
|
||||
rels.add("<p>"+rel.nicename);
|
||||
rels.add("<p>"+rel);
|
||||
}
|
||||
if (rels.size() > 0)
|
||||
{
|
||||
|
@ -6,22 +6,35 @@ import com.massivecraft.factions.Conf;
|
||||
|
||||
public enum Rel
|
||||
{
|
||||
LEADER (70, "leader"),
|
||||
OFFICER (60, "officer"),
|
||||
MEMBER (50, "member"),
|
||||
ALLY (40, "ally"),
|
||||
TRUCE (30, "truce"),
|
||||
NEUTRAL (20, "neutral"),
|
||||
ENEMY (10, "enemy"),
|
||||
LEADER (70, "your faction leader", "your faction leader", "", ""),
|
||||
OFFICER (60, "an officer in your faction", "officers in your faction", "", ""),
|
||||
MEMBER (50, "a member in your faction", "members in your faction", "your faction", "your factions"),
|
||||
ALLY (40, "an ally", "allies", "an allied faction", "allied factions"),
|
||||
TRUCE (30, "someone in truce with you", "those in truce with you", "a faction in truce", "factions in truce"),
|
||||
NEUTRAL (20, "someone neutral to you", "those neutral to you", "a neutral faction", "neutral factions"),
|
||||
ENEMY (10, "an enemy", "enemies", "an enemy faction", "enemy factions"),
|
||||
;
|
||||
|
||||
public final int value;
|
||||
public final String nicename;
|
||||
private final int value;
|
||||
private final String descPlayerOne;
|
||||
public String getDescPlayerOne() { return this.descPlayerOne; }
|
||||
|
||||
private Rel(final int value, final String nicename)
|
||||
private final String descPlayerMany;
|
||||
public String getDescPlayerMany() { return this.descPlayerMany; }
|
||||
|
||||
private final String descFactionOne;
|
||||
public String getDescFactionOne() { return this.descFactionOne; }
|
||||
|
||||
private final String descFactionMany;
|
||||
public String getDescFactionMany() { return this.descFactionMany; }
|
||||
|
||||
private Rel(final int value, final String descPlayerOne, final String descPlayerMany, final String descFactionOne, final String descFactionMany)
|
||||
{
|
||||
this.value = value;
|
||||
this.nicename = nicename;
|
||||
this.descPlayerOne = descPlayerOne;
|
||||
this.descPlayerMany = descPlayerMany;
|
||||
this.descFactionOne = descFactionOne;
|
||||
this.descFactionMany = descFactionMany;
|
||||
}
|
||||
|
||||
public static Rel parse(String str)
|
||||
@ -58,12 +71,6 @@ public enum Rel
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return this.nicename;
|
||||
}
|
||||
|
||||
public boolean isAtLeast(Rel rel)
|
||||
{
|
||||
return this.value >= rel.value;
|
||||
@ -79,6 +86,11 @@ public enum Rel
|
||||
return this.value < rel.value;
|
||||
}
|
||||
|
||||
public boolean isMoreThan(Rel rel)
|
||||
{
|
||||
return this.value > rel.value;
|
||||
}
|
||||
|
||||
public ChatColor getColor()
|
||||
{
|
||||
if (this == MEMBER)
|
||||
@ -116,6 +128,8 @@ public enum Rel
|
||||
return Conf.econCostEnemy;
|
||||
else if (this == ALLY)
|
||||
return Conf.econCostAlly;
|
||||
else if (this == TRUCE)
|
||||
return Conf.econCostTruce;
|
||||
else
|
||||
return Conf.econCostNeutral;
|
||||
}
|
||||
|
@ -68,40 +68,46 @@ public class RelationUtil
|
||||
return describeThatToMe(that, me, false);
|
||||
}
|
||||
|
||||
public static Rel getRelationTo(RelationParticipator me, RelationParticipator that)
|
||||
public static Rel getRelationOfThatToMe(RelationParticipator that, RelationParticipator me)
|
||||
{
|
||||
return getRelationTo(that, me, false);
|
||||
return getRelationOfThatToMe(me, that, false);
|
||||
}
|
||||
|
||||
public static Rel getRelationTo(RelationParticipator me, RelationParticipator that, boolean ignorePeaceful)
|
||||
public static Rel getRelationOfThatToMe(RelationParticipator that, RelationParticipator me, boolean ignorePeaceful)
|
||||
{
|
||||
Faction fthat = getFaction(that);
|
||||
Rel ret = null;
|
||||
|
||||
Faction fthat = getFaction(me);
|
||||
if (fthat == null) return Rel.NEUTRAL; // ERROR
|
||||
|
||||
Faction fme = getFaction(me);
|
||||
Faction fme = getFaction(that);
|
||||
if (fme == null) return Rel.NEUTRAL; // ERROR
|
||||
|
||||
if (!fthat.isNormal() || !fme.isNormal())
|
||||
// The faction with the lowest wish "wins"
|
||||
if (fme.getRelationWish(fthat).isLessThan(fthat.getRelationWish(fme)))
|
||||
{
|
||||
return Rel.NEUTRAL;
|
||||
ret = fme.getRelationWish(fthat);
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = fthat.getRelationWish(fme);
|
||||
}
|
||||
|
||||
if (fthat.equals(fme))
|
||||
{
|
||||
return Rel.MEMBER;
|
||||
}
|
||||
|
||||
if (!ignorePeaceful && (fme.getFlag(FFlag.PEACEFUL) || fthat.getFlag(FFlag.PEACEFUL)))
|
||||
ret = Rel.MEMBER;
|
||||
// Do officer and leader check
|
||||
if (that instanceof FPlayer)
|
||||
{
|
||||
return Rel.TRUCE;
|
||||
ret = ((FPlayer)that).getRole();
|
||||
}
|
||||
|
||||
if (fme.getRelationWish(fthat).value >= fthat.getRelationWish(fme).value)
|
||||
}
|
||||
else if (!ignorePeaceful && (fme.getFlag(FFlag.PEACEFUL) || fthat.getFlag(FFlag.PEACEFUL)))
|
||||
{
|
||||
return fthat.getRelationWish(fme);
|
||||
ret = Rel.TRUCE;
|
||||
}
|
||||
|
||||
return fme.getRelationWish(fthat);
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static Faction getFaction(RelationParticipator rp)
|
||||
@ -135,6 +141,6 @@ public class RelationUtil
|
||||
return Conf.colorNoPVP;
|
||||
}
|
||||
}
|
||||
return getRelationTo(that, me).getColor();
|
||||
return getRelationOfThatToMe(that, me).getColor();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user