Appearance
介绍
AreaModule 是一个基于 TabooLib 构建的 Minecraft Bukkit 区域关卡插件。它允许服务器管理员通过 YAML 配置文件定义区域关卡,每个关卡由多个子关卡组成,每个子关卡又由多个功能模块组合而成。
核心概念
整个系统的层级结构如下:
关卡 (GameLevel)
├── 触发器 (Trigger) — 决定关卡何时启动
├── 区域 (Region) — 关卡生效的空间范围
├── 分数 (ScoreBoard) — 关卡级别的全局变量
└── 子关卡 (GameSubLevel) — 按优先级顺序执行
├── on-start 脚本
├── on-exit 脚本
└── 模块 (Module) — 子关卡的具体玩法组件
├── 刷怪点、空气墙、死亡陷阱...
└── 可点击方块、NPC、消息提示...关卡 (Level)
关卡是最顶层的单位。每个关卡绑定一个区域范围和一个触发器。当触发条件满足时,关卡启动,按优先级依次执行其下的子关卡。关卡支持冷却时间、限时机制和失败脚本。
子关卡 (SubLevel)
子关卡是关卡内的执行阶段。每个子关卡可配置进入/退出时的 Kether 脚本,并包含若干功能模块。通过 advance() 推进到下一个子关卡,所有子关卡完成后关卡结束。
模块 (Module)
模块是最小的功能单元。插件提供了 13 种内置模块,涵盖刷怪、区域检测、交互、全息显示、消息提示等功能。模块通过注解驱动的注册机制(@ModuleBuilder)实现,支持自动配置映射。
触发器 (Trigger)
触发器决定关卡何时自动启动。7 种触发器覆盖了移动、击杀、受击、死亡、拾取物品、金币、人数等场景,均支持概率控制。
依赖
| 插件 | 用途 | 是否必须 |
|---|---|---|
| TabooLib 6.2 | 核心框架 | ✅ |
| MythicMobs | 怪物生成和击杀检测 | 使用 spawner/killtrigger 模块时需要 |
| DecentHolograms | 全息图显示 | 使用 landmark 模块时需要 |
| Adyeshach | NPC 生成 | 使用 ady-npc 模块时需要 |
| Vault | 经济系统 | 使用 money-prob 触发器时需要 |
| PlaceholderAPI | 变量占位符 | 使用 PAPI 变量时需要 |
服务端要求
- Java 17+
- Minecraft 1.20.4+ (Paper/Spigot)