基础配置 config.yml
config.yml 是每个地牢必需的配置文件,定义了地牢的基础信息和进入要求。
# ===== 地牢信息 =====dungeon: name: "&6&l示例地牢" # 支持颜色代码 icon: DIAMOND_SWORD # Bukkit Material 名称 difficulty: 普通 description: - "&7一个简单的示例地牢" - "&7适合新手体验"
# ===== 世界配置 =====world: template: dungeon_example # 服务器根目录下的模板世界文件夹名 spawn: "0,64,0,0,0" # x,y,z,yaw,pitch
# ===== 进入要求 =====requirements: min_level: 1 max_level: 100 min_players: 1 max_players: 4 cooldown: 3600 # 秒 money_cost: 0 # 需要 Vault(0 = 不消耗) stamina_cost: 0 # 0 = 不消耗体力 required_items: # 进入时消耗 - "DIAMOND:1" # 格式:物品ID:数量 item_check_mode: ALL # ALL = 所有成员都需持有;LEADER = 仅队长持有 required_permissions: - "quedp.dungeon.example" placeholder_conditions: # PAPI 入场条件(需 PlaceholderAPI) - "%player_level% >= 30" # 运算符:>= <= > < == !=
# ===== 副本内限制 =====blacklist: commands: - "spawn" - "home" items: - "ENDER_PEARL" - "ELYTRA"
# ===== 时间限制 =====time: limit: 1800 # 秒(0 = 无限制) timeout_action: FAIL # FAIL = 标记失败;KICK = 踢出玩家
# ===== 实例限制 =====instance: max_instances: -1 # -1 = 无限制
# ===== 死亡检查 =====death_check_mode: strict# strict - 全队死亡后立即触发 all_death# lenient - 等待死亡脚本完成及待复活机会耗尽后再触发 all_deathblacklist.items 中的物品不能在副本内使用。玩家进入前还会检查头盔、胸甲、护腿和靴子槽;如果穿着黑名单装备,将拒绝本人或整个队伍进入,并提示先脱下。物品仅放在背包中不会阻止进入。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
dungeon.name | String | 文件夹名 | 显示名称,支持 & 颜色代码;/dg enter 可使用去色后的中文名称 |
dungeon.icon | Material | DIAMOND_SWORD | 菜单中显示的图标 |
dungeon.difficulty | String | 普通 | 难度标签 |
dungeon.description | List | 空 | 描述文本列表 |
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
world.template | String | world | 服务器根目录下的模板世界文件夹名 |
world.spawn | String | 0,64,0,0,0 | 格式:x,y,z,yaw,pitch |
副本世界的技术名称仍由 QueDP 自动生成,用于保证多个实例唯一并在结束后清理;聊天插件不要直接显示这个技术名称。安装 PlaceholderAPI 后,建议在聊天格式中使用 %quedp_instance_name% 获取配置里的中文显示名(包含颜色)。/dg enter 只接受副本 ID 或纯文本名称,输入 &/§ 颜色代码会被拒绝。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
requirements.min_level | Int | 1 | 最低等级要求 |
requirements.max_level | Int | 100 | 最高等级限制 |
requirements.min_players | Int | 1 | 最少玩家数 |
requirements.max_players | Int | 4 | 最多玩家数 |
requirements.cooldown | Int | 3600 | 再次进入的冷却(秒) |
requirements.money_cost | Double | 0 | 入场费用(需 Vault);别名 money |
requirements.stamina_cost | Int | 0 | 消耗的体力值 |
requirements.required_items | List | 空 | 进入时消耗的物品,格式 物品ID:数量 |
requirements.item_check_mode | Enum | ALL | ALL=所有成员都需持有;LEADER=仅队长持有 |
requirements.required_permissions | List | 空 | 所需权限节点 |
requirements.placeholder_conditions | List | 空 | PAPI 入场条件(需 PlaceholderAPI),别名 变量条件 |
PAPI 条件格式为 "%占位符% 运算符 值",支持运算符 >= <= > < == !=。左右两边都会用 PlaceholderAPI 解析,两边均为数字时按数值比较,否则仅支持 == / !=;不写运算符时按布尔判断(结果为 true/1/yes 视为通过)。队伍进入时,每个在线成员都需满足。
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
time.limit | Int | 1800 | 时间限制(秒) |
time.timeout_action | String | FAIL | 超时处理:FAIL=标记失败并触发失败脚本;KICK=踢出玩家 |
instance.max_instances | Int | -1 | 同时运行的最大实例数(-1 = 无限制) |
death_check_mode | String | strict | strict=全队死亡立即触发 all_death;lenient=等待死亡脚本完成及待复活机会耗尽后再触发 all_death。配了 revive 段时自动按 lenient 处理 |
revive | Section | 无 | 复活系统(次数、自动 / 道具 / 队友复活),见 复活配置 |
requirements.daily_limit / 要求.每日次数 | Int | 0 | 每日进入次数上限,0 = 不限;重置时刻在主配置 dungeon.daily_reset。队伍进入时每个在线队员都检查。PAPI:%quedp_dungeon_<id>_daily_used% / daily_left% |
sweep.reward / 扫荡.奖励 | String | 无 | 有这个键才启用扫荡;通关过至少一次的玩家用 /dg sweep <副本> [次数],消耗与正常进入完全相同(冷却 / 每日次数 / 体力 / 金币 / 门票),不建世界直接发奖并计入完成次数 |
sweep.multiplier / 扫荡.倍率 | Double | 1.0 | 作用于金钱 / 经验 / 物品数量 |
sweep.max_times / 扫荡.最大次数 | Int | 1 | 单次命令最多扫几遍,上限 20;资源不够时按能扫的次数截断 |
sweep.require_clear_times / 扫荡.需要通关次数 | Int | 1 | 通关本副本满这么多次才开放扫荡 |
sweep.allow_external_reward / 扫荡.外部奖励 | Boolean | false | 发奖前触发可取消的 DungeonSweepRewardEvent,附属插件可以接管发奖(例如按掉落池结算)。开启后 sweep.reward 可以留空 |
写了 all_death 时只执行脚本,副本是否结束取决于脚本内是否调用 action.fail(...);没写 all_death 时,全灭 2 秒后直接判定副本失败。死亡脚本带复活倒计时或 action.wait() 时建议改用 lenient,避免最后一名玩家的复活流程还没走完就判定全灭。完整时序见 脚本配置 · 死亡流程。