📜 AdventureQuests

冒险任务系统 — 主线/支线/日常/周常/活动五大任务类型

📦 Paper / Purpur 1.21+ 🎯 35+ 目标类型 📖 剧情对话系统 👤 作者: Feiiy

这是什么?

AdventureQuests 是一个功能完备的 Minecraft 任务系统插件。支持主线、支线、每日、每周、活动五大任务类型,内置 35+ 种目标类型(包含剧情专用目标),支持 GUI 任务面板、侧边栏进度追踪、路径引导、NPC 对话、自动触发、跨服数据同步等高级功能。

核心功能

📋
五大任务类型
主线 (MAIN)、支线 (SIDE)、每日 (DAILY)、每周 (WEEKLY)、活动 (EVENT)
🎯
35+ 目标类型
破坏/放置/合成/击杀/钓鱼/NPC对话/位置到达/自定义 + 剧情专用目标
📖
剧情系统
分支对话、NPC 交互、摄像机运镜、标题/消息/音效/粒子/延迟节点
🖥️
GUI 任务面板
分类查看可接/进行中/已完成任务,点击接取/放弃/追踪
📊
侧边栏追踪
Scoreboard 实时显示当前任务进度,支持多任务同时追踪
🧭
路径引导
粒子路径引导玩家前往目标位置,支持 NPC 和位置两种引导

📥 安装与依赖

环境要求

项目要求
服务端Paper / Purpur 1.21+
JavaJava 21+
可选依赖PlaceholderAPI (变量)
可选依赖Citizens (NPC 交互)
可选依赖MythicMobs (怪物目标)
可选依赖AdventureManage

安装步骤

  1. AdventureQuests.jar 放入 plugins/
  2. 重启服务器,生成默认配置
  3. quests/ 目录中创建任务配置文件
  4. 执行 /aq reload 重载

文件结构

plugins/AdventureQuests/
├── config.yml          # 主配置
├── messages.yml        # 消息配置
├── quests/             # 任务配置目录
│   ├── main/           # 主线任务
│   ├── side/           # 支线任务
│   ├── daily/          # 每日任务
│   ├── weekly/         # 每周任务
│   └── event/          # 活动任务
└── data/               # 玩家数据

📋 任务类型

五大任务类型

类型标识说明
主线任务MAIN不可取消/中断,系统自动触发,驱动核心剧情
支线任务SIDE玩家可自行接取/取消,独立剧情线
每日任务DAILY每天自动重置,可重复完成
每周任务WEEKLY每周自动重置,可重复完成
活动任务EVENT限时活动,管理员手动控制开启/关闭

任务生命周期

  1. 可接取 — 满足前置条件,显示在 GUI 的"可接取"分类
  2. 进行中 — 玩家已接取,显示在侧边栏追踪
  3. 已完成 — 所有目标完成,自动发放奖励
  4. 已过期 — 每日/每周任务到期自动重置

并发控制

# config.yml
max-concurrent-quests: 5  # 同时进行的最大任务数

🎯 目标类型

基础目标

类型说明target 示例
BREAK_BLOCK破坏方块STONE / DIAMOND_ORE
PLACE_BLOCK放置方块OAK_PLANKS
CRAFT_ITEM合成物品DIAMOND_SWORD
SMELT_ITEM熔炼物品IRON_INGOT
ENCHANT_ITEM附魔物品ANY
BREW_ITEM酿造药水ANY
CONSUME_ITEM消耗/食用物品GOLDEN_APPLE
CATCH_FISH钓鱼COD / ANY
KILL_MOB击杀怪物ZOMBIE / mm:BossName
KILL_PLAYER击杀玩家ANY
TAME_MOB驯服动物WOLF
SHEAR_SHEEP剪羊毛ANY
MILK_COW挤牛奶ANY
REACH_LOCATION到达指定位置world,100,64,200,5
TALK_TO_NPC与 NPC 对话NPC ID
DELIVER_ITEM交付物品给 NPCNPC_ID:MATERIAL:数量
CUSTOM自定义 (API 推进)自定义标识

