package net.viper.status.stats; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; public class StatsManager { private final ConcurrentHashMap map = new ConcurrentHashMap<>(); public PlayerStats get(UUID uuid, String name) { return map.compute(uuid, (k, v) -> { if (v == null) { return new PlayerStats(uuid, name != null ? name : ""); } else { if (name != null && !name.isEmpty()) v.name = name; return v; } }); } public PlayerStats getIfPresent(UUID uuid) { return map.get(uuid); } public Iterable all() { return map.values(); } public void put(PlayerStats ps) { map.put(ps.uuid, ps); } public void remove(UUID uuid) { map.remove(uuid); } }