插件介绍

适合“刷材料”的副本

把“反复进副本刷掉落”变成“消耗扫荡券/材料 → 等进度条走完 → 直接领掉落”。玩家省时间,服主也能更精确地控产出。

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.ymlf1)。

权限节点

权限说明默认
myds.use允许使用 /myds <副本ID> 开始扫荡所有人
myds.reload允许使用 /myds reloadOP

副本独立权限

每个副本配置里还可以设置 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 文件夹,确保 MythicLibMMOItems 已安装。

配置数据库

编辑 plugins/MythicDungeonSweep/config.ymldatabase 部分,填入 MySQL 连接信息。数据库需要提前创建好,表会自动创建。

配置副本

插件会生成 plugins/MythicDungeonSweep/dungeons 目录与默认副本文件。你可以按模板添加更多副本(例如 f14.yml)。

重载配置

/myds reload

让玩家开始扫荡

/myds f1

想让“扫荡券”更像门票:把 consume-items 配成一个 MMOItems 物品(例如 “副本扫荡模块”),并把它做成可交易/可掉落/可商城购买。

主配置

主配置文件路径:plugins/MythicDungeonSweep/config.yml

数据库配置

YAMLconfig.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

扫荡行为与显示

YAMLconfig.yml
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-ticksTitle/副标题刷新间隔(tick)10-20 比较平滑
database-save-interval-ticks扫荡进度写入 MySQL 的最小间隔(tick)40 左右较平衡
bar-lengthPAPI %mds_bar% 的总格数20 常用
bar-filled已填充部分颜色(legacy & 颜色码)&a 等
bar-empty未填充部分颜色(legacy & 颜色码)&7 等

消息配置

消息位于 messages 下,支持 MiniMessage(例如 <gradient>)与传统颜色码(&)。

副本配置

副本配置目录:plugins/MythicDungeonSweep/dungeons。文件名即副本 ID(例如 f1.ymlf1)。

基础字段

字段说明示例
display-name副本显示名帝国训练营
duration-ticks扫荡时长(tick,20 tick = 1 秒)400(=20 秒)
permission扫荡该副本额外需要的权限(留空=不检查)cmi.command.portal.f1
vault-costVault 金币费用(需要安装 Vault+经济插件;可为 0)1000

消耗配置(MMOItems 物品)

consume-items 为一个列表,每条包含 MMOItems 的 typeidamount

YAMLdungeons/f1.yml
consume-items:
  - type: MATERIAL_HX
    id: 副本扫荡模块
    amount: 1

奖励池配置

YAMLdungeons/f1.yml
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(完成次数)
行为特性下线保存进度,进服自动尝试续扫;背包满奖励掉落脚下

常见问题

不会。插件会把扫荡进度写入 MySQL;玩家下线会立即保存,进服会自动尝试从数据库续扫。
如果你给某副本配置了 vault-cost,就需要安装 Vault 与任意经济实现(如 EssentialsX Economy 等)。不想用金币费用,把 vault-cost 设为 0 即可。
请确认 MMOItems 里确实存在该 type(类型)与 id(物品ID)。插件会在控制台提示缺失的条目;缺失的条目在运行时不会生效。
安装 PlaceholderAPI 后使用 %mds_bar%%mds_progress_int%。进度条的长度与颜色可在主配置 sweep.bar-* 中调整。