剧情专用目标 v1.2+

类型说明target
PERMISSION_CHECK拥有指定权限后自动完成权限节点
PLAYER_CHAT玩家发送指定消息/关键词消息/正则
PLAYER_COMMAND玩家执行指定命令命令前缀
PLAYER_SNEAK玩家按 Shift 潜行ANY
PLAYER_JUMP玩家跳跃ANY
PLAYER_SWAP_HAND按 F 键切换主副手ANY
PLAYER_DROP_ITEM丢弃物品材料名 / ANY
PLAYER_PICKUP_ITEM拾取物品材料名 / ANY
PLAYER_INTERACT右键交互方块材料名 / ANY
PLAYER_INTERACT_ENTITY右键交互实体实体类型 / ANY
PLAYER_DEATH玩家死亡ANY
PLAYER_RESPAWN玩家重生ANY
PLAYER_BED_ENTER进入床ANY
PLAYER_ITEM_HOLD手持指定物品材料名
PLAY_TIME在线时长ANY (amount=秒)
EXPERIENCE_LEVEL达到经验等级ANY (amount=等级)
HEALTH_BELOW生命值低于指定值ANY (amount=半心)
WORLD_TIME世界时间在范围内world,startTick,endTick
WEATHER_CHECK天气为指定类型CLEAR / RAIN / THUNDER

📖 剧情系统

概览

剧情系统允许为任务配置丰富的故事体验,包括 NPC 沉浸式对话、阶段命令、通知提示、ActionBar 持续提示、NPC 发光引导等。

阶段 (Stage) 结构

每个任务由多个阶段组成,每个阶段包含一组目标和可选的命令/通知:

stages:
  stage1:
    start-commands:                    # 进入阶段时执行的命令
      - "playsound minecraft:... {player}"
      - "aq npcteam 29 aq_green {player}"
    start-notify:                      # 进入阶段时的通知
      type: TITLE
      title: "&6第一阶段"
      subtitle: "&e去和引导员对话"
    complete-notify:                   # 完成阶段时的通知
      type: BOSSBAR
      text: "&a阶段完成!"
      color: GREEN
      duration: 5
    complete-commands:                 # 完成阶段时执行的命令
      - "aq npcteam 29 aq_blue {player}"
    action-bar: "&e>>> 去和引导员对话 <<<"  # 持续显示的ActionBar
    objectives:
      obj1:
        type: TALK_TO_NPC
        npc-id: "29"
        amount: 1
        display: "&f与 {npc-name} &f对话"  # 支持 {npc-name} 占位符

NPC 发光引导

任务系统会自动管理 NPC 的发光颜色:

  • 绿色发光 — 当前阶段需要与该 NPC 交互 (尚未完成)
  • 蓝色发光 — 该 NPC 的目标已完成,或任务进行中但当前阶段不需要 NPC

使用 aq npcteam <npcId> <team> <player> 命令手动控制 NPC 发光颜色。

进行中对话 v1.9.3+

当任务进行中玩家再次点击 NPC 时,可以显示提醒对话:

stage2:
  in-progress-dialogue:
    npc-id: "29"
    npc-name: "&a&l引导员"
    lines:
      - "&7你还没有完成任务哦!"
      - "&7快去收集物资吧!"

💬 NPC 对话系统 v1.8+

概览

沉浸式 NPC 对话系统,支持失明/缓慢效果、NPC 发光、粒子效果、可点击的接受/拒绝按钮、距离自动退出等。

对话配置

objectives:
  obj1:
    type: TALK_TO_NPC
    npc-id: "29"                  # Citizens NPC 数字 ID
    amount: 1
    display: "&f与 {npc-name} &f对话"   # 侧边栏显示, {npc-name} 自动替换
    dialogue:
      npc-name: "&a&l引导员"       # NPC 名称 (带颜色代码)
      lines:                       # 对话内容 (逐行显示)
        - "&7欢迎来到冒险世界!"
        - "&7我是你的引导员。"
        - "&7接下来让我教你一些基础知识。"
      accept-text: "&a[接受]"      # 接受按钮文字
      reject-text: "&c[拒绝]"      # 拒绝按钮文字
      exit-distance: 5.0           # 超过此距离自动退出对话
      blindness: true              # 对话时给予失明效果
      slowness: true               # 对话时给予缓慢效果
      effect-duration: 200         # 效果持续时间 (tick)
      npc-glow: true               # NPC 是否发光
      npc-particle: "HAPPY_VILLAGER"  # NPC 头顶粒子效果

