mirror of
https://github.com/MassiveCraft/Factions.git
synced 2024-09-27 13:32:38 +02:00
118 lines
3.3 KiB
Java
118 lines
3.3 KiB
Java
package com.massivecraft.factions;
|
|
|
|
import com.massivecraft.factions.entity.MConf;
|
|
import com.massivecraft.massivecore.Colorized;
|
|
import com.massivecraft.massivecore.Named;
|
|
import com.massivecraft.massivecore.collections.MassiveSet;
|
|
import org.bukkit.ChatColor;
|
|
|
|
import java.util.Collections;
|
|
import java.util.Set;
|
|
|
|
public enum Rel implements Colorized, Named, PermissionIdentifiable
|
|
{
|
|
// -------------------------------------------- //
|
|
// ENUM
|
|
// -------------------------------------------- //
|
|
|
|
ENEMY(
|
|
"an enemy", "enemies", "an enemy faction", "enemy factions",
|
|
"Enemy"
|
|
) { @Override public ChatColor getColor() { return MConf.get().colorEnemy; } },
|
|
|
|
NEUTRAL(
|
|
"someone neutral to you", "those neutral to you", "a neutral faction", "neutral factions",
|
|
"Neutral"
|
|
) { @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"
|
|
) { @Override public ChatColor getColor() { return MConf.get().colorTruce; } },
|
|
|
|
ALLY(
|
|
"an ally", "allies", "an allied faction", "allied factions",
|
|
"Ally"
|
|
) { @Override public ChatColor getColor() { return MConf.get().colorAlly; } },
|
|
|
|
FACTION(
|
|
"someone in your faction", "a faction member", "faction members",
|
|
"Faction"
|
|
) { @Override public ChatColor getColor() { return MConf.get().colorMember; } },
|
|
|
|
// END OF LIST
|
|
;
|
|
|
|
// -------------------------------------------- //
|
|
// FIELDS
|
|
// -------------------------------------------- //
|
|
|
|
public int getValue() { return this.ordinal(); }
|
|
|
|
private final String descPlayerOne;
|
|
public String getDescPlayerOne() { return this.descPlayerOne; }
|
|
|
|
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; }
|
|
@Override public String getName() { return this.getNames().iterator().next(); }
|
|
|
|
// -------------------------------------------- //
|
|
// CONSTRUCT
|
|
// -------------------------------------------- //
|
|
|
|
Rel(String descPlayerOne, String descPlayerMany, String descFactionOne, String descFactionMany, String... names)
|
|
{
|
|
this.descPlayerOne = descPlayerOne;
|
|
this.descPlayerMany = descPlayerMany;
|
|
this.descFactionOne = descFactionOne;
|
|
this.descFactionMany = descFactionMany;
|
|
this.names = Collections.unmodifiableSet(new MassiveSet<>(names));
|
|
}
|
|
|
|
// -------------------------------------------- //
|
|
// 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();
|
|
}
|
|
|
|
public boolean isMoreThan(Rel rel)
|
|
{
|
|
return this.getValue() > rel.getValue();
|
|
}
|
|
|
|
// Used for friendly fire.
|
|
public boolean isFriend()
|
|
{
|
|
return this.isAtLeast(TRUCE);
|
|
}
|
|
|
|
@Override
|
|
public String getPermissibleId()
|
|
{
|
|
return this.getName().toLowerCase();
|
|
}
|
|
|
|
}
|