插件介绍

不只是副本入场券

虽然名字里带着"地牢",但它能干的远不止副本入场——只要你的需求是"检查条件 → 扣费 → 执行命令",这个插件就能干。

MythicDPJoin 是一款基于 MySQL 数据库的地牢入场券管理插件,专为 Paper 1.20+ 服务器打造。管理员可以在配置文件中定义多个副本的进入条件,包括入场券点数、Vault 经济、PlayerPoints、经验等级、物品消耗、权限检测、PAPI 变量检测等,一行命令就能让玩家进入副本。

支持多种货币模式(全满足 / 任选其一)、每日次数限制、副本独立冷却、概率奖励命令、Title/ActionBar/音效反馈、全服广播,以及每日凌晨自动重置入场券点数(VIP 可额外加点)。

说人话:玩家输入 /rcj join F1,插件检查条件、扣费、执行命令,一条龙服务。

它还能这么用

每日签到 / 每日宝箱

不配任何货币,只设 max-dailychance-commands,就是一个带概率奖励的每日签到系统。

活动入场券

节日活动、限时 Boss 战、PVP 竞技场,给玩家发入场券点数当门票,活动结束直接改配置关掉。

付费传送 / 付费功能

commands 配成传送命令或者任意你想执行的指令,花钱执行命令,本质上就是一个"付费按钮"。

抽奖机

不要副本命令,只配 chance-commands,多层概率叠加,就是一台命令驱动的抽奖机。

主要功能

  • 入场券点数系统 —— 管理员给点数,玩家消耗点数进副本,简单明了
  • 多货币支持 —— Vault 经济 / PlayerPoints / 经验等级 / 入场券点数,四种货币随意搭配
  • 双货币模式 —— all 模式全部扣除,any 模式按优先级任选一种够付的扣
  • 丰富的进入条件 —— 物品消耗、权限检测、PAPI 变量检测、世界限制、游戏模式、时间段、附近玩家数、最低血量、背包空位
  • 每日次数限制 —— 每人每天限制进入次数,防止无限刷本
  • 副本独立冷却 —— 每个副本可以设置单独的冷却时间
  • 概率奖励命令 —— 进入副本后可按概率执行额外命令,做抽奖也行
  • 反馈效果 —— Title 大标题、副标题、ActionBar 消息、成功/失败音效、全服广播,全套
  • 每日自动重置 —— 凌晨 00:00 自动重置所有玩家点数,VIP 权限可额外加点
  • MySQL 数据库 —— 支持 MySQL 5.7+,多服务器共享数据
  • 命令拦截保护 —— 玩家直接输入副本命令时也会检查是否有足够货币,防止绕过
  • PlaceholderAPI —— 提供 %rcj_points% 变量,可用于计分板或其他插件显示

命令列表

主命令:/rcj

命令说明权限
/rcj give <玩家> <点数>给指定在线玩家添加入场券点数rcj.admin
/rcj take <玩家> <数量>扣除指定在线玩家的入场券点数rcj.admin
/rcj set <玩家> <点数>直接设置指定在线玩家的入场券点数rcj.admin
/rcj giveall <点数>给所有在线玩家添加入场券点数rcj.admin
/rcj join <副本ID>消耗货币进入副本(ID 不区分大小写)rcj.join
/rcj check查看自己的入场券点数rcj.use
/rcj check <玩家>查看指定在线玩家的入场券点数rcj.admin
/rcj top查看入场券点数排行榜(前 10 名)rcj.use
/rcj list列出所有已配置的副本及基本费用rcj.use
/rcj reload重载配置文件rcj.admin
/rcj help显示帮助信息rcj.use

直接输入 /rcj 不带参数也会显示帮助信息。

权限节点

权限说明默认
rcj.use基础使用权限,绑定在 /rcj 命令上所有人
rcj.admin管理员权限,可以 give/take/set/giveall/reload/查看他人点数OP
rcj.join加入副本权限,允许使用 /rcj join 命令所有人
rcj.bonus.vip每日重置时额外获得点数(数量在配置文件中设定)需手动授权
rcj.bonus.svip每日重置时额外获得更多点数(与 vip 累加)需手动授权

rcj.bonus.* 权限节点可以在 config.yml 的 daily-reset.bonus-permissions 中自定义,不限于 vip/svip。