{npc-name} 占位符 v1.9.2.4+

在目标的 display 字段中使用 {npc-name} 占位符,系统会自动替换为对话配置中的 npc-name 值:

display: "&f与 {npc-name} &f对话"
# 如果 dialogue.npc-name 是 "&a&l引导员"
# 侧边栏显示: "与 引导员 对话" (带颜色)

解析优先级:目标自身的 dialogue → 同阶段其他目标的 dialogue → 阶段的 in-progress-dialogue

侧边栏颜色代码 FIXED v1.9.2.4

目标 display 字段中的颜色代码 (如 &f &b &a&l) 现在会正确显示在侧边栏中。

操作方式

按键说明
数字键 1接受对话,完成目标
数字键 2拒绝对话,退出
Shift (潜行)退出对话
走出范围超过 exit-distance 自动退出

自动触发系统 v1.6+

触发类型

类型说明额外参数
FIRST_JOIN玩家首次进入服务器 (没有完成过也没有正在进行该任务)
LOGIN玩家每次登录时触发
PERMISSION玩家拥有指定权限时触发permission: "group.vip"
QUEST_COMPLETE玩家完成指定前置任务后触发quest-id: "quest_01"

配置示例

# 首次加入触发
trigger:
  type: FIRST_JOIN
  delay: 40              # 延迟 40 tick (2秒) 后触发

# 完成前置任务后触发 (任务链)
trigger:
  type: QUEST_COMPLETE
  quest-id: "newbie_welcome"
  delay: 200             # 延迟 200 tick (10秒) 后触发

# 拥有权限时触发
trigger:
  type: PERMISSION
  permission: "group.vip"
  delay: 40

任务链

通过 QUEST_COMPLETE 类型可以创建任务链,玩家完成前一个任务后自动触发下一个:

# 任务1: newbie_welcome (首次加入自动触发)
# 任务2: newbie_survival (完成任务1后自动触发)
# 任务3: newbie_dominion (完成任务2后自动触发)

🔀 条件系统

概览

条件系统用于控制任务的接取、显示和自动触发。支持多条件 AND/OR 组合。

条件类型

条件说明参数
quest_completed已完成指定任务quest: "quest_id"
level经验等级要求min: 10
permission拥有指定权限node: "perm.node"
placeholderPlaceholderAPI 变量检查placeholder: "%xxx%", value: "xxx"
world在指定世界world: "world_name"
time游戏时间范围min: 0, max: 12000
npc_favor v2.0NPC 好感度 ≥ 指定值npc_favor:29:5
quest_points v2.0任务积分 ≥ 指定值quest_points:100
item_amount物品数量 ≥ 指定值item_amount:COAL:10
server当前子服名称server:survival

条件格式 (conditions 列表)

conditions:
  - "permission:vip.quest"        # 拥有权限
  - "!permission:banned.quest"    # 没有权限 (反向)
  - "level:10"                    # 等级 >= 10
  - "quest_completed:quest_01"    # 已完成任务
  - "npc_favor:29:5"              # NPC 29 好感度 >= 5
  - "quest_points:100"            # 任务积分 >= 100
  - "item_amount:DIAMOND:5"       # 背包钻石 >= 5
  - "server:survival"             # 当前在 survival 服

🖥️ GUI 界面

任务面板

玩家执行 /quests 打开任务面板 GUI,分类浏览:

  • 可接取 — 满足条件但未接取的任务
  • 进行中 — 当前正在进行的任务及进度
  • 已完成 — 历史完成记录

GUI 配置

