Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PlayerManager {
- private final NetworkAPI plugin;
- private final ConcurrentHashMap<UUID, PlayerData> cache = new ConcurrentHashMap<>();
- public PlayerManager(NetworkAPI plugin) {
- this.plugin = plugin;
- }
- public PlayerData getPlayerData(UUID player) {
- if (player == null) throw new NullPointerException("Parameter player is null !");
- PlayerData data = cache.get(player);
- data.refreshIfNeeded();
- if (data == null) this.plugin.log(Level.WARNING, player + " is not in the cache !");
- return data;
- }
- public PlayerData getPlayerDataByName(String name) {
- for (PlayerData data : cache.values()) {
- if (data.getEffectiveName().equals(name))
- return data;
- }
- return null;
- }
- public void loadPlayer(UUID player) {
- PlayerData playerData = new PlayerData(player, plugin, this);
- cache.put(player, playerData);
- }
- public void unloadPlayer(UUID player) {
- if (!cache.contains(player)) {
- this.plugin.log(Level.WARNING, player + " is not in the cache !");
- return;
- }
- cache.get(player).updateData();
- Bukkit.getScheduler().runTaskLater(this.plugin, () -> cache.remove(player), 2L);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement