第 3 课:安全卫士 (Anti-Griefing Tools) —— 守护你的世界

第 3 课:安全卫士 (...

第 3 课:安全卫士 (Anti-Griefing Tools) —— 守护你的世界

课程时长:120 分钟
技术栈:IntelliJ IDEA + Spigot API 1.21.1 + AI 助手
核心目标:深入理解事件拦截机制(Cancellation),掌握“权限豁免”逻辑,构建一个初级的反破坏(Anti-Grief)系统。


一、 任务背景 (Mission Background)

作为服务器的主人,你最担心的就是辛辛苦苦盖的房子被 TNT 炸毁,或者被岩浆淹没。今天,你将化身**“网络安全官”**,编写一套自动化防御程序,识别并阻止那些破坏行为,同时保留管理员的特殊权力。


二、 学习路线图 (Technical Map)

  • 编程技能:事件取消 (setCancelled)、权限判断 (hasPermission)、列表/数组基础(用于关键词过滤)。

  • 工程思维“黑名单”逻辑——默认允许,特定禁止;异常处理——如果破坏者是 OP 怎么办?

  • AI 素养:利用 AI 快速查询上百种事件类型,学习“负面条件判断”的逻辑描述。


三、 核心项目:物理防御屏障 (Sprint 1: 45 min)

1. 阻止爆炸与流体破坏

我们需要拦截物理层面的破坏事件。

推荐 Prompt(提示词):

“我正在开发 Spigot 1.21.1 插件。请帮我写一个监听器类:

  1. 阻止 TNT 爆炸破坏地形(但可以保留爆炸声和烟雾)。

  2. 阻止岩浆(Lava)和水(Water)流动扩散,防止淹没建筑。

  3. 当爆炸被阻止时,向附近的管理员发送一条警告信息。”

2. 代码解析:拦截的奥秘

  • 关键代码event.setCancelled(true);

  • Vibe Check:AI 可能会用到 EntityExplodeEvent(爆炸)和 BlockFromToEvent(流体)。
    请问 AI:如果我想让 TNT 能炸飞怪兽但不能炸坏方块,应该修改哪一行?(提示:
    event.blockList().clear())。


四、 多任务挑战:文明社区与特权 (Sprint 2: 45 min)

防御不仅在物理层面,还在社交和管理层面。

任务等级 任务名称 功能描述 AI 协助方向
基础版 聊天过滤器 拦截包含“炸服”、“垃圾”等词汇的消息。 “如何监听 AsyncChatEvent 并检查消息是否包含特定字符串列表?”
进阶版 管理员豁免 拥有 guard.admin 权限的人可以无视限制(如可以放火)。 “如何在事件处理器中加入权限判断:如果是管理员则不取消事件?”
专家版 行为日志 将谁在什么地方尝试放火的行为记录在控制台。 “如何获取玩家坐标并使用 getLogger() 打印日志?”

五、 工程思维:性能与优先级 (Engineering Logic: 15 min)

思考题: 如果服务器有 100 个人同时在聊天,你的插件每秒要检查 1000 个词汇,服务器会卡吗?

  • 性能考量:为什么聊天过滤要用 AsyncChatEvent(异步)?

  • 优先级管理:如果另一个插件也想管理爆炸,谁先说了算?

    • AI 任务:向 AI 提问:“什么是 @EventHandler(priority = EventPriority.HIGHEST)?我应该在什么时候使用它?”


六、 安全演习与 Debug (Testing: 15 min)

  1. 实弹演习:拿出一颗 TNT 并在出生点引爆。地面坏了吗?你收到警告了吗?

  2. 权限穿透:把自己降级为玩家(/deop),测试能否在公屏发送敏感词。

  3. AI 纠错:如果岩浆在桶里倒不出来(放不下方块),说明你的流体拦截太严格了。请问 AI:“如何区分‘自然流动’和‘玩家放置方块’?”


七、 自学习与探究 (Self-Learning)

拓展思考:

  • 方块保护:你能利用 AI 写出“防止玩家在出生点周围 10 格内放火”的代码吗?

  • 自动禁言:如果一个玩家连续发送 3 次敏感词,能否自动执行指令 /mute


八、 成果交付 (Deliverables)

  1. 演示:在岩浆喷发和 TNT 阵中大楼岿然不动的神奇景象。

  2. 配置清单:展示你的敏感词列表(黑名单)。

  3. Prompt 笔记:记录你是如何让 AI 区分“方块爆炸”和“方块掉落”的。


九、 老师的 Vibe Tips (结语)

“真正的‘安全卫士’不是死板的禁止,而是聪明的判断。今天你学会了 setCancelled,这就是你对游戏规则的最终否决权。利用 AI 去探索更多 Event,你会发现自己不仅是这个世界的守护者,更是规则的制定者。”