package com.yaohun.playermail.manage; import com.yaohun.playermail.data.PlayerData; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import java.util.HashMap; import java.util.Map; /** * 玩家管理器类,用于管理所有玩家的数据 */ public class PlayerManager { // 存储所有玩家数据的映射表,键为玩家名称,值为玩家数据对象 private Map playerDataMap = new HashMap<>(); /** * 构造函数,初始化在线玩家数据 */ public PlayerManager(){ // 遍历当前所有在线玩家 for (Player player : Bukkit.getOnlinePlayers()){ // 仅处理等级达到50级以上的玩家 if(player.getLevel() >= 50){ // 获取玩家名称 String playerName = player.getName(); // 创建玩家数据对象 PlayerData playerData = new PlayerData(playerName); // 将玩家数据添加到映射表中 playerDataMap.put(playerName, playerData); } } } /** * 获取玩家数据,如果玩家数据不存在,则创建新的玩家数据对象 * * @param playerName 玩家名称 * @return 玩家数据对象 */ public PlayerData getPlayerData(String playerName){ // 检查映射表中是否存在指定玩家的数据 if(!playerDataMap.containsKey(playerName)) { // 如果不存在,创建新的玩家数据对象 PlayerData playerData = new PlayerData(playerName); // 将新的玩家数据对象添加到映射表中 playerDataMap.put(playerName, playerData); } // 返回玩家数据对象 return playerDataMap.get(playerName); } /** * 保存所有玩家的数据 */ public void saveAllPlayerData(){ // 遍历所有玩家数据 for (PlayerData playerData : playerDataMap.values()){ // 保存每个玩家的邮件栈数据 playerData.saveMailStack(); } } }