+pub struct PlayerCache {
+ players: HashMap<String, MinecraftPlayer>,
+ pub fn new() -> PlayerCache {
+ PlayerCache { players: HashMap::new() }
+ pub fn get_online_players(&self) -> Vec<&MinecraftPlayer> {
+ self.players.values().filter(|&player| {
+ pub fn get_op_players(&self) -> Vec<&MinecraftPlayer> {
+ self.players.values().filter(|&player| {
+ pub fn get_whitelist_players(&self) -> Vec<&MinecraftPlayer> {
+ self.players.values().filter(|&player| {
+ pub fn get_all_players(&self) -> Vec<&MinecraftPlayer> {
+ self.players.values().collect()
+ pub fn get_cached_player(&mut self, player_name: &str) -> &mut MinecraftPlayer {
+ self.players.entry(player_name.to_lowercase()).or_insert(MinecraftPlayer::new(player_name))