⚔️ AdventureCraft

套装技能触发系统 — 穿戴装备释放 MythicMobs 技能

📦 Paper / Purpur 1.21+ 🔗 MythicMobs 可选 🎨 CraftEngine 可选 👤 作者: Feiiy

这是什么?

AdventureCraft 是一个套装技能触发系统插件。玩家穿戴指定套装后,通过右键/左键/Shift+点击/潜行等操作触发对应的 MythicMobs 技能。支持多层级套装、CraftEngine 自定义物品、BossBar 冷却显示、自动技能套装生成等功能。

核心功能

🛡️
套装匹配
按材质、名称、Lore、CraftEngine ID 匹配头盔/胸甲/护腿/靴子 + 武器
6 种触发方式
LEFT_CLICK / RIGHT_CLICK / SHIFT_LEFT_CLICK / SHIFT_RIGHT_CLICK / SNEAK / 攻击实体
🔮
MythicMobs 技能
通过 mm test cast 释放技能,支持伤害值和治疗百分比传递
📊
BossBar 冷却
技能释放后 BossBar 实时显示剩余冷却时间,颜色动态变化
📐
多层级套装
一个套装可配置多个层级(T1/T2/T3…),优先匹配最高层级
🤖
自动套装生成
在 auto_skills.yml 填写技能ID,自动生成完整套装配置文件

📥 安装与依赖

环境要求

项目要求
服务端Paper / Purpur 1.21+
JavaJava 21+
可选依赖MythicMobs (技能释放)
可选依赖CraftEngine (自定义物品匹配)
可选依赖AdventureManage

安装步骤

  1. AdventureCraft-2.3.jar 放入 plugins/ 文件夹
  2. 重启服务器
  3. 插件自动生成 plugins/AdventureCraft/ 目录及默认配置
  4. sets/ 文件夹中配置你的套装
  5. 使用 /ac reload 重载配置

文件结构

plugins/AdventureCraft/
├── config.yml                 # 主配置 (消息、调试)
├── auto_skills.yml            # 自动技能套装生成配置
└── sets/                      # 套装配置文件夹
    ├── guardian_set.yml        # 示例: 守护者套装
    ├── forest_guardian_set.yml # 示例: 森林守护者套装
    ├── vital_beam_set.yml     # 示例: 生命光束套装
    ├── lifeweavers_grace_set.yml # 示例: 生命织者套装
    └── auto_generated_*.yml   # 自动生成的套装文件

🛡️ 套装系统

概览

套装系统是 AdventureCraft 的核心。每个套装定义了一组装备匹配条件和对应的技能触发配置。玩家穿戴匹配的装备后,执行指定动作即可触发技能。

匹配机制

套装匹配检查玩家的 5 个装备槽:头盔、胸甲、护腿、靴子和主手武器。

匹配方式配置键说明
材质匹配material匹配物品材质类型,如 DIAMOND_HELMET
名称匹配name-contains物品名包含指定文字 (支持颜色代码)
Lore 匹配lore-contains物品 Lore 包含指定文字
CraftEnginecraftengine-id匹配 CraftEngine 自定义物品 ID

层级系统

每个套装支持多个层级 (Tier)。层级编号越大越优先匹配。适用于同一套装不同品质/进化阶段的场景。

tiers:
  1:
    display-name: "&a初级守护者"
    armor:
      helmet: { material: IRON_HELMET }
      chestplate: { material: IRON_CHESTPLATE }
      leggings: { material: IRON_LEGGINGS }
      boots: { material: IRON_BOOTS }
    weapon:
      required: true
      type: any
    triggers:
      RIGHT_CLICK:
        skill: guardian_shield
        cooldown: 8
        damage: 0
        heal: 20
        message: "&a释放了守护之盾!"

  2:
    display-name: "&b高级守护者"
    armor:
      helmet: { craftengine-id: "default:guardian_helmet_t2" }
      chestplate: { craftengine-id: "default:guardian_chestplate_t2" }
      leggings: { craftengine-id: "default:guardian_leggings_t2" }
      boots: { craftengine-id: "default:guardian_boots_t2" }
    weapon:
      required: true
      type: specific
      craftengine-id: "default:guardian_sword_t2"
    triggers:
      RIGHT_CLICK:
        skill: guardian_shield_ex
        cooldown: 5
        damage: 0
        heal: 40
        message: "&b释放了高级守护之盾!"

武器要求

配置说明
required: false不要求主手持有武器
required: true, type: any主手必须持有任意物品
required: true, type: specific主手必须持有指定物品 (通过 material/craftengine-id 匹配)