# config.yml
gui:
  enabled: true
  title: "&6&l任务面板"
  rows: 6
  fill-item: BLACK_STAINED_GLASS_PANE

操作

操作说明
左键点击查看任务详情 / 接取任务
右键点击放弃任务 (支线/每日/每周)
Shift+点击追踪/取消追踪任务

🔔 通知系统

通知类型

类型说明参数
TITLE屏幕标题/字幕title, subtitle, fade-in, stay, fade-out
MESSAGE聊天栏消息text
BOSSBARBossBar 条text, color, style, duration

通知触发时机

配置键层级触发时机
accept-notify任务级任务被接取时
finished-notify任务级任务完成时
start-notify阶段级进入阶段时
complete-notify阶段级完成阶段时

配置示例

# 任务级通知
accept-notify:                     # 接取任务时的通知
  type: TITLE
  title: "&6新任务!"
  subtitle: "&e{quest}"
  fade-in: 10
  stay: 60
  fade-out: 20

accept-notify: false               # 禁用接取通知 (静默接取)

finished-notify:                   # 任务完成通知
  type: BOSSBAR
  text: "&a&l任务完成!"
  color: GREEN
  style: SOLID
  duration: 5

finished-notify: false             # 禁用完成通知

# 阶段级通知
stages:
  stage1:
    start-notify:                  # 进入阶段时
      type: TITLE
      title: "&e第一阶段"
      subtitle: "&7去和引导员对话"
    start-notify: false            # 禁用该阶段的开始通知
    complete-notify:               # 完成阶段时
      type: BOSSBAR
      text: "&a阶段完成!"
      color: GREEN
      duration: 5
    complete-notify: false         # 禁用该阶段的完成通知

禁用通知 v1.9.2.3+

将通知配置设为 false 可完全禁用该通知,适合自动触发的主线任务链 (避免弹出烦人的接取提示):

accept-notify: false    # 静默接取, 不弹出任何提示
finished-notify: false  # 静默完成

默认通知

如果任务没有配置 accept-notify,默认使用 messages.yml 中的 quest-accepted 消息。

🌐 跨服同步 v1.4+

概览

通过 BungeeCord/Velocity Plugin Messaging Channel 实现多服务器间的任务数据实时同步。需要 MySQL 数据库作为共享存储。

同步协议

动作说明
QUEST_START玩家在某服开始任务 → 其他服刷新缓存+侧边栏
QUEST_COMPLETE玩家在某服完成任务 → 其他服刷新缓存+侧边栏
QUEST_QUIT玩家在某服放弃任务
PROGRESS_UPDATE目标进度更新 → 其他服刷新侧边栏
POINTS_UPDATE任务点数更新
REFRESH请求刷新玩家全部缓存

配置

# config.yml
database:
  type: mysql              # 必须使用 mysql (跨服共享数据)
  mysql:
    host: localhost
    port: 3306
    database: adventurequests
    username: root
    password: "your_password"
    table-prefix: "aq_"

cross-server:
  enabled: true            # 启用跨服同步
  server-name: "lobby"     # 当前服务器名称 (每个服不同!)

跨服目标指定

可以指定目标必须在哪个子服完成:

objectives:
  obj1:
    type: COLLECT_ITEM
    target: COAL
    amount: 10
    require-server: "resource"  # 只在资源服检测该目标

玩家切服流程 v1.9.2.4

  1. 玩家在服务器 A 完成操作 → 写入数据库 + 广播消息
  2. 服务器 B 收到消息 → 清除缓存 + 刷新侧边栏
  3. 玩家切到服务器 B → 加入时再次刷新缓存 (延迟 3s + 5s 双重保险)
  4. COLLECT_ITEM 有 5 秒保护期,防止 HuskSync 未同步背包时覆盖进度

🧭 路径引导

功能

REACH_LOCATIONTALK_TO_NPC 类型的目标提供粒子路径引导,帮助玩家找到目标位置。

配置

