119 lines
3.8 KiB
Java
119 lines
3.8 KiB
Java
package com.massivecraft.factions.util;
|
|
|
|
import com.massivecraft.factions.Conf;
|
|
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.TL;
|
|
import com.massivecraft.factions.zcore.util.TextUtil;
|
|
import org.bukkit.ChatColor;
|
|
|
|
public class RelationUtil {
|
|
|
|
public static String describeThatToMe(RelationParticipator that, RelationParticipator me, boolean ucfirst) {
|
|
String ret = "";
|
|
|
|
Faction thatFaction = getFaction(that);
|
|
if (thatFaction == null) {
|
|
return "ERROR"; // ERROR
|
|
}
|
|
|
|
Faction myFaction = getFaction(me);
|
|
// if (myFaction == null) return that.describeTo(null); // no relation, but can show basic name or tag
|
|
|
|
if (that instanceof Faction) {
|
|
if (me instanceof FPlayer && myFaction == thatFaction) {
|
|
ret = TL.GENERIC_YOURFACTION.toString();
|
|
} else {
|
|
ret = thatFaction.getTag();
|
|
}
|
|
} else if (that instanceof FPlayer) {
|
|
FPlayer fplayerthat = (FPlayer) that;
|
|
if (that == me) {
|
|
ret = TL.GENERIC_YOU.toString();
|
|
} else if (thatFaction == myFaction) {
|
|
ret = fplayerthat.getNameAndTitle();
|
|
} else {
|
|
ret = fplayerthat.getNameAndTag();
|
|
}
|
|
}
|
|
|
|
if (ucfirst) {
|
|
ret = TextUtil.upperCaseFirst(ret);
|
|
}
|
|
|
|
return "" + getColorOfThatToMe(that, me) + 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 getColorOfThatToMe(RelationParticipator that, RelationParticipator me) {
|
|
Faction thatFaction = getFaction(that);
|
|
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;
|
|
}
|
|
}
|
|
|
|
return getRelationTo(that, me).getColor();
|
|
}
|
|
}
|