001package fr.aumgn.bukkitutils.playerref.map; 002 003import java.util.HashMap; 004import java.util.HashSet; 005import java.util.Map; 006import java.util.Set; 007 008import org.bukkit.OfflinePlayer; 009import org.bukkit.entity.Player; 010 011import fr.aumgn.bukkitutils.playerref.PlayerRef; 012 013public class PlayersRefHashMap<T> 014 extends HashMap<PlayerRef, T> implements PlayersRefMap<T> { 015 016 private static final long serialVersionUID = -2270069935511356836L; 017 018 public PlayersRefHashMap() { 019 super(); 020 } 021 022 @Override 023 public boolean containsKey(OfflinePlayer player) { 024 return containsKey(PlayerRef.get(player)); 025 } 026 027 @Override 028 public T get(OfflinePlayer player) { 029 return get(PlayerRef.get(player)); 030 } 031 032 @Override 033 public T put(OfflinePlayer player, T value) { 034 return put(PlayerRef.get(player), value); 035 } 036 037 @Override 038 public T remove(OfflinePlayer player) { 039 return remove(PlayerRef.get(player)); 040 } 041 042 @Override 043 public Set<OfflinePlayer> offlinePlayersSet() { 044 HashSet<OfflinePlayer> set = new HashSet<OfflinePlayer>(); 045 for (PlayerRef ref : keySet()) { 046 set.add(ref.getOfflinePlayer()); 047 } 048 049 return set; 050 } 051 052 public Set<Player> playersSet() { 053 HashSet<Player> set = new HashSet<Player>(); 054 for (PlayerRef ref : keySet()) { 055 Player player = ref.getPlayer(); 056 if (player != null) { 057 set.add(player); 058 } 059 } 060 061 return set; 062 } 063 064 @Override 065 public Set<Entry<OfflinePlayer, T>> offlinePlayersEntrySet() { 066 HashSet<Entry<OfflinePlayer, T>> set = 067 new HashSet<Map.Entry<OfflinePlayer, T>>(); 068 for (Map.Entry<PlayerRef, T> entry : entrySet()) { 069 set.add(new OfflinePlayerMapEntry<T>(entry)); 070 } 071 return set; 072 } 073 074 @Override 075 public Set<Entry<Player, T>> playersEntrySet() { 076 HashSet<Entry<Player, T>> set = 077 new HashSet<Entry<Player, T>>(); 078 for (Entry<PlayerRef, T> entry : entrySet()) { 079 set.add(new PlayerMapEntry<T>(entry)); 080 } 081 return set; 082 } 083}