# 任务目标中配置
objectives:
  obj1:
    type: REACH_LOCATION
    target: "world,100,64,200,5"
    amount: 1
    guide:
      enabled: true
      world: "world"
      x: 100
      y: 64
      z: 200
      radius: 5
      arrival-notify:
        type: TITLE
        title: "&a到达目的地!"
      arrival-sound: "entity.player.levelup"

❤️ NPC 好感度系统 v2.0+

概览

NPC 好感度系统为每个玩家追踪其对每个 NPC 的好感度值。好感度会在对话接受和任务完成时自动增长,也可通过管理员命令手动管理。好感度可用作任务接取条件,实现解锁更高级任务的机制。

自动给予

好感度和积分会在以下时机自动给予(可在 config.yml 中配置或关闭):

时机配置键默认值说明
对话接受npc-favor.dialogue-favor1玩家接受 NPC 对话后,对该 NPC +1 好感度
对话接受npc-favor.dialogue-points5玩家接受 NPC 对话后,+5 任务积分
任务完成npc-favor.complete-favor1任务完成后,对所有关联 NPC +1 好感度
任务完成npc-favor.complete-points5任务完成后,+5 任务积分

设为 false0 可关闭对应的自动给予。

config.yml 配置

npc-favor:
  dialogue-favor: 1       # 对话同意后给予好感度 (0或false关闭)
  dialogue-points: 5      # 对话同意后给予积分
  complete-favor: 1       # 任务完成后给予好感度
  complete-points: 5      # 任务完成后给予积分

管理员命令

命令说明
/aq favor add <玩家> <npcId> <数量>增加好感度
/aq favor take <玩家> <npcId> <数量>扣除好感度
/aq favor set <玩家> <npcId> <数量>设置好感度
/aq favor check <玩家> [npcId]查看好感度(不填npcId查全部)

任务条件

可以在任务或目标的 conditions 中使用好感度和积分作为前置条件:

conditions:
  - "npc_favor:29:5"      # 对NPC 29的好感度 >= 5
  - "quest_points:100"    # 任务积分 >= 100

PlaceholderAPI 变量

变量说明
%adventurequests_favor_<npcId>%对指定 NPC 的好感度
%adventurequests_favor_total%所有 NPC 好感度总和
%adventurequests_favor_list%所有 NPC 好感度列表 (npc:值)

数据存储

  • 文件存储 — 保存在 playerdata.ymlnpc-favor
  • 数据库存储 — 保存在 aq_npc_favor 表 (uuid, npc_id, favor)

⚙️ config.yml 主配置

核心设置

# config.yml
max-concurrent-quests: 5     # 同时进行的最大任务数
broadcast:
  enabled: true
  types: [MAIN]

gui:
  enabled: true

sidebar:
  update-ticks: 20

language: zh_CN               # 语言

数据库

database:
  type: sqlite                # sqlite / mysql
  mysql:
    host: localhost
    port: 3306
    database: adventurequests
    username: root
    password: ""
    table-prefix: "aq_"

跨服同步

cross-server:
  enabled: false
  sync-interval: 60           # 同步间隔 (秒)

📝 任务配置文件详解

文件位置

plugins/AdventureQuests/quests/
├── main/     # 主线任务 (type: MAIN, 不可取消)
├── side/     # 支线任务 (type: SIDE, 可取消)
├── daily/    # 每日任务 (type: DAILY, 自动重置)
├── weekly/   # 每周任务 (type: WEEKLY, 自动重置)
└── event/    # 活动任务 (type: EVENT, 管理员控制)

完整配置示例

# quests/main/newbie_welcome.yml
# ==========================================
# 任务基本信息
# ==========================================
id: newbie_welcome
type: MAIN                    # MAIN / SIDE / DAILY / WEEKLY / EVENT
display-name: "&6&l第一章 &e欢迎来到冒险世界"
description:
  - "&7欢迎来到冒险世界!"
  - "&7和引导员对话开始你的冒险之旅。"
icon: BOOK

