MythicMobs 4.x / 5.x API 知识库
本文档用于 明确列出 MythicMobs 4.x 与 5.x 在 Java API 层面的包名与核心类差异,以便插件开发者进行版本迁移或兼容性开发。
一、总体变化概览
核心变化特征
io.lumine.xikage.mythicmobs
迁移为:
io.lumine.mythic
-
逻辑结构拆分为:
api(对外 API)
core(内部核心实现)
bukkit(平台实现)
二、核心类对照表(4.x → 5.x)
1️⃣ 主插件实例
| 功能 |
4.x |
5.x |
| 主类 |
io.lumine.xikage.mythicmobs.MythicMobs |
io.lumine.mythic.bukkit.MythicBukkit |
示例(5.x)
MythicBukkit mythic = MythicBukkit.inst();
2️⃣ Bukkit 适配 / API Helper
| 功能 |
4.x |
5.x |
| Bukkit 适配 |
api.bukkit.BukkitAPIHelper |
api.adapters.BukkitAdapter |
常见用途
- Bukkit Entity ↔ Mythic Entity 转换
3️⃣ ActiveMob(已生成的怪物实例)
| 功能 |
4.x |
5.x |
| ActiveMob |
mobs.ActiveMob |
core.mobs.ActiveMob |
ActiveMob 表示已经生成在世界中的 Mythic 怪物实例
4️⃣ MythicMob(怪物模板)
| 功能 |
4.x |
5.x |
| MythicMob |
mobs.MythicMob |
core.mobs.MythicMob |
5️⃣ MobManager(怪物管理器)
| 功能 |
4.x |
5.x |
| MobManager |
mobs.MobManager |
api.mobs.MobManager |
示例(5.x)
MobManager mobManager = MythicBukkit.inst().getMobManager();
6️⃣ Skill(技能对象)
| 功能 |
4.x |
5.x |
| Skill |
skills.Skill |
core.skills.Skill |
7️⃣ SkillManager(技能管理器)
| 功能 |
4.x |
5.x |
| SkillManager |
skills.SkillManager |
api.skills.SkillManager |
8️⃣ MythicItem(自定义物品)
| 功能 |
4.x |
5.x |
| MythicItem |
items.MythicItem |
core.items.MythicItem |
9️⃣ ItemManager(物品管理器)
| 功能 |
4.x |
5.x |
| ItemManager |
items.ItemManager |
api.items.ItemManager |
🔟 SpawnerManager(刷怪点管理)
| 功能 |
4.x |
5.x |
| SpawnerManager |
spawning.SpawnerManager |
api.spawning.SpawnerManager |
三、迁移开发建议(4.x → 5.x)
✅ 正确迁移思路
- 先替换 import 包名,不要直接复制旧路径
- 优先使用
api.* 包下的 Manager
- 避免直接依赖
core 包中的实现类(除非必要)
- 所有入口统一从
MythicBukkit.inst() 获取
❌ 常见错误
- 继续使用
io.lumine.xikage.*
- 通过反射调用已移动的内部类
- 假设 4.x 的 Manager 方法在 5.x 中仍存在
四、定位问题的正确方式
当你在 5.x 中找不到某个 4.x 的类时:
- 先判断它是 Manager / 模板 / 实例 / 内部实现
- 优先在
io.lumine.mythic.api 下搜索
- 再在
core 包中查找是否为内部类
- 使用 IDE 的「查找类」而不是猜路径
五、文档定位说明
本文档适用于:
- 插件代码从 MythicMobs 4.x 升级到 5.x
- 编写 双版本兼容插件
- AI / 自动化代码迁移参考
不适用于:
- 技能语法教学
- YAML 配置编写
- MythicMobs 使用教程