PlaceholderAPI 占位符

需要安装 PlaceholderAPI 才能使用。插件注册的占位符标识符为 rcj

占位符说明
%rcj_points%显示当前玩家的入场券点数(异步缓存,约 3 秒更新一次)

适合用在计分板、TAB 列表、聊天格式等地方展示玩家的入场券余额。

此外,副本配置中的 papi-check 字段可以使用任意 PlaceholderAPI 变量作为进入条件检测:

YAMLconfig.yml
papi-check:
  - "%player_level%>=10"    # 要求玩家等级 ≥ 10
  - "%某插件_变量%>=某个值"  # 任意 PAPI 变量

使用教程

安装插件

将 MythicDPJoin.jar 放入 plugins 文件夹,确保 Vault 已安装。启动服务器,插件会自动生成 config.yml 和 examples.yml 模板文件。

配置数据库

编辑 config.yml 中的 database 部分,填入你的 MySQL 连接信息。数据库需要提前创建好,表会自动生成。

配置副本

参考 examples.yml 模板文件,在 config.yml 的 dungeons: 下添加副本配置。每个副本用一个唯一 ID(如 F1、F2),按需设置费用、条件和命令。

重载配置

/rcj reload

给玩家入场券

/rcj give 玩家名 10

让玩家进入副本

/rcj join F1 —— 或者用 NPC 插件、按钮插件绑定这个命令,玩家点一下就进了。

货币模式说明

all 模式(默认)

所有配置的货币条件都要满足并全部扣除。比如同时配了 vault: 1000joinpoint: 1,玩家必须同时有 1000 冒险币和 1 点入场券,两者都会被扣除。

any 模式

cost-priority 的优先级顺序,找到第一个够付的货币扣除即可。比如优先级是 joinpoint > vault,先检查入场券够不够,够就扣入场券;不够再检查冒险币。

每日自动重置

每天凌晨 00:00(系统时间),插件会自动将所有玩家的入场券点数重置为 daily-reset.default-points 的值。拥有 bonus-permissions 中配置的权限的玩家会额外获得对应的加点(累加),支持 LuckPerms 离线玩家检测。在线玩家会收到重置通知。

配置文件

插件的配置文件在 plugins/MythicDPJoin/config.yml,首次启动会自动生成。同时会生成 examples.yml 模板文件(仅供参考,不会被加载)。

基础设置

YAMLconfig.yml
prefix: "&7[&6起源之旅&7] &r"    # 消息前缀,支持颜色代码
cooldown: 3                       # 全局冷却时间(秒),防止重复点击

每日重置配置

YAMLconfig.yml
daily-reset:
  default-points: 15              # 每日重置后所有玩家的基础点数
  bonus-permissions:              # 拥有指定权限的玩家额外加点(累加)
    - permission: "rcj.bonus.vip"
      bonus: 3                    # VIP 额外 +3,总共 15+3=18
    - permission: "rcj.bonus.svip"
      bonus: 5                    # SVIP 额外 +5,若同时有 VIP 则 15+3+5=23

数据库配置

YAMLconfig.yml
database:
  host: "localhost"               # 数据库地址
  port: 3306                      # 端口
  database: "mythicdpjoin"        # 数据库名(需要提前创建好)
  username: "root"                # 用户名
  password: ""                    # 密码
  pool-size: 15                   # HikariCP 连接池大小

副本配置

每个副本在 dungeons: 下以唯一 ID 定义,支持以下所有字段:

字段说明默认值
cost-mode货币模式:all=全部满足并扣除,any=任选一种all
cost-priorityany 模式下的货币优先级vault > joinpoint > playerpoints > exp-level
joinpoint入场券点数消耗不配则不检测
vaultVault 冒险币消耗不配则不检测
playerpointsPlayerPoints 蓝宝石消耗不配则不检测
exp-level原版经验等级消耗不配则不检测
items物品检测与消耗不配则不检测
permissions权限检测(仅检测不扣除)不配则不检测
papi-checkPAPI 变量条件检测(仅检测)不配则不检测
min-players附近 10 格内最少玩家数不配则不检测
max-daily每人每天最多进入次数不配则不限制
dungeon-cooldown此副本独立冷却秒数不配则不冷却
world限制在指定世界才能进入不配则不限制
gamemode限制指定游戏模式不配则不限制
game-time游戏内时间范围,如 0-12000不配则不限制
min-health最低生命值要求不配则不检测
empty-slots背包至少需要的空位数不配则不检测
commands通过后以玩家身份执行的命令
console-commands通过后以控制台身份执行的命令
chance-commands概率执行的玩家命令
chance-console-commands概率执行的控制台命令
title成功进入后的 Title 大标题
subtitle副标题
actionbarActionBar 消息
sound-success成功音效(Bukkit Sound 枚举名)
sound-fail失败音效
broadcast全服广播消息
messages各条件不满足时的提示消息