触发方式

支持的触发类型

触发类型操作说明
RIGHT_CLICK右键 (空气/方块)不按 Shift 的右键
LEFT_CLICK左键 (空气/方块/攻击)不按 Shift 的左键或攻击实体
SHIFT_RIGHT_CLICKShift + 右键潜行状态下右键
SHIFT_LEFT_CLICKShift + 左键潜行状态下左键或攻击实体
SNEAK按下 Shift开始潜行时触发 (非持续)

触发配置

triggers:
  RIGHT_CLICK:
    skill: fire_storm          # MythicMobs 技能 ID
    cooldown: 10               # 冷却时间 (秒)
    damage: 50                 # 伤害值 → 写入记分板 ac_damage
    heal: 25                   # 治疗百分比 → 写入记分板 ac_heal
    message: "&c释放了火焰风暴!"  # 释放提示消息

记分板传参

技能触发时,插件会将 damageheal 值写入 Bukkit 记分板,供 MythicMobs 技能读取:

记分板说明
ac_damage伤害值 (int),可在 MM 技能中通过 <score.ac_damage> 引用
ac_heal治疗百分比 (int),可在 MM 技能中通过 <score.ac_heal> 引用
💡 技能执行原理

插件通过 mm test cast <skillId> 命令释放技能,并临时赋予玩家 mythicmobs.command.test.cast 权限 (1 tick)。

🔮 技能与冷却

冷却机制

每个触发动作有独立的冷却计时。冷却按 玩家 + 套装ID + 层级 + 触发方式 唯一标识。

  • 冷却期间触发同一技能会收到冷却提示消息
  • 不同套装、不同层级、不同触发方式的冷却互不影响
  • 使用 /ac reload 会清除所有冷却

BossBar 冷却显示

技能释放后,玩家会看到一个 BossBar 实时显示冷却进度:

  • 标题显示技能名称 + 剩余秒数
  • 进度条从满到空递减
  • 颜色动态变化:黄色(>25%) → 红色(≤25%)
  • 冷却结束自动消失
  • 新技能释放会覆盖当前 BossBar

技能消息

每个触发可配置独立的 message。如果设置了消息,触发时会同时:

  1. 在聊天栏显示 [前缀] + message
  2. BossBar 标题使用 message 文本 (而非技能ID)

🤖 自动技能套装

概览

自动技能功能允许你在 auto_skills.yml 中简单列出技能ID和参数,插件会自动在 sets/ 文件夹中生成完整的套装配置文件。适合快速测试或批量配置简单技能。

配置格式

# auto_skills.yml
defaults:
  trigger: RIGHT_CLICK        # 默认触发方式
  armor_material: IRON         # 默认护甲材质
  weapon_required: true        # 是否要求手持武器
  set_id_prefix: auto_skill    # 生成的套装ID前缀

skills:
  - id: my_custom_skill_001    # MythicMobs 技能ID
    enabled: true              # 是否启用
    cooldown: 5                # 冷却秒数
    damage: 10                 # 伤害值
    heal: 25                   # 治疗百分比
    range: 12                  # 范围 (元数据)
    duration: 60               # 持续时间 (元数据)
    message: "&a释放了技能!"    # 触发消息

  - id: my_custom_skill_002
    enabled: true
    cooldown: 8
    damage: 15
    heal: 0
    range: 18
    duration: 80
    message: "&b释放了技能!"
⚠️ 注意

自动生成的套装都使用相同的护甲材质匹配条件。如果同时启用多个自动技能,可能只会触发其中一个(因为匹配条件相同)。建议一次只启用一个自动技能,或改用手动套装配置区分不同装备。

生成结果

执行 /ac reload 后,插件会:

  1. 删除旧的 auto_generated_*.yml 文件
  2. 根据 skills 列表重新生成
  3. 生成文件名: auto_generated_<skill_id>.yml
  4. 生成的文件包含完整的套装结构,可直接使用

⚙️ config.yml 主配置

调试模式

debug: false  # 开启后控制台输出触发详情

消息配置

