• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

原创 开源 高版本竞技场插件 v1.6.1

请登录后获取
版权类型
原创
插件中文名称
PVP竞技场高版本
插件英文名称
pvp
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
语言支持
中文(简体)
前置组件
multiverse-core https://modrinth.com/plugin/multiverse-core
适配版本(Java)
  1. 26.x
  2. 1.21
[MD] # PVP 插件 适用于 **Paper 1.21+ 服务端**(含 1.26.x)的竞技场 / 决斗插件。基于 **Multiverse-Core v5** 动态克隆地图世界,支持装备模板、击杀排行榜、K/D 统计、连杀公告、观战系统。 > 当前版本:**v1.6.1** --- ## ✨ 功能特性 ### ⚔️ 竞技场模式(Arena) - `/pvp create` 保存创建者当前**全部装备**(物品栏 + 盔甲 + **副手** + 末影箱)作为该竞技场的装备模板 - `/pvp join` 自动通过 MV 克隆地图世界 → 传送 → 发放模板装备 - **每 2 名玩家共用一个克隆世界**,第三名玩家自动开启新世界槽 - 双方都离开后自动删除克隆世界(异步 + 重试 + 强制清理,不卡服、不留残骸) ### 🤺 决斗模式(Duel) - `/duel <玩家> <竞技场>` 发起邀请,**被邀请方可见对方选择的竞技场(模式)** - 邀请 **1 分钟自动过期**,同一时间可持有/接受**多条邀请**(非 PVP 时) - 任一方 `/pvp leave` 即结束决斗 → 删除世界 → 恢复双方原背包 ### 🏆 排行榜与战绩 - 击杀榜 **TOP3**(🥇🥈🥉)显示在屏幕**右侧计分板** - 左侧计分板显示个人战绩:累计击杀 / 累计死亡(仅 PVP 内)/ **K/D 比值** / 当前连杀 - 计分板每 3 秒自动刷新,防止被其他插件覆盖 ### 🔥 连杀机制 - 连续 **5 杀及 5 的倍数**(5/10/15…)时**全服公告** + 物品栏上方 ActionBar 提示 - 死亡一次连杀归零 ### 👁 观战系统(Spectator) - `/pg <玩家名>` 旁观任意正在 PVP 的玩家(强制旁观模式,无法干扰对局) - `/pg leave` 返回大厅;被观战者离开/死亡时观战者自动退出 ### 🛡 战斗规则(PVP 世界内) - 进入 PVP 自动:**清空所有药水效果**、满血、满饱食度、灭火、游戏模式锁定生存 - PVP 期间**禁止使用除 `/pvp leave` 外的任何指令**(无 OP 豁免) - **世界边界 ±50 格**,越界自动拉回 - **随机 A/B 出生点**:两名玩家分处对角,距离 50 格、面朝对方,且始终在边界内 - 彻底屏蔽怪物/动物生成(生成事件三层拦截 + 克隆后清场 + 生成上限归零) - 玩家战斗实体正常放行:投掷物(雪球/末影珍珠/箭…)、点燃 TNT、末影水晶、矿车、船、掉落物 --- ## 📦 依赖 | 依赖 | 说明 | |------|------| | **Paper 1.21+** | 服务端(Spigot 亦可,推荐 Paper) | | **Multiverse-Core v5** | 世界克隆(主类 `org.mvplugins.multiverse.core.MultiverseCore`)。未安装时自动降级为文件系统复制(不推荐) | --- ## 🚀 安装 ```bash # 1. 构建(需要 JDK 21 + Maven) cd pvp-plugin mvn clean package -DskipTests # 产物:target/PVP-<版本>.jar # 2. 将 jar 放入服务端 plugins/ 目录 # 3. 重启服务端 ``` **首次配置:** ```bash # 创建地图模板世界(Multiverse) /mv create <地图名> NORMAL /mv load <地图名> # 设置大厅世界(/pvp leave 的传送目标,默认 LLL) /pvp setlobby <世界名> # 创建竞技场(保存你当前装备作为模板) /pvp create <竞技场名> <地图名> ``` --- ## 📖 命令大全 ### /pvp | 命令 | 权限 | 说明 | |------|------|------| | `/pvp create <名字> <地图名>` | **OP** | 创建竞技场,保存当前装备(含副手)为模板;地图名必须是 MV 已加载的世界 | | `/pvp join <名字>` | 玩家 | 加入竞技场:克隆世界 → 传送 → 发放模板装备 | | `/pvp leave` | 玩家 | 离开竞技场/结束决斗:恢复背包 → 传送至大厅 → 双方离开后删除克隆世界 | | `/pvp setlobby <世界名>` | **OP** | 设置离开时传送的大厅世界(持久化,默认 `LLL`) | | `/pvp settings 装备 <竞技场名>` | **OP** | 用当前装备(含副手)更新指定竞技场的装备模板 | | `/pvp settings 地图 <竞技场名> <世界名>` | **OP** | 更换指定竞技场的 PVP 地图(MV 世界) | | `/pvp delete <名字>` | **OP** | 删除竞技场(同时清理其所有克隆世界) | ### /duel | 命令 | 权限 | 说明 | |------|------|------| | `/duel <玩家名> <竞技场名>` | 玩家 | 向在线玩家发起决斗邀请(邀请中显示竞技场/模式) | | `/duel accept <玩家名>` | 玩家 | 接受指定玩家的邀请(1 分钟内有效,可同时持有多条) | ### /pg(观战) | 命令 | 权限 | 说明 | |------|------|------| | `/pg <玩家名>` | 玩家 | 旁观该玩家的 PVP 对局 | | `/pg leave` | 玩家 | 离开旁观,返回大厅 | --- ## 🔑 权限 | 权限节点 | 默认 | 说明 | |---------|------|------| | `pvp.use` | ✅ true | 所有玩家:`join` / `leave` / `duel` / `pg` | | `pvp.admin` | OP | 管理命令:`create` / `setlobby` / `settings` / `delete`(同时校验 OP) | --- ## 🗂 数据文件 | 文件 | 说明 | |------|------| | `plugins/PVP/arenas.yml` | 竞技场数据:模板世界、装备模板(含副手)、大厅世界、活动世界槽位 | | `plugins/PVP/stats.yml` | 玩家战绩:累计击杀 / 累计死亡 / K/D / 最高连杀 | --- ## ⚙️ 工作机制详解 ### 世界克隆与清理 1. `join`/决斗时调用 MV:`mv clone <模板世界> <新世界名>`(主线程执行,10 秒超时兜底手动 `createWorld`) 2. 新世界命名:竞技场模式 `<竞技场名>_<时间戳>`;决斗模式 `duel_<发起者>_<接受者>_<时间戳>` 3. 克隆完成后:清空所有生物 → 关闭刷怪 → 设置边界 ±50 → 登记为 PVP 世界 4. 双方离开后删除:`unload` 世界 → `mv remove -f` 注销 → 延迟 2 秒 → 异步删文件夹(失败重试 6 次)→ 仍失败则强制清理(跳过被占用的 session.lock 等锁文件) 5. 服务器重启时自动清理上一轮残留的克隆世界(`cleanupLeftoverWorlds`) ### 出生点分配 - 竞技场模式:按世界槽位加入顺序,第 1 人 → A 点,第 2 人 → B 点 - 决斗模式:发起者 → A 点,接受者 → B 点 - A/B 方向每局随机(由世界种子决定,同局稳定),两点相距 50 格、面朝对方、不越界 ### 装备模板 - 保存范围:物品栏 36 格 + 盔甲 4 格 + **副手** + 末影箱 - 进入 PVP:备份玩家原背包 → 清空 → 发放模板装备 - 离开 PVP:清空竞技场装备 → 完整归还玩家原背包与末影箱 ### 命令封锁 - `PlayerCommandPreprocessEvent` 最低优先级拦截:PVP 中除 `/pvp leave` 外一切指令禁止,**OP 也不例外** ## ❓ 常见问题 **Q:世界创建失败?** 确保 Multiverse-Core v5 已安装且模板世界已加载(`/mv load <地图名>`);插件在 10 秒内轮询世界加载,超时会尝试手动 `createWorld` 兜底。 **Q:克隆世界删不掉?** v1.6.1 起采用"延迟 + 异步 + 重试 6 次 + 强制清理"策略;若日志仍出现 `无法删除文件: xxx`,通常是被系统进程占用,重启服务端后会自动清理残留世界。 **Q:为什么 PVP 里看不到怪物?** 这是设计行为:PVP 世界禁刷怪、克隆后清场,确保公平对决。 **Q:`/duel accept` 提示没有邀请?** 邀请 1 分钟过期且发起者离线会失效;请确认在有效期内、且输入的是发起者玩家名。 --- ## 📌 版本历史 | 版本 | 内容 | |------|------| | 1.6.1 | 修复克隆世界删除不彻底(延迟+重试+强制清理) | | 1.6.0 | 决斗邀请显示模式、1 分钟过期、支持多条邀请 | | 1.5.x | 放行玩家实体(TNT/末影水晶/矿车/船)、A/B 出生点边界修复、副手保存、生物彻底拦截 | | 1.2.0 | 装备/地图 settings、击杀榜 TOP3、K/D 计分板、连杀公告 | | 1.1.0 | 决斗系统、setlobby、命令封锁、进入 PVP 清效果 | | 1.0.0 | 基础竞技场:create/join/leave、世界克隆与自动清理 | 本插件使用GNU GPL v3.0协议 [/MD]
作者
AAAlsc1145
价格
10.00金粒
下载
13
查看
219
首次发布
最后更新

评分

0.00 星 0 次评分
后退
顶部 底部