所有文本字段支持 MiniMessage 格式和传统 & 颜色代码,命令字段支持 %player% 变量。

物品检测格式

使用分号分隔的键值对:

YAMLconfig.yml
items:
  - "material=DIAMOND_SWORD;name=&6神剑;name-match=exact;lore=传说之刃;lore-match=fuzzy;amount=1"
说明
material / 材质物品材质(Bukkit Material 枚举名)
name物品名称
name-match名称匹配方式:exact=精确 / fuzzy=模糊(默认)
lore物品 Lore 内容
lore-matchLore 匹配方式:exact=精确 / fuzzy=模糊(默认)
amount需要的数量

消息字段

messages: 下可配置以下消息键,{need} 占位符会替换为对应的需求数量:

YAMLconfig.yml
messages:
  no-joinpoint: "需要{need}张入场券!"
  no-vault: "需要{need}冒险币!"
  no-playerpoints: "需要{need}蓝宝石!"
  no-exp-level: "需要{need}级经验!"
  no-cost: "你没有足够的货币!"            # any 模式下全部货币不足时显示
  no-items: "你没有足够的物品!"
  no-papi: "你的条件不满足!"
  no-permission: "你没有权限进入此副本!"
  no-world: "你必须在指定世界!"
  no-gamemode: "请切换到指定游戏模式!"
  no-min-players: "附近玩家不足!需要{need}人!"
  no-max-daily: "今日已达上限({need}次)!"
  no-game-time: "当前时间无法进入!"
  no-min-health: "生命值不足!需要{need}点!"
  no-empty-slots: "背包空间不足!需要{need}个空位!"
  success: "成功进入副本!"

依赖插件与版本

插件是否必须说明
Vault必须经济系统,用于冒险币的检测和扣除
MySQL 5.7+必须数据库,需要提前创建好库,表会自动生成
Paper 1.20.1必须服务端核心,基于 Paper API 开发
PlaceholderAPI可选提供 %rcj_points% 变量,并支持 papi-check 条件检测
PlayerPoints可选提供蓝宝石货币的检测和扣除
LuckPerms可选每日重置时检测离线玩家的 bonus 权限,也用于副本权限检测

技术信息

项目信息
插件名称MythicDPJoin
版本1.0
服务端Paper 1.20.1
Java 版本17+
API 版本1.20
数据库MySQL 5.7+(通过 HikariCP 5.1.0 连接池)
MySQL 驱动mysql-connector-j 8.0.33
经济系统VaultAPI 1.7.1
点券系统PlayerPoints 3.2.7
变量系统PlaceholderAPI 2.11.6
权限系统LuckPerms API 5.4

常见问题

Vault 是硬依赖,必须安装。去下载 Vault 插件放到 plugins 文件夹,然后重启服务器。
检查 config.yml 中的 database 配置是否正确,确保 MySQL 服务已启动,数据库已提前创建好(表会自动创建),以及用户名密码是否有访问权限。
插件有命令拦截功能,如果玩家直接输入了副本配置中 commands 字段里的命令(如 dp start F1),插件会检查货币是否充足。这是为了防止玩家绕过入场券系统直接进副本。
检查 cost-priority 配置,插件会按这个列表的顺序依次检查,扣第一个够付的。把你想优先扣的货币放在列表前面。
目前固定在系统时间凌晨 00:00 重置,暂不支持自定义时间。
这是插件的内置功能,玩家加入服务器或重生时,如果是创造模式会被自动切换为生存模式。

如果你看到这里还没关掉文档,说明你是个认真的服主。祝你的副本场场爆满,入场券供不应求。