# ==========================================
# 自动触发 (可选)
# ==========================================
trigger:
  type: FIRST_JOIN            # FIRST_JOIN / LOGIN / PERMISSION / QUEST_COMPLETE
  delay: 40                   # 延迟 tick (20=1秒)
  # quest-id: "前置任务ID"    # QUEST_COMPLETE 类型专用
  # permission: "perm.node"   # PERMISSION 类型专用

# ==========================================
# 通知配置 (可选, 设为 false 禁用)
# ==========================================
accept-notify: false           # 静默接取, 不弹提示
# accept-notify:
#   type: TITLE
#   title: "&6新任务!"
#   subtitle: "&e{quest}"

finished-notify:
  type: TITLE
  title: "&a&l任务完成!"
  subtitle: "&e恭喜完成第一章"

# ==========================================
# 完成奖励
# ==========================================
rewards:
  commands:
    - "eco give {player} 100"
    - "xp add {player} 50"
  messages:
    - "&a&l恭喜完成新手教程!奖励已发放。"

# ==========================================
# 任务阶段
# ==========================================
stages:
  stage1:
    start-commands:
      - "playsound minecraft:block.note_block.pling master {player}"
      - "aq npcteam 29 aq_green {player}"
    start-notify:
      type: TITLE
      title: "&6欢迎!"
      subtitle: "&e前去与引导员对话"
    action-bar: "&e&l>>> &f前往 &a引导员 &f处开始冒险 &e&l<<<"
    objectives:
      obj1:
        type: TALK_TO_NPC
        npc-id: "29"
        amount: 1
        display: "&f与 {npc-name} &f对话"   # {npc-name} 自动替换
        dialogue:
          npc-name: "&a&l引导员"
          lines:
            - "&7欢迎来到冒险世界!"
            - "&7我是你的引导员。"
            - "&7接下来去完成一些基础任务吧!"
          accept-text: "&a[好的,我准备好了]"
          reject-text: "&c[等一下...]"
          exit-distance: 5.0
          blindness: true
          slowness: true
          effect-duration: 200
          npc-glow: true
          npc-particle: "HAPPY_VILLAGER"

  stage2:
    start-notify:
      type: BOSSBAR
      text: "&6&l收集物资!&7按Shift+F打开菜单选择资源服"
      color: YELLOW
      style: SEGMENTED_10
      duration: 30
    complete-commands:
      - "aq npcteam 29 aq_blue {player}"
    in-progress-dialogue:       # 进行中再次点NPC时的提醒对话
      npc-id: "29"
      npc-name: "&a&l引导员"
      lines:
        - "&7你还没收集完物资哦!"
        - "&7按Shift+F去资源服吧!"
    objectives:
      obj1:
        type: COLLECT_ITEM
        target: COAL
        amount: 10
        display: "&f收集煤炭"
        require-server: "resource"  # 仅在资源服检测
      obj2:
        type: COLLECT_ITEM
        target: "*_LOG"             # 通配符: 任意原木
        amount: 10
        display: "&f收集任意原木"

目标字段参考

字段类型说明
type必填目标类型 (见目标类型页面)
target必填目标标识 (材料名/NPC ID/坐标等)
amount必填需要完成的数量
display可选侧边栏显示文本 (支持颜色代码和 {npc-name})
npc-id可选Citizens NPC 数字 ID (用于 NPC 类目标)
dialogue可选NPC 对话配置 (仅 TALK_TO_NPC)
require-server可选跨服指定: 仅在此服务器检测
conditions可选目标前置条件列表
fail-message可选条件不满足时的提示
daily-limit可选每日可推进次数上限 (0=不限)
weekly-limit可选每周可推进次数上限 (0=不限)
hidden可选隐藏目标描述 (剧情悬念)
progress-title可选进度变化时的 Title (支持 {progress} {goal})
progress-subtitle可选进度变化时的 Subtitle
guide可选路径引导配置

COLLECT_ITEM 通配符 v1.8+

target 支持通配符,以 * 开头匹配材料名后缀:

target: "*_LOG"       # 任意原木 (OAK_LOG, BIRCH_LOG, ...)
target: "*_PLANKS"    # 任意木板
target: "COAL"        # 精确匹配

