package org.mctourney.autoreferee.goals; import org.bukkit.Location; import org.bukkit.entity.Player; import org.jdom2.Element; import org.mctourney.autoreferee.AutoRefMatch; import org.mctourney.autoreferee.AutoRefTeam; import org.mctourney.autoreferee.util.BlockData; public class SurvivalGoal extends AutoRefGoal { public SurvivalGoal(AutoRefTeam team) { super(team); } private SurvivalGoal(AutoRefTeam team, SurvivalGoal goal) { this(team); } public SurvivalGoal(AutoRefTeam team, Element elt) { super(team); } @Override public SurvivalGoal copy() { return this.copy(this.owner); } @Override public SurvivalGoal copy(AutoRefTeam team) { return new SurvivalGoal(team, this); } public Element toElement() { return new Element("survive"); } @Override public String toString() { return "SURVIVE"; } @Override public boolean isSatisfied(AutoRefMatch match) { for (AutoRefTeam team : match.getTeams()) if (team != this.getOwner()) if (hasSurvived(team)) return false; return true; } public static boolean hasSurvived(AutoRefTeam team) { boolean practice = team.getMatch().isPracticeMode(); return !team.getPlayers().isEmpty() || (practice && team.getCachedPlayers().isEmpty()); } @Override public boolean canBeCompleted(AutoRefMatch match) { return SurvivalGoal.hasSurvived(this.getOwner()); } @Override public double getScore(AutoRefMatch match) { return this.getOwner().getPlayers().size() * 250.0; } @Override public void updateReferee(Player ref) { AutoRefMatch.messageReferee(ref, "team", getOwner().getName(), "goal", "survive", Integer.toString(getOwner().getPlayers().size())); } @Override public BlockData getItem() { return null; } @Override public Location getTarget() { return null; } }