课程时长:120 分钟
技术栈:IntelliJ IDEA + Spigot API 1.21.1 + AI 助手 (Cursor/ChatGPT)
核心目标:理解“事件驱动编程”模型,学习如何通过 AI 实现复杂的视觉反馈(Title 和 Action Bar),并初步接触“变量驱动”的设计思维。
一、 任务背景 (Mission Background)
一个专业的服务器,第一印象至关重要。当新玩家进入世界时,你应该用最华丽的方式迎接他,而不是仅仅显示一句枯燥的 Player joined the game。今天,你的任务是设计一套全方位的欢迎系统。
二、 学习路线图 (Technical Map)
-
编程技能:监听器接口 (Listener)、事件注解 (@EventHandler)、字符串替换 (String.replace)。
-
工程思维:变量化设计(用 %player% 代替具体名字)、优先级管理(取消系统默认消息)。
-
AI 素养:描述视觉需求(Prompting for UI/UX)、利用 AI 查找特定 API(如 Title API)。
三、 核心项目:自定义欢迎系统 (Sprint 1: 45 min)
1. 事件驱动逻辑 (Event-Driven)
在 Minecraft 插件中,大部分功能是靠“监听”发生的。我们需要监听 PlayerJoinEvent。
推荐 Prompt(提示词):
“我正在使用 Spigot 1.21.1。请帮我写一个玩家加入事件的监听器: 1.取消系统默认的玩家进入提示。 2.发送一条自定义消息:‘[+] 欢迎 [玩家名] 来到我的世界!’。 3.消息需要支持颜色代码。”
2. 代码集成:注册监听器
-
关键点:AI 可能会写出代码,但它无法帮你修改 onEnable。
-
手动操作:在主类中添加 getServer().getPluginManager().registerEvents(new MyListener(), this);。
-
Vibe Check:如果没有这一行,你的插件就像一个没插电的收音机,永远听不到玩家进入的消息。
四、 多任务挑战:视觉全家桶 (Sprint 2: 45 min)
玩家进入时,只发聊天框消息太低调了。我们需要同时触发多种效果:
五、 工程思维:变量与占位符 (Engineering Logic: 15 min)
思考题: 如果你想把消息从“欢迎”改为“Hi”,你愿意每次都修改代码、重新打包、重启服务器吗?
-
变量替换逻辑:学习如何定义一个字符串模板。
-
代码逻辑:String msg = “欢迎你,%player%!”;
-
替换动作:msg.replace(“%player%”, player.getName());
-
-
AI 任务:让 AI 解释为什么使用 .replace() 而不是直接写死名字对“软件通用性”更有好处。
六、 联机调试与 Debug (Testing: 15 min)
-
多玩家测试:邀请你的同学进入你的服务器。看看记分板或 ActionBar 上的“在线人数”是否实时更新?
-
视觉重叠测试:如果 Title 停留时间太长,会不会遮挡玩家视线?
-
AI 纠错:如果烟花伤害到了玩家,请向 AI 提问:“如何让插件生成的烟花不造成任何伤害?”
七、 自学习与探究 (Self-Learning)
探索 API 文档:
-
除了 PlayerJoinEvent,还有 PlayerQuitEvent(退出事件)。
-
挑战任务:尝试利用 AI 制作一个“离线告别”功能,显示 [-] 玩家 XXX 离开了,大家会想他的。
八、 成果交付 (Deliverables)
-
演示:展示玩家进入时,屏幕大标题、动作栏、聊天框同步出现的“华丽三连击”。
-
代码截图:标注出 @EventHandler 的位置。
-
Prompt 记录:记录你如何通过 AI 获取“在线人数”这个具体参数的(提示:Bukkit.getOnlinePlayers().size())。
九、 老师的 Vibe Tips (结语)
“好的程序员不只是在写逻辑,更是在设计用户体验。今天你通过 AI 掌握了 Title 和 Action Bar 的用法,这就像是学会了装修。记住,代码的目的是为了让世界更生动,而不是为了让代码更长。”