⌨️ 命令列表

玩家命令

命令说明权限
/quests打开任务面板 GUIadventurequests.use
/quest info <ID>查看任务详情adventurequests.use
/quest accept <ID>接取任务adventurequests.use
/quest abandon <ID>放弃任务adventurequests.use
/quest track <ID>追踪/取消追踪任务adventurequests.use

管理员命令

命令说明权限
/aq reload重载配置和任务adventurequests.admin
/aq list列出所有任务adventurequests.admin
/aq give <玩家> <任务ID>给予玩家任务adventurequests.admin
/aq complete <玩家> <任务ID>强制完成任务adventurequests.admin
/aq reset <玩家> <任务ID>重置任务进度adventurequests.admin
/aq resetall <玩家>重置玩家所有任务adventurequests.admin
/aq progress <玩家> <任务ID> <目标> <数量>推进任务进度adventurequests.admin
/aq event start <任务ID>开启活动任务adventurequests.admin
/aq event stop <任务ID>关闭活动任务adventurequests.admin
/aq points <玩家> set/add/take <N>管理任务积分adventurequests.admin
/aq favor add <玩家> <npcId> <N>增加 NPC 好感度adventurequests.admin
/aq favor take <玩家> <npcId> <N>扣除 NPC 好感度adventurequests.admin
/aq favor set <玩家> <npcId> <N>设置 NPC 好感度adventurequests.admin
/aq favor check <玩家> [npcId]查看 NPC 好感度adventurequests.admin

🔐 权限节点

权限说明默认
adventurequests.use使用任务系统 (GUI/接取/放弃)所有人
adventurequests.admin管理员命令OP
adventurequests.admin.reload重载配置OP
adventurequests.admin.give给予任务OP
adventurequests.admin.complete强制完成OP
adventurequests.admin.reset重置进度OP
adventurequests.admin.event管理活动任务OP

🔗 PlaceholderAPI 变量

变量说明
%aq_active_count%当前进行中的任务数
%aq_completed_count%已完成任务总数
%aq_daily_completed%今日完成的每日任务数
%aq_weekly_completed%本周完成的每周任务数
%aq_quest_status_<ID>%指定任务状态
%aq_quest_progress_<ID>%指定任务进度百分比
%adventurequests_points%任务积分
%adventurequests_favor_<npcId>%对指定 NPC 的好感度
%adventurequests_favor_total%所有 NPC 好感度总和
%adventurequests_favor_list%好感度列表 (npc:值,npc:值)

📝 更新日志

v2.0.1 LATEST

  • FIX Shift+F 菜单冲突修复 — 仅在玩家有 PLAYER_SWAP_HAND 目标且条件满足时拦截事件,否则放行给 TrMenu 等菜单插件;任务完成后 Shift+F 立即恢复正常
  • FIX 跨服进度同步 — advanceStoryObjective 推进后立即广播 broadcastProgressUpdate;玩家下线/跳服时保存所有活跃任务进度并广播 REFRESH
  • IMPROVED 默认配置更新 — config.yml 启用数据库+跨服同步;messages.yml / guide.yml 更新为最新自定义版本;newbie.yml 旧任务迁移至 quests.yml

v2.0.0

  • NEW NPC 好感度系统 — 每个玩家对每个 NPC 独立追踪好感度值,支持文件/数据库持久化
  • NEW 好感度自动给予 — 对话接受/任务完成时自动增加好感度和积分 (config.yml npc-favor 节)
  • NEW /aq favor 管理命令 — add/take/set/check 四种操作,含 Tab 补全
  • NEW PAPI 好感度变量 — %adventurequests_favor_<npcId>%、favor_total、favor_list
  • NEW npc_favor / quest_points 条件 — 任务/目标条件支持好感度和积分检查
  • NEW 进度变量扩展 — 进度显示/Title 支持 {0}=当前 {1}=目标 {2}=target {3}=任务名
  • IMPROVED 货币文案统一 — Vault 经济显示为"银币",全部 UI/消息/编辑器已同步更新

