类 GameStateManager
java.lang.Object
com.playerblocklife.GameStateManager
游戏状态管理器 - PBL生存游戏模式的核心管理器
主要功能包括:
- 管理游戏状态(等待中/游戏中/已结束)
- 为非OP玩家分配独特颜色的生命方块
- 处理游戏开始时的生命方块生成
- 控制游戏开始和结束逻辑
- 管理实时计分板显示(游戏状态、剩余方块、限时等)
- 处理游戏重置和玩家淘汰
- 监控游戏结束条件(仅剩一名存活玩家或限时结束)
游戏模式特性:
- OP玩家始终处于观察者模式,不参与游戏
- 非OP玩家在等待时处于冒险模式,手中持有对应颜色方块
- 游戏开始后非OP玩家转为生存模式并清空背包
- 使用不同颜色的羊毛、玻璃、水泥方块作为生命方块
- 支持限时游戏模式
- 游戏结束时显示胜利玩家
- 从以下版本开始:
- 4.0.0
-
嵌套类概要
嵌套类 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明voidassignPlayerColor(org.bukkit.entity.Player player) 为玩家分配颜色void检查游戏是否结束voidclearPlayerBlocks(UUID playerId) 清除指定玩家的方块booleangenerateLifeBlocksForPlayer(org.bukkit.entity.Player player) 为玩家生成生命方块获取所有存活玩家int获取存活玩家数量int获取游戏持续时间(分钟)long获取游戏开始时间戳获取所有玩家的方块位置org.bukkit.MaterialgetPlayerColor(UUID playerId) 获取玩家颜色intgetRemainingBlocks(UUID playerId) 获取玩家剩余方块数量boolean检查是否为限时游戏booleanremoveBlock(org.bukkit.Location location, org.bukkit.entity.Player breaker) 移除被破坏的生命方块void重置游戏voidvoid开始游戏voidstartTimedGame(int minutes) 开始限时游戏voidupdatePlayerScoreboard(org.bukkit.entity.Player player) 更新玩家特定的计分板信息void更新计分板
-
构造器详细资料
-
GameStateManager
-
-
方法详细资料
-
getCurrentState
-
setCurrentState
-
assignPlayerColor
public void assignPlayerColor(org.bukkit.entity.Player player) 为玩家分配颜色- 参数:
player- 要分配颜色的玩家
-
generateLifeBlocksForPlayer
public boolean generateLifeBlocksForPlayer(org.bukkit.entity.Player player) 为玩家生成生命方块- 参数:
player- 要生成生命方块的玩家- 返回:
- 生成成功返回true,否则返回false
-
removeBlock
public boolean removeBlock(org.bukkit.Location location, org.bukkit.entity.Player breaker) 移除被破坏的生命方块- 参数:
location- 方块位置breaker- 破坏方块的玩家- 返回:
- 移除成功返回true,否则返回false
-
checkGameEnd
public void checkGameEnd()检查游戏是否结束 -
startTimedGame
public void startTimedGame(int minutes) 开始限时游戏- 参数:
minutes- 游戏限时(分钟)
-
startGame
public void startGame()开始游戏 -
resetGame
public void resetGame()重置游戏 -
getRemainingBlocks
获取玩家剩余方块数量- 参数:
playerId- 玩家UUID- 返回:
- 玩家剩余方块数量
-
getPlayerColor
获取玩家颜色- 参数:
playerId- 玩家UUID- 返回:
- 玩家的颜色材料
-
updateScoreboard
public void updateScoreboard()更新计分板 -
updatePlayerScoreboard
public void updatePlayerScoreboard(org.bukkit.entity.Player player) 更新玩家特定的计分板信息- 参数:
player- 要更新计分板的玩家
-
getAlivePlayersCount
public int getAlivePlayersCount()获取存活玩家数量- 返回:
- 存活玩家数量
-
getAlivePlayers
获取所有存活玩家- 返回:
- 存活玩家UUID列表
-
getPlayerBlocks
获取所有玩家的方块位置- 返回:
- 玩家UUID到方块位置列表的映射
-
clearPlayerBlocks
清除指定玩家的方块- 参数:
playerId- 要清除方块的玩家UUID
-
getGameDuration
public int getGameDuration()获取游戏持续时间(分钟)- 返回:
- 游戏持续时间(分钟)
-
getGameStartTime
public long getGameStartTime()获取游戏开始时间戳- 返回:
- 游戏开始时间戳
-
isLimitedTime
public boolean isLimitedTime()检查是否为限时游戏- 返回:
- 如果是限时游戏返回true,否则返回false
-