- 版权类型
- 原创
- 插件中文名称
- PVP竞技场高版本
- 插件英文名称
- pvp
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 前置组件
- multiverse-core https://modrinth.com/plugin/multiverse-core
- 适配版本(Java)
- 26.x
- 1.21
[MD]
# PVP 插件 v2.4.0
适用于 **Paper 1.21+** 的 Minecraft PVP 竞技场插件,支持普通竞技场、永久多人竞技场、玩家决斗、旁观、假人陪练、装备模板、战绩统计、排行榜,以及竞技场世界自动清理。
> 当前版本:**2.4.0**
---
## 功能概览
### 普通竞技场
- 管理员可基于指定地图世界创建竞技场模板。
- 玩家加入后,插件为本场比赛创建独立世界。
- 每个独立竞技场世界最多容纳两名玩家。
- 玩家进入竞技场前会保存背包、护甲、副手和末影箱内容。
- 进入竞技场后自动发放该竞技场的装备模板。
- 玩家死亡、主动离开或对局结束后返回大厅并恢复原有物品。
- 对局结束后自动卸载并删除临时世界。
- 世界删除失败时会延迟重试并执行残留清理。
### 永久多人竞技场
- 管理员可将现有世界注册为永久竞技场。
- 永久竞技场直接使用指定世界,不会为每次加入创建临时副本。
- 玩家可随时加入或退出。
- 玩家死亡后会在竞技场世界边界范围内重新生成。
- 重生后重新获得竞技场装备,并恢复生命值、饱食度和饱和度。
- 可在永久竞技场中生成多个假人进行多人陪练。
- 假人死亡后约 1.5 秒自动复活。
- 删除永久竞技场配置时应注意确认世界用途,避免误删重要地图。
### 玩家决斗
- 玩家可以向指定在线玩家发起决斗邀请。
- 发起决斗时需要指定竞技场。
- 被邀请者可使用发起者名称接受邀请。
- 决斗在独立竞技场世界中进行。
- 对局结束后自动恢复双方物品并传送回大厅。
- 决斗邀请会在超时或发起者离线后失效。
### 旁观系统
- 玩家可旁观正在进行 PVP 对局的目标玩家。
- 进入旁观后切换为旁观模式。
- 旁观期间仅允许使用离开旁观的相关命令。
- 离开旁观后返回大厅。
- 对局结束或目标状态发生变化时,插件会清理旁观状态。
### 假人系统
- 支持在普通竞技场中生成自动陪练假人。
- 支持在永久竞技场中批量生成假人。
- 永久竞技场单次支持生成 `1` 至 `10` 只假人。
- 假人可追踪和攻击目标玩家。
- 假人会记录并使用竞技场相关战斗学习数据。
- 假人死亡后可自动复活。
- 管理员可清除指定永久竞技场中的全部假人。
- 插件关闭、世界删除或竞技场结束时会清理相关假人任务和实体。
### 装备模板
- 创建竞技场时可保存管理员当前装备作为竞技场模板。
- 支持保存背包物品、护甲和副手物品。
- 管理员可使用当前装备更新已有竞技场模板。
- 玩家进入竞技场或在永久竞技场重生时自动获得模板装备。
- 玩家离开竞技场后恢复进入前保存的物品。
### 战绩和计分板
- 记录玩家累计击杀数。
- 记录玩家累计死亡数。
- 记录当前连杀和最佳连杀。
- 显示 K/D 比值。
- 右侧计分板显示击杀排行榜和个人战绩。
- 计分板会定期刷新。
- 达成特定连杀时向在线玩家广播提示。
- 战绩数据会持久化保存。
### 世界管理
- 普通竞技场和决斗使用独立临时世界。
- 插件优先配合 Multiverse-Core 管理世界。
- 未启用 Multiverse-Core 时,可使用文件复制方式创建世界。
- 临时世界结束后自动卸载和删除。
- 删除失败时进行多次延迟重试。
- 插件启动时可清理遗留的临时 PVP 世界。
- 插件关闭时会恢复在线对局玩家并清理活动状态。
---
## 环境要求
### 必需环境
- Paper 1.21 或兼容的 Bukkit/Spigot 服务端
- Java 21
- Maven 3.9 或更高版本,用于从源码构建
### 推荐依赖
- Multiverse-Core v5
Multiverse-Core 用于加载、卸载和管理竞技场世界。插件包含文件系统复制逻辑,但生产服务器建议安装 Multiverse-Core,以提高世界管理的稳定性。
---
## 安装方法
1. 确保服务器使用 Java 21。
2. 安装 Paper 1.21 或兼容版本。
3. 建议安装 Multiverse-Core v5。
4. 将 `PVP-2.4.0.jar` 放入服务器的 `plugins` 目录。
5. 重启服务器。
6. 进入服务器后,以 OP 身份设置大厅世界并创建竞技场。
示例目录:
```text
server/
├── paper.jar
├── plugins/
│ ├── PVP-2.4.0.jar
│ └── Multiverse-Core.jar
└── worlds...
```
不要使用 `/reload` 热重载插件。竞技场插件维护玩家背包、世界、调度任务和对局状态,建议修改配置或替换 JAR 后完整重启服务器。
---
## 快速开始
### 1. 设置大厅世界
```text
/pvp setlobby <世界名>
```
示例:
```text
/pvp setlobby lobby
```
大厅世界用于玩家离开竞技场、死亡退出对局或结束旁观后的返回位置。
### 2. 准备竞技场地图
先创建或加载一个地图世界。例如使用 Multiverse-Core:
```text
/mv create arena_template NORMAL
/mv load arena_template
```
进入地图世界并配置出生点、世界边界和地图内容。
### 3. 创建普通竞技场
先将希望作为模板的装备放入管理员背包,然后执行:
```text
/pvp create <竞技场名> <地图世界名>
```
示例:
```text
/pvp create sword arena_template
```
### 4. 加入竞技场
```text
/pvp join sword
```
### 5. 离开竞技场
```text
/pvp leave
```
---
## 命令说明
### `/pvp` 主命令
#### 创建普通竞技场
```text
/pvp create <名字> <地图名>
```
权限:OP 或管理员。
使用指定世界作为地图模板创建普通竞技场,并保存执行者当前装备作为竞技场装备模板。
#### 加入普通竞技场
```text
/pvp join <名字>
```
加入指定普通竞技场。插件会保存玩家原有物品、创建或分配独立对局世界并发放竞技场装备。
#### 创建永久多人竞技场
```text
/pvp pcreate <名字> <世界名>
```
权限:OP 或管理员。
将指定现有世界注册为永久多人竞技场,并保存执行者当前装备作为模板。v2.4.0 的永久竞技场直接使用指定世界,世界不会因普通对局结束而自动删除。
#### 加入永久多人竞技场
```text
/pvp pjoin <名字>
```
加入指定永久竞技场。死亡后会在竞技场边界内重新生成并再次获得模板装备。
#### 退出永久多人竞技场
```text
/pvp pleave
```
退出当前永久竞技场,恢复进入前保存的物品并返回大厅。
#### 生成永久竞技场假人
```text
/pvp bot <数量> [竞技场名]
```
权限:OP 或管理员。
在指定永久竞技场中生成假人。数量范围为 `1` 至 `10`。如果省略竞技场名,则根据执行者当前所在的永久竞技场确定目标。
示例:
```text
/pvp bot 5 training
```
#### 清除永久竞技场假人
```text
/pvp bot leave [竞技场名]
```
权限:OP 或管理员。
清除指定永久竞技场中的全部假人。
#### 离开普通竞技场或决斗
```text
/pvp leave
```
离开当前普通竞技场或决斗,恢复原有物品并返回大厅。
#### 设置大厅世界
```text
/pvp setlobby <世界名>
```
权限:OP 或管理员。
设置玩家退出 PVP 后的返回世界。
#### 更新竞技场装备
```text
/pvp settings 装备 <竞技场名>
```
权限:OP 或管理员。
使用执行者当前背包、护甲和副手物品更新指定竞技场的装备模板。
#### 更换竞技场地图
```text
/pvp settings 地图 <竞技场名> <世界名>
```
权限:OP 或管理员。
将指定竞技场的地图模板更换为另一个已存在的世界。
#### 删除竞技场
```text
/pvp delete <名字>
```
权限:OP 或管理员。
删除指定竞技场配置,并清理与之相关的临时世界和运行状态。执行前请确认竞技场名称和世界用途。
### `/duel` 决斗命令
#### 发起决斗
```text
/duel <玩家名> <竞技场名>
```
向指定在线玩家发起使用目标竞技场的决斗邀请。
示例:
```text
/duel Steve sword
```
#### 接受决斗
```text
/duel accept <玩家名>
```
接受指定玩家发出的决斗邀请。
示例:
```text
/duel accept Alex
```
### `/pg` 旁观命令
#### 旁观玩家
```text
/pg <玩家名>
```
旁观目标玩家当前正在进行的 PVP 对局。进入后会切换为旁观模式。
#### 离开旁观
```text
/pg leave
```
结束旁观并返回大厅。
---
## 权限
### `pvp.use`
默认:所有玩家。
允许使用普通玩家 PVP 功能,包括加入、离开、决斗和旁观。
```yaml
pvp.use:
default: true
```
### `pvp.admin`
默认:OP。
用于管理竞技场、设置大厅、更新模板和删除竞技场。部分管理逻辑还会直接检查玩家是否为 OP。
```yaml
pvp.admin:
default: op
```
---
## 数据文件
插件运行后会在插件数据目录中保存竞技场和战绩数据。常见位置:
```text
plugins/PVP/
├── arenas.yml
└── stats.yml
```
数据通常包括:
- 大厅世界名称
- 普通竞技场定义
- 永久竞技场定义
- 地图世界名称
- 装备模板
- 玩家击杀、死亡和连杀数据
- 假人学习或竞技场战斗数据
- 相关功能开关
修改 YAML 文件前请先关闭服务器并备份数据。运行中直接修改可能在插件保存数据时被覆盖。
---
## 竞技场工作流程
### 普通竞技场
1. 管理员创建竞技场模板。
2. 玩家执行 `/pvp join <名字>`。
3. 插件保存玩家物品和状态。
4. 插件创建独立竞技场世界。
5. 玩家被传送到竞技场并获得模板装备。
6. 对局进行并统计击杀、死亡和连杀。
7. 对局结束或玩家主动离开。
8. 插件恢复玩家物品并传送至大厅。
9. 插件卸载和删除临时竞技场世界。
### 永久竞技场
1. 管理员将现有世界注册为永久竞技场。
2. 玩家执行 `/pvp pjoin <名字>`。
3. 插件保存玩家原有物品。
4. 玩家进入永久竞技场并获得模板装备。
5. 玩家死亡后在世界边界内重新生成。
6. 玩家执行 `/pvp pleave` 后恢复物品并返回大厅。
### 决斗
1. 玩家使用 `/duel <玩家名> <竞技场名>` 发出邀请。
2. 对方使用 `/duel accept <发起者>` 接受邀请。
3. 插件创建独立决斗世界。
4. 双方保存原物品并获得竞技场装备。
5. 一方获胜后结束决斗。
6. 双方恢复物品并返回大厅。
7. 决斗世界被卸载并删除。
---
## 管理与安全建议
- 将竞技场模板世界与大厅世界分开管理。
- 创建或更新装备模板前确认背包、护甲和副手内容正确。
- 定期备份 `plugins/PVP` 数据目录。
- 定期检查服务器根目录是否有异常残留的竞技场世界。
- 不要在竞技场运行期间删除模板世界。
- 删除永久竞技场前确认目标不是大厅或其他插件使用的世界。
- 不要使用服务器热重载命令替换插件。
- 正式服建议安装 Multiverse-Core v5。
- 如果服务器异常关机,请在重新启动后检查控制台中的世界清理日志。
---
## 常见问题
### 玩家离开后没有返回预期位置
确认大厅世界已加载,并重新执行:
```text
/pvp setlobby <世界名>
```
如果配置的大厅世界不存在,插件可能尝试使用默认世界或服务器的第一个已加载世界。
### 创建竞技场提示世界不存在
确认目标世界已经加载。使用 Multiverse-Core 时可执行:
```text
/mv load <世界名>
```
同时确认命令中的世界名称和服务器目录名称完全一致。
### 临时竞技场世界没有被删除
可能原因:
- 世界中仍有玩家。
- 其他插件持有世界引用。
- 世界文件被备份程序或杀毒软件占用。
- 服务器在清理任务执行前异常停止。
插件会进行延迟重试。仍无法清理时,请关闭服务器后备份并手动删除确认无用的临时世界目录。
### 假人没有生成
检查以下内容:
- 命令执行者是否为 OP。
- 永久竞技场名称是否正确。
- 执行者是否位于目标永久竞技场。
- 数量是否在 `1` 至 `10` 范围内。
- 世界是否处于加载状态。
- 控制台是否有实体生成被其他插件拦截的日志。
### 玩家物品没有正确恢复
不要在插件运行中使用 `/reload`。检查服务器是否异常关闭,并查看控制台中是否存在背包恢复或传送错误。重要服务器应在部署前先使用测试账号验证进入、死亡和退出流程。
### 决斗邀请无法接受
确认:
- 发起者和接受者都在线。
- 使用的是发起者的准确玩家名。
- 邀请尚未过期。
- 指定竞技场仍然存在。
- 双方没有处于其他 PVP、永久竞技场或旁观状态。
---
## 版本信息
### 2.4.0
- 支持普通竞技场和独立临时世界。
- 支持永久多人竞技场。
- 支持永久竞技场假人批量生成和自动复活。
- 支持玩家决斗邀请、接受和独立决斗世界。
- 支持旁观系统。
- 支持竞技场装备模板和玩家物品恢复。
- 支持击杀、死亡、K/D、连杀和排行榜。
- 支持大厅世界设置。
- 支持竞技场地图和装备更新。
- 支持世界卸载、延迟删除和失败重试。
- 支持 Paper 1.21 API 和 Java 21。
---
**注:假人是僵尸,还有一些功能似乎没写**
---
## 许可证与使用说明
**GUN GPL v3**
[/MD]