CORE
MC 游戏引擎心脏构建器
第 18 课:模块化开发 —— 用状态机(State Machine)驱动游戏世界
技术栈:Spigot API 1.21.1 + AI 助手
模式:有限状态机 (FSM) + 单例解耦
铁律:离开状态必须清理任务,严防幽灵计时器!
任务一:构建 GameManager 核心骨架
定义游戏四个黄金阶段:LOBBY(等待)、STARTING(倒计时)、ACTIVE(进行中)、ENDED(结束)。
COPY TO AI
任务二:游戏行为“安检门”(事件拦截)
根据当前所处的游戏阶段,有条件地允许或禁止玩家的行为。例如:在大厅不能拆家,游戏开始后才可以。
INTERCEPTOR PROMPT
任务三:胜负判定与大局终结
当游戏正处于 ACTIVE 时,我们需要时刻紧盯玩家生死状态,当满足终结条件时,自动切入 ENDED 阶段。
WINNER CHECK PROMPT
任务四:工程师的严谨自查——歼灭幽灵计时器
这是新手最容易碰到的致命漏洞:倒计时走到一半被管理员强行打断,但后台计时器没被关掉,继续疯狂执行。
必须向 AI 索要的防御性代码:
- 在每次开启新的倒计时任务之前,必须强制校验上一个 `BukkitTask` 是否为空,若不为空,必须先执行 `cancel()`。
- 当服务器热重载 (Reload) 或者是强行关机时,`onDisable()` 方法中必须清理当前的临时状态和方块,防止数据损毁。
DEBUG PROMPT