001package fr.aumgn.bukkitutils.playerref.set; 002 003import java.util.HashSet; 004import java.util.List; 005 006import org.bukkit.OfflinePlayer; 007import org.bukkit.entity.Player; 008 009import com.google.common.collect.Iterables; 010import com.google.common.collect.Lists; 011 012import fr.aumgn.bukkitutils.playerref.PlayerRef; 013import fr.aumgn.bukkitutils.playerref.PlayersIterable; 014import fr.aumgn.bukkitutils.playerref.ToOfflinePlayer; 015 016public class PlayersRefHashSet 017 extends HashSet<PlayerRef> implements PlayersRefSet { 018 019 private static final long serialVersionUID = -2701720565674845979L; 020 021 public PlayersRefHashSet() { 022 super(); 023 } 024 025 @Override 026 public boolean contains(OfflinePlayer player) { 027 return contains(PlayerRef.get(player)); 028 } 029 030 @Override 031 public boolean add(OfflinePlayer player) { 032 return add(PlayerRef.get(player)); 033 } 034 035 @Override 036 public boolean remove(OfflinePlayer player) { 037 return remove(PlayerRef.get(player)); 038 } 039 040 @Override 041 public Iterable<OfflinePlayer> offlinePlayers() { 042 return Iterables.transform( 043 PlayersRefHashSet.this, new ToOfflinePlayer()); 044 } 045 046 @Override 047 public Iterable<Player> players() { 048 return new PlayersIterable(PlayersRefHashSet.this); 049 } 050 051 @Override 052 public List<OfflinePlayer> getOfflinePlayers() { 053 return Lists.newArrayList(offlinePlayers()); 054 } 055 056 @Override 057 public List<Player> getPlayers() { 058 return Lists.newArrayList(players()); 059 } 060}