001package fr.aumgn.bukkitutils.playerref.list; 002 003import java.util.ArrayList; 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 PlayersRefArrayList 017 extends ArrayList<PlayerRef> implements PlayersRefList { 018 019 private static final long serialVersionUID = -921106024183437981L; 020 021 public PlayersRefArrayList() { 022 super(); 023 } 024 025 public PlayersRefArrayList(int capacity) { 026 super(capacity); 027 } 028 029 @Override 030 public void add(OfflinePlayer player) { 031 add(PlayerRef.get(player)); 032 } 033 034 @Override 035 public void add(int index, OfflinePlayer player) { 036 add(index, PlayerRef.get(player)); 037 } 038 039 @Override 040 public boolean contains(OfflinePlayer player) { 041 return contains(PlayerRef.get(player)); 042 } 043 044 @Override 045 public OfflinePlayer getOfflinePlayer(int index) { 046 return get(index).getOfflinePlayer(); 047 } 048 049 @Override 050 public Player getPlayer(int index) { 051 return get(index).getPlayer(); 052 } 053 054 @Override 055 public Iterable<OfflinePlayer> offlinePlayers() { 056 return Iterables.transform( 057 PlayersRefArrayList.this, new ToOfflinePlayer()); 058 } 059 060 @Override 061 public Iterable<Player> players() { 062 return new PlayersIterable(PlayersRefArrayList.this); 063 } 064 065 @Override 066 public List<OfflinePlayer> getOfflinePlayers() { 067 return Lists.transform(this, new ToOfflinePlayer()); 068 } 069 070 @Override 071 public List<Player> getPlayers() { 072 return Lists.newArrayList(players()); 073 } 074}