package tc.oc.pgm.tablist;
import tc.oc.pgm.match.MatchPlayer;
import tc.oc.pgm.match.Parties;
import tc.oc.pgm.teams.Team;
import tc.oc.pgm.teams.Teams;
import java.util.Comparator;
public class TeamOrder implements Comparator<Team> {
private final MatchPlayer viewer;
TeamOrder(MatchPlayer viewer) {
this.viewer = viewer;
}
@Override
public int compare(Team a, Team b) {
if(a == b) return 0;
// Observing team is last
boolean aObs = Parties.isObservingType(a);
boolean bObs = Parties.isObservingType(b);
if(aObs && !bObs) return 1;
if(bObs && !aObs) return -1;
// Viewer's (participating) team is first
Team team = Teams.get(viewer);
if(team == a) return -1;
if(team == b) return 1;
// Rest of the teams are ordered by name
return a.getName().compareTo(b.getName());
}
}