跳转到内容

基础配置 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_death

blacklist.items 中的物品不能在副本内使用。玩家进入前还会检查头盔、胸甲、护腿和靴子槽;如果穿着黑名单装备,将拒绝本人或整个队伍进入,并提示先脱下。物品仅放在背包中不会阻止进入。

字段类型默认值说明
dungeon.nameString文件夹名显示名称,支持 & 颜色代码;/dg enter 可使用去色后的中文名称
dungeon.iconMaterialDIAMOND_SWORD菜单中显示的图标
dungeon.difficultyString普通难度标签
dungeon.descriptionList空描述文本列表
字段类型默认值说明
world.templateStringworld服务器根目录下的模板世界文件夹名
world.spawnString0,64,0,0,0格式:x,y,z,yaw,pitch

副本世界的技术名称仍由 QueDP 自动生成,用于保证多个实例唯一并在结束后清理;聊天插件不要直接显示这个技术名称。安装 PlaceholderAPI 后,建议在聊天格式中使用 %quedp_instance_name% 获取配置里的中文显示名(包含颜色)。/dg enter 只接受副本 ID 或纯文本名称,输入 &/§ 颜色代码会被拒绝。

字段类型默认值说明
requirements.min_levelInt1最低等级要求
requirements.max_levelInt100最高等级限制
requirements.min_playersInt1最少玩家数
requirements.max_playersInt4最多玩家数
requirements.cooldownInt3600再次进入的冷却(秒)
requirements.money_costDouble0入场费用(需 Vault);别名 money
requirements.stamina_costInt0消耗的体力值
requirements.required_itemsList空进入时消耗的物品,格式 物品ID:数量
requirements.item_check_modeEnumALLALL=所有成员都需持有;LEADER=仅队长持有
requirements.required_permissionsList空所需权限节点
requirements.placeholder_conditionsList空PAPI 入场条件(需 PlaceholderAPI),别名 变量条件

PAPI 条件格式为 "%占位符% 运算符 值",支持运算符 >= <= > < == !=。左右两边都会用 PlaceholderAPI 解析,两边均为数字时按数值比较,否则仅支持 == / !=;不写运算符时按布尔判断(结果为 true/1/yes 视为通过)。队伍进入时,每个在线成员都需满足。

字段类型默认值说明
time.limitInt1800时间限制(秒)
time.timeout_actionStringFAIL超时处理:FAIL=标记失败并触发失败脚本;KICK=踢出玩家
instance.max_instancesInt-1同时运行的最大实例数(-1 = 无限制)
death_check_modeStringstrictstrict=全队死亡立即触发 all_death;lenient=等待死亡脚本完成及待复活机会耗尽后再触发 all_death。配了 revive 段时自动按 lenient 处理
reviveSection无复活系统(次数、自动 / 道具 / 队友复活),见 复活配置
requirements.daily_limit / 要求.每日次数Int0每日进入次数上限,0 = 不限;重置时刻在主配置 dungeon.daily_reset。队伍进入时每个在线队员都检查。PAPI:%quedp_dungeon_<id>_daily_used% / daily_left%
sweep.reward / 扫荡.奖励String无有这个键才启用扫荡;通关过至少一次的玩家用 /dg sweep <副本> [次数],消耗与正常进入完全相同(冷却 / 每日次数 / 体力 / 金币 / 门票),不建世界直接发奖并计入完成次数
sweep.multiplier / 扫荡.倍率Double1.0作用于金钱 / 经验 / 物品数量
sweep.max_times / 扫荡.最大次数Int1单次命令最多扫几遍,上限 20;资源不够时按能扫的次数截断
sweep.require_clear_times / 扫荡.需要通关次数Int1通关本副本满这么多次才开放扫荡
sweep.allow_external_reward / 扫荡.外部奖励Booleanfalse发奖前触发可取消的 DungeonSweepRewardEvent,附属插件可以接管发奖(例如按掉落池结算)。开启后 sweep.reward 可以留空

写了 all_death 时只执行脚本,副本是否结束取决于脚本内是否调用 action.fail(...);没写 all_death 时,全灭 2 秒后直接判定副本失败。死亡脚本带复活倒计时或 action.wait() 时建议改用 lenient,避免最后一名玩家的复活流程还没走完就判定全灭。完整时序见 脚本配置 · 死亡流程。