messages:
  prefix: "&6[冒险] &r"                           # 消息前缀
  cooldown: "&c技能冷却中!剩余 {time} 秒"          # 冷却提示
  no-permission: "&c你没有权限使用此命令!"           # 无权限
  reload-success: "&a配置已重载!已加载 {count} 个套装" # 重载成功

  # /ac list
  list-header: "&6===== 已加载的套装 ====="
  list-empty: "&7  暂无已加载的套装"
  list-item: "&e  - {name} &7({id}) [{tiers} 个层级]"

  # /ac info
  info-header: "&6===== {name} &6====="
  info-tier: "&e  T{tier}: {name}"
  info-trigger: "&7    {trigger} -> &f{skill} &7(CD: {cd}s, DMG: {damage}, Heal: {heal}%)"

  # /ac give
  give-usage: "&c用法: /ac give <玩家> <套装ID> [层级]"
  give-success: "&a已给予 {player} {name} &a({count} 件物品)"
  give-no-items: "&e该套装层级没有配置 craftengine-id,无法自动给予物品"
  give-no-tier: "&c套装 {id} 没有层级 T{tier}"

  # /ac help
  help-header: "&6===== AdventureCraft 冒险插件 ====="
  help-reload: "&e/ac reload &7- 重载配置"
  help-list: "&e/ac list &7- 列出所有套装"
  help-info: "&e/ac info <套装ID> &7- 查看套装详情"
  help-give: "&e/ac give <玩家> <套装ID> [层级] &7- 给予整套装备"
💡 热重载

修改配置后使用 /ac reload 即可生效,同时清除所有冷却和 BossBar 显示。

📋 套装配置文件详解

完整结构

# sets/guardian_set.yml
id: guardian_set                     # 套装唯一ID
display-name: "&6守护者套装"          # 显示名称

tiers:
  1:                                 # 层级编号 (高优先)
    display-name: "&a初级守护者"      # 层级显示名
    armor:
      helmet:
        material: IRON_HELMET        # 材质匹配
        # craftengine-id: "ns:item"  # CraftEngine 匹配
        # name-contains: "守护"      # 名称包含
        # lore-contains: "守护者"    # Lore 包含
      chestplate:
        material: IRON_CHESTPLATE
      leggings:
        material: IRON_LEGGINGS
      boots:
        material: IRON_BOOTS
    weapon:
      required: true                 # 是否要求武器
      type: any                      # any / specific
      # craftengine-id: "ns:sword"   # specific 时匹配
    triggers:
      RIGHT_CLICK:
        skill: guardian_shield       # MM技能ID
        cooldown: 8                  # 冷却秒
        damage: 0                    # 伤害值
        heal: 20                     # 治疗%
        message: "&a释放了守护之盾!"

装备匹配优先级

每个装备槽支持多种匹配方式,可组合使用。所有指定的条件都必须满足(AND 关系):

  1. craftengine-id — 最精确,推荐自定义物品使用
  2. name-contains — 按物品显示名匹配
  3. lore-contains — 按 Lore 文本匹配
  4. material — 按原版材质匹配

⌨️ 命令列表

命令说明权限
/ac显示帮助信息adventurecraft.admin
/ac reload重载所有配置文件并清除冷却adventurecraft.admin
/ac list列出所有已加载的套装adventurecraft.admin
/ac info <套装ID>查看套装详细信息(层级、触发、技能)adventurecraft.admin
/ac give <玩家> <套装ID> [层级]给予玩家整套装备(需 CraftEngine ID)adventurecraft.admin
ℹ️ 别名

命令 /ac 的别名为 /adventurecraft

🔐 权限节点

权限说明默认
adventurecraft.admin管理 AdventureCraft 插件(所有命令)OP
ℹ️ 说明

套装技能触发不需要任何权限,所有玩家穿戴匹配装备即可触发。权限仅用于管理命令。

📝 更新日志

v2.3 LATEST

  • NEW 自动技能套装生成auto_skills.yml 快速生成套装配置
  • NEW /ac give 命令 — 给予玩家整套 CraftEngine 装备
  • IMPROVED 层级匹配优化 — 高层级优先匹配 (TreeMap 逆序)
  • CONFIG softdepend — 新增 AdventureManage 为可选依赖

v2.2

  • NEW BossBar 冷却显示 — 技能释放后实时显示冷却进度
  • NEW CraftEngine 集成 — 支持 craftengine-id 匹配装备
  • IMPROVED 记分板传参 — damage/heal 写入记分板供 MM 读取

v2.1

  • NEW 多触发方式 — 支持 5 种触发类型
  • NEW 消息自定义 — 所有消息可在 config.yml 中配置

v2.0

  • NEW 全新套装系统 — 基于 YAML 配置的灵活套装定义
  • NEW 多层级支持 — 每个套装支持多个层级
  • NEW 多匹配方式 — material / name / lore / CraftEngine