Factions3/src/com/massivecraft/factions/util/RelationUtil.java

147 lines
3.3 KiB
Java
Raw Normal View History

2011-10-12 17:25:01 +02:00
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;
2011-10-23 22:08:57 +02:00
import com.massivecraft.factions.struct.FactionFlag;
import com.massivecraft.factions.struct.Rel;
2011-10-12 17:25:01 +02:00
import com.massivecraft.factions.zcore.util.TextUtil;
public class RelationUtil
{
public static String describeThatToMe(RelationParticipator that, RelationParticipator me, boolean ucfirst)
{
String ret = "";
2011-10-12 18:48:47 +02:00
2011-10-23 20:50:49 +02:00
if (that == null)
{
return "A server admin";
}
2011-10-12 18:48:47 +02:00
Faction thatFaction = getFaction(that);
if (thatFaction == null) return "ERROR"; // ERROR
Faction myFaction = getFaction(me);
if (myFaction == null) return "ERROR"; // ERROR
2011-10-12 17:25:01 +02:00
if (that instanceof Faction)
{
2011-10-12 18:48:47 +02:00
if (me instanceof FPlayer && myFaction == thatFaction)
2011-10-12 17:25:01 +02:00
{
ret = "your faction";
}
else
{
2011-10-22 16:00:24 +02:00
ret = thatFaction.getTag();
2011-10-12 17:25:01 +02:00
}
}
2011-10-12 18:48:47 +02:00
else if (that instanceof FPlayer)
2011-10-12 17:25:01 +02:00
{
2011-10-12 18:48:47 +02:00
FPlayer fplayerthat = (FPlayer) that;
2011-10-12 17:25:01 +02:00
if (that == me)
{
ret = "you";
}
2011-10-12 18:48:47 +02:00
else if (thatFaction == myFaction)
2011-10-12 17:25:01 +02:00
{
ret = fplayerthat.getNameAndTitle();
}
else
{
ret = fplayerthat.getNameAndTag();
}
}
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
if (ucfirst)
{
ret = TextUtil.upperCaseFirst(ret);
}
2011-10-12 18:48:47 +02:00
return "" + getColorOfThatToMe(that, me) + ret;
2011-10-12 17:25:01 +02:00
}
2011-10-12 18:48:47 +02:00
public static String describeThatToMe(RelationParticipator that, RelationParticipator me)
2011-10-12 17:25:01 +02:00
{
return describeThatToMe(that, me, false);
}
2011-10-12 18:48:47 +02:00
public static Rel getRelationTo(RelationParticipator me, RelationParticipator that)
2011-10-12 17:25:01 +02:00
{
return getRelationTo(that, me, false);
}
2011-10-12 18:48:47 +02:00
public static Rel getRelationTo(RelationParticipator me, RelationParticipator that, boolean ignorePeaceful)
2011-10-12 17:25:01 +02:00
{
Faction fthat = getFaction(that);
if (fthat == null) return Rel.NEUTRAL; // ERROR
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
Faction fme = getFaction(me);
if (fme == null) return Rel.NEUTRAL; // ERROR
2011-10-12 18:48:47 +02:00
if (!fthat.isNormal() || !fme.isNormal())
2011-10-12 17:25:01 +02:00
{
return Rel.NEUTRAL;
2011-10-12 17:25:01 +02:00
}
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
if (fthat.equals(fme))
{
return Rel.MEMBER;
2011-10-12 17:25:01 +02:00
}
2011-10-12 18:48:47 +02:00
2011-10-23 22:08:57 +02:00
if (!ignorePeaceful && (fme.getFlag(FactionFlag.PEACEFUL) || fthat.getFlag(FactionFlag.PEACEFUL)))
2011-10-12 17:25:01 +02:00
{
2011-10-23 22:08:57 +02:00
return Rel.TRUCE;
2011-10-12 17:25:01 +02:00
}
2011-10-12 18:48:47 +02:00
if (fme.getRelationWish(fthat).value >= fthat.getRelationWish(fme).value)
2011-10-12 17:25:01 +02:00
{
return fthat.getRelationWish(fme);
}
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
return fme.getRelationWish(fthat);
}
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
public static Faction getFaction(RelationParticipator rp)
{
if (rp instanceof Faction)
{
2011-10-12 18:48:47 +02:00
return (Faction) rp;
2011-10-12 17:25:01 +02:00
}
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
if (rp instanceof FPlayer)
{
2011-10-12 18:48:47 +02:00
return ((FPlayer) rp).getFaction();
2011-10-12 17:25:01 +02:00
}
2011-10-12 18:48:47 +02:00
2011-10-12 17:25:01 +02:00
// ERROR
return null;
}
2011-10-12 18:48:47 +02:00
public static ChatColor getColorOfThatToMe(RelationParticipator that, RelationParticipator me)
2011-10-12 17:25:01 +02:00
{
2011-10-23 22:08:57 +02:00
//Faction thatFaction = getFaction(that);
// TODO: Add special colors to zone as a feature to replace this one
/*if (thatFaction != null)
{
if (thatFaction.isPeaceful() && thatFaction != getFaction(me))
{
return Conf.colorPeaceful;
}
if (thatFaction.isSafeZone() && thatFaction != getFaction(me))
{
return Conf.colorPeaceful;
}
if (thatFaction.isWarZone() && thatFaction != getFaction(me))
{
return Conf.colorWar;
}
2011-10-23 22:08:57 +02:00
}*/
2011-10-12 17:25:01 +02:00
return getRelationTo(that, me).getColor();
}
}