Factions3/src/com/massivecraft/factions/Rel.java

161 lines
4.5 KiB
Java
Raw Normal View History

package com.massivecraft.factions;
2013-04-22 09:41:48 +02:00
import com.massivecraft.factions.entity.MConf;
import com.massivecraft.factions.entity.MPerm;
2017-03-06 20:23:03 +01:00
import com.massivecraft.massivecore.Colorized;
import com.massivecraft.massivecore.Named;
import com.massivecraft.massivecore.collections.MassiveSet;
2017-03-24 13:05:58 +01:00
import org.bukkit.ChatColor;
import java.util.Collections;
import java.util.Set;
2013-04-22 09:41:48 +02:00
public enum Rel implements Colorized, Named, MPerm.MPermable
{
2013-04-14 21:20:34 +02:00
// -------------------------------------------- //
// ENUM
// -------------------------------------------- //
ENEMY(
"an enemy", "enemies", "an enemy faction", "enemy factions",
"Enemy"
2017-03-06 20:23:03 +01:00
) { @Override public ChatColor getColor() { return MConf.get().colorEnemy; } },
NEUTRAL(
"someone neutral to you", "those neutral to you", "a neutral faction", "neutral factions",
"Neutral"
2017-03-06 20:23:03 +01:00
) { @Override public ChatColor getColor() { return MConf.get().colorNeutral; } },
TRUCE(
"someone in truce with you", "those in truce with you", "a faction in truce", "factions in truce",
"Truce"
2017-03-06 20:23:03 +01:00
) { @Override public ChatColor getColor() { return MConf.get().colorTruce; } },
ALLY(
"an ally", "allies", "an allied faction", "allied factions",
"Ally"
2017-03-06 20:23:03 +01:00
) { @Override public ChatColor getColor() { return MConf.get().colorAlly; } },
FACTION(
"your faction", "your faction", "your faction", "your faction",
"Faction"
) { @Override public ChatColor getColor() { return MConf.get().colorMember; } },
2017-03-06 20:23:03 +01:00
/*RECRUIT(
"a recruit in your faction", "recruits in your faction", "", "",
"Recruit"
2017-03-06 20:23:03 +01:00
) { @Override public String getPrefix() { return MConf.get().prefixRecruit; } },
MEMBER(
"a member in your faction", "members in your faction", "your faction", "your factions",
"Member"
2017-03-06 20:23:03 +01:00
) { @Override public String getPrefix() { return MConf.get().prefixMember; } },
OFFICER(
"an officer in your faction", "officers in your faction", "", "",
"Officer", "Moderator"
2017-03-06 20:23:03 +01:00
) { @Override public String getPrefix() { return MConf.get().prefixOfficer; } },
LEADER(
"your faction leader", "your faction leader", "", "",
"Leader", "Admin", "Owner"
) { @Override public String getPrefix() { return MConf.get().prefixLeader; } },*/
2013-04-14 21:20:34 +02:00
// END OF LIST
;
2013-04-14 21:20:34 +02:00
// -------------------------------------------- //
// FIELDS
// -------------------------------------------- //
public int getValue() { return this.ordinal(); }
2011-10-24 11:07:06 +02:00
private final String descPlayerOne;
public String getDescPlayerOne() { return this.descPlayerOne; }
2011-10-24 11:07:06 +02:00
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 final Set<String> names;
public Set<String> getNames() { return this.names; }
2017-03-06 20:23:03 +01:00
@Override public String getName() { return this.getNames().iterator().next(); }
2013-04-14 21:20:34 +02:00
// -------------------------------------------- //
// CONSTRUCT
// -------------------------------------------- //
2017-03-06 20:23:03 +01:00
Rel(String descPlayerOne, String descPlayerMany, String descFactionOne, String descFactionMany, String... names)
{
2011-10-24 11:07:06 +02:00
this.descPlayerOne = descPlayerOne;
this.descPlayerMany = descPlayerMany;
this.descFactionOne = descFactionOne;
this.descFactionMany = descFactionMany;
2017-03-24 14:03:29 +01:00
this.names = Collections.unmodifiableSet(new MassiveSet<>(names));
}
2017-03-06 20:23:03 +01:00
// -------------------------------------------- //
// OVERRIDE
// -------------------------------------------- //
@Override
public ChatColor getColor()
{
return MConf.get().colorMember;
}
@Override
public String getId()
{
return name();
}
2018-12-22 01:55:46 +01:00
@Override
public String getDisplayName(Object senderObject)
{
return this.getColor() + this.getName();
}
2017-03-06 20:23:03 +01:00
2013-04-14 21:20:34 +02:00
// -------------------------------------------- //
// UTIL
// -------------------------------------------- //
public boolean isAtLeast(Rel rel)
{
return this.getValue() >= rel.getValue();
}
public boolean isAtMost(Rel rel)
{
return this.getValue() <= rel.getValue();
}
public boolean isLessThan(Rel rel)
{
return this.getValue() < rel.getValue();
}
2011-10-24 11:07:06 +02:00
public boolean isMoreThan(Rel rel)
{
return this.getValue() > rel.getValue();
2011-10-24 11:07:06 +02:00
}
// Used for friendly fire.
public boolean isFriend()
{
return this.isAtLeast(TRUCE);
}
2019-05-03 09:25:18 +02:00
@Deprecated
public String getPrefix()
{
return "";
}
}