v1.9.2.4

  • FIX Shift+F 兼容修复 — 延迟处理 PLAYER_SWAP_HAND 到下一 tick,避免干扰 TrMenu 等菜单插件
  • FIX 跨服侧边栏同步 — giveQuest 时广播 QUEST_START 通知其他服务器;玩家切服时双重延迟刷新缓存 (3s+5s)
  • NEW {npc-name} 占位符 — 目标 display 支持 {npc-name},自动从对话配置获取 NPC 名称
  • FIX 侧边栏颜色代码 — display 中的 &f &b &a&l 等颜色代码现在正确显示,不再被错误去除
  • IMPROVED 智能截断 — 侧边栏文本按纯文本长度截断,保留颜色代码前缀

v1.9.2.3

  • NEW per-quest accept-notify — 每个任务可自定义接取通知,设为 false 可完全禁用
  • NEW per-stage start/complete-notify: false — 阶段级通知可单独禁用
  • NEW finished-notify: false — 任务完成通知可禁用
  • FIX NPC 发光恢复 — 对话退出/拒绝后正确恢复绿色发光;接受后延迟刷新蓝色发光
  • NEW NotifyType.NONE — 支持 false 值禁用各级通知

v1.9.2.2

  • FIX 跨服缓存刷新 — 玩家加入时立即从数据库刷新缓存,延迟更新侧边栏
  • FIX PLAYER_SWAP_HAND ignoreCancelled — 设为 false 确保即使其他插件取消事件,AQ 仍可追踪
  • IMPROVED NPC 发光扫描 — 非 NPC 目标阶段时扫描所有阶段的 NPC 并设蓝色发光
  • NEW QUEST_COMPLETE 登录检查 — 玩家登录时也检查任务链触发,防止重启丢失

v1.9.1

  • NEW COLLECT_ITEM 高水位标记 — 进度只升不降,防止切服时背包为空导致清零
  • NEW 跨服保护期 — 玩家加入后 5 秒内不扫描 COLLECT_ITEM,等待 HuskSync 同步背包
  • IMPROVED reload 刷新 serverName — CrossServerSync 和 DatabaseStorage 均刷新服务器名

v1.9

  • NEW 进度显示管理器 — BOSSBAR/ACTIONBAR/MESSAGE 实时进度提示
  • NEW 进度 Title 提示 — 每次进度变化时弹出 Title (支持 {progress} {goal})
  • NEW PROGRESS_UPDATE 广播 — 跨服进度实时同步

v1.8

  • NEW NPC 沉浸式对话系统 — 失明/缓慢效果、NPC 发光、粒子、距离退出、接受/拒绝按钮
  • NEW COLLECT_ITEM 通配符 — 支持 *_LOG、*_PLANKS 等通配符匹配
  • NEW 进行中 NPC 对话 — in-progress-dialogue 配置
  • IMPROVED FIRST_JOIN 触发改进 — 不再依赖 hasPlayedBefore(),支持已有玩家

v1.7

  • NEW 路径引导系统 — 粒子路径引导玩家前往目标位置
  • NEW 每日/每周追踪器 — DailyWeeklyTracker 自动管理重置
  • IMPROVED 侧边栏性能 — 优化更新频率和渲染逻辑

v1.6

  • NEW NPC ID 匹配 — 支持 Citizens NPC 数字 ID 精确匹配
  • NEW 自动触发系统 — FIRST_JOIN / LOGIN / PERMISSION / QUEST_COMPLETE 四种触发方式
  • NEW 通知系统重构 — 支持 TITLE/MESSAGE/BOSSBAR 三种类型

v1.4

  • NEW 跨服数据同步 — MySQL + Plugin Messaging Channel
  • NEW require-server — 目标跨服指定

v1.2

  • NEW 剧情专用目标 — 19 种新目标类型 (跳跃/潜行/交换手/聊天/命令/死亡/...)
  • NEW 阶段条件/命令 — start-commands / complete-commands / conditions

v1.0

  • NEW 初始版本 — 主线/支线/每日/每周任务、GUI、侧边栏、基础目标类型