MythicDungeonSweep ¥18
把“刷本”变成“扫荡”:消耗 → 进度 → 发奖,全程 MySQL 持久化
插件介绍
适合“刷材料”的副本
把“反复进副本刷掉落”变成“消耗扫荡券/材料 → 等进度条走完 → 直接领掉落”。玩家省时间,服主也能更精确地控产出。
MythicDungeonSweep(简称 MDS)是一个副本扫荡插件:玩家执行命令选择副本后,插件会先检查并扣除消耗(支持 MMOItems 物品消耗、Vault 金币),然后开启一段“扫荡计时”。计时结束后,根据你配置的权重奖励池随机发放奖励;背包满则掉落在脚下。
插件使用 MySQL 持久化玩家扫荡进度:玩家断线、重启服务器后仍可续扫,避免“卡进度/丢进度”。同时记录每个玩家各副本的完成次数,并提供 PAPI 占位符用于计分板/菜单展示。
说人话:玩家输入 /myds f1,扣 1 个“副本扫荡模块”,等待 20 秒,然后按权重抽奖励发给他。
主要功能
- MySQL 断线续扫 —— 扫荡进度实时落库(带节流),下线/关服会立即保存
- 副本独立配置 —— 每个副本一个
plugins/MythicDungeonSweep/dungeons/*.yml文件 - 消耗系统 —— 支持 MMOItems 物品消耗(type+id+amount),可叠加 Vault 金币费用
- 权重奖励池 —— 配置多条奖励,按 weight 抽取;支持数量区间
- 奖励堆叠上限 —— 控制“本次扫荡最多给多少堆奖励”,更像真实掉落
- 最少不同奖励数 —— 可要求“至少抽到 N 种不同奖励”
- Title 进度条 —— 标题/副标题按 tick 刷新,副标题可显示进度条
- 全服广播 —— 可选广播“某玩家正在扫荡某副本”(支持只在新扫荡时广播)
- PAPI 占位符 —— 展示扫荡状态、当前副本、进度百分比、进度条、剩余时间、统计次数
命令列表
主命令:/myds
| 命令 | 说明 | 权限 |
|---|---|---|
/myds <副本ID> | 开始扫荡指定副本(副本ID=配置文件名,如 f1/f2) | myds.use(同时会检查该副本自身 permission 字段) |
/myds reload | 重载主配置与副本配置 | myds.reload |
副本 ID 不区分大小写,但最终以文件名为准(例如 f1.yml → f1)。
权限节点
| 权限 | 说明 | 默认 |
|---|---|---|
myds.use | 允许使用 /myds <副本ID> 开始扫荡 | 所有人 |
myds.reload | 允许使用 /myds reload | OP |
副本独立权限
每个副本配置里还可以设置 permission 字段(例如 cmi.command.portal.f1)。当该字段不为空时,玩家必须拥有该权限才能扫荡该副本。
PlaceholderAPI 占位符
需要安装 PlaceholderAPI 才能使用。插件注册的占位符标识符为 mds。
| 占位符 | 说明 |
|---|---|
%mds_active% | 是否正在扫荡:yes/no |
%mds_dungeon% | 当前扫荡副本 ID(不在扫荡时为 -) |
%mds_dungeon_display% | 当前扫荡副本显示名(已自动上色;不在扫荡时为 -) |
%mds_progress_int% | 进度百分比(整数,0-100) |
%mds_progress_decimal% | 进度百分比(两位小数,如 12.34) |
%mds_bar% | 进度条字符串(█/░,颜色可在主配置自定义) |
%mds_elapsed_ticks% | 已扫荡 tick 数 |
%mds_total_ticks% | 总 tick 数 |
%mds_time_left_seconds% | 剩余时间(秒,保留 1 位小数) |
%mds_sweeps_total% | 累计完成扫荡次数(全副本总和) |
%mds_sweeps_f1% | 指定副本完成次数(下划线格式,副本ID=文件名) |
%mds_sweeps,f1% | 指定副本完成次数(逗号格式) |
使用教程
安装插件
将 MythicDungeonSweep.jar 放入 plugins 文件夹,确保 MythicLib 与 MMOItems 已安装。
配置数据库
编辑 plugins/MythicDungeonSweep/config.yml 的 database 部分,填入 MySQL 连接信息。数据库需要提前创建好,表会自动创建。
配置副本
插件会生成 plugins/MythicDungeonSweep/dungeons 目录与默认副本文件。你可以按模板添加更多副本(例如 f14.yml)。
重载配置
/myds reload
让玩家开始扫荡
/myds f1
想让“扫荡券”更像门票:把 consume-items 配成一个 MMOItems 物品(例如 “副本扫荡模块”),并把它做成可交易/可掉落/可商城购买。
主配置
主配置文件路径:plugins/MythicDungeonSweep/config.yml
数据库配置
database:
host: 127.0.0.1
port: 3306
database: dungeonsweep
username: dungeonsweep
password: "dungeonsweep"
pool:
maximum-pool-size: 30
minimum-idle: 2
max-lifetime: 1800000
connection-timeout: 5000
idle-timeout: 600000
扫荡行为与显示
sweep:
broadcast-chat: true
broadcast-only-fresh-start: true
title-update-interval-ticks: 15
database-save-interval-ticks: 40
bar-length: 20
bar-filled: "&a"
bar-empty: "&7"
| 字段 | 说明 | 建议 |
|---|---|---|
broadcast-chat | 是否全服广播玩家正在扫荡 | 人多服务器建议开 |
broadcast-only-fresh-start | 只在“新开始”扫荡时广播;断线续扫进服是否再广播 | 建议 true,避免刷屏 |
title-update-interval-ticks | Title/副标题刷新间隔(tick) | 10-20 比较平滑 |
database-save-interval-ticks | 扫荡进度写入 MySQL 的最小间隔(tick) | 40 左右较平衡 |
bar-length | PAPI %mds_bar% 的总格数 | 20 常用 |
bar-filled | 已填充部分颜色(legacy & 颜色码) | &a 等 |
bar-empty | 未填充部分颜色(legacy & 颜色码) | &7 等 |
消息配置
消息位于 messages 下,支持 MiniMessage(例如 <gradient>)与传统颜色码(&)。
副本配置
副本配置目录:plugins/MythicDungeonSweep/dungeons。文件名即副本 ID(例如 f1.yml → f1)。
基础字段
| 字段 | 说明 | 示例 |
|---|---|---|
display-name | 副本显示名 | 帝国训练营 |
duration-ticks | 扫荡时长(tick,20 tick = 1 秒) | 400(=20 秒) |
permission | 扫荡该副本额外需要的权限(留空=不检查) | cmi.command.portal.f1 |
vault-cost | Vault 金币费用(需要安装 Vault+经济插件;可为 0) | 1000 |
消耗配置(MMOItems 物品)
consume-items 为一个列表,每条包含 MMOItems 的 type、id 与 amount:
consume-items:
- type: MATERIAL_HX
id: 副本扫荡模块
amount: 1
奖励池配置
rewards:
min-distinct: 1
max-reward-stacks: 6
entries:
- type: MATERIAL_FB
id: 帝国精钢锭
weight: 24
amount-min: 1
amount-max: 25
奖励池说明
奖励池核心思想:把每个奖励当成“掉落条目”,用 weight 控制概率权重,用 amount-min/max 控制数量区间。
| 字段 | 说明 |
|---|---|
min-distinct | 本次扫荡至少抽到多少种“不同”的奖励(会自动上限到 entries 数量) |
max-reward-stacks | 本次扫荡最多给多少“堆”奖励(上限) |
entries[].weight | 权重(必须 > 0),权重越高越容易被抽到 |
entries[].amount-min/max | 本条奖励发放数量范围(amount-max 必须 ≥ amount-min) |
建议把“稀有图纸/遗物”权重设低且数量固定(1-1),把“材料碎片/锭”权重设高且数量区间更大(1-25),掉落体验会很像真实刷本。
依赖插件与版本
| 插件/组件 | 是否必须 | 说明 |
|---|---|---|
| MySQL 5.7+ | 必须 | 用于持久化扫荡进度与统计 |
| Paper 1.20+ | 必须 | 服务端核心 |
| MythicLib | 必须 | MMOItems 依赖库(plugin.yml 中为 depend) |
| MMOItems | 必须 | 用于消耗与奖励的物品来源(plugin.yml 中为 depend) |
| Vault + 经济插件 | 可选 | 启用 vault-cost 金币费用 |
| PlaceholderAPI | 可选 | 提供 %mds_*% 占位符 |
技术信息
| 项目 | 信息 |
|---|---|
| 插件名称 | MythicDungeonSweep |
| 主命令 | /myds |
| API 版本 | 1.20 |
| 数据库表 | mds_sweep_state(扫荡进度) / mds_sweep_stats(完成次数) |
| 行为特性 | 下线保存进度,进服自动尝试续扫;背包满奖励掉落脚下 |
常见问题
vault-cost,就需要安装 Vault 与任意经济实现(如 EssentialsX Economy 等)。不想用金币费用,把 vault-cost 设为 0 即可。type(类型)与 id(物品ID)。插件会在控制台提示缺失的条目;缺失的条目在运行时不会生效。%mds_bar% 与 %mds_progress_int%。进度条的长度与颜色可在主配置 sweep.bar-* 中调整。