- 版权类型
- 原创
- 插件中文名称
- PVPArenas
- 插件英文名称
- PVPArenas
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Purpur
- 其他核心
- 语言支持
- 多语言
- 前置组件
- PlaceholderAPI(可选) Vault(可选) HolographicDisplays(可选)
Illusion(可选)
- 适配版本(Java)
- 1.21
- 1.20
PVPArenas 一个可以进行单挑、组队的 PVP 小游戏插件
重要信息插件目前处于开发过程中, 运行不稳定
直到 1.0.0 版本发布之前,您都应当在您的测试服务器中应用本插件, 而不是您的正式服务器上
为了能够更加地完善本插件, 在此积极欢迎各位 MC 服主测试本插件并反馈插件漏洞, 或者对本插件提出建议.
插件的版本
本插件的开发环境为 SpigotAPI-1.20.4, 可直接使用在版本为 1.20.4 的服务器上, 对于其它版本的服务器并未进行测试, 目前正在进行测试中
通过测试的服务器版本
最新版的下载地址
插件的功能
- 可以通过配置自定义段位, 单挑模式和组队模式的段位数据是分开的
- 自定义进行 PVP 时的命令白名单
- 可以自定义奖励
- 可以自定义自己的语言
- 支持 MySQL 和 Sqlite 数据库
- 可以通过工具选择竞技场区域并进行创建
- 全部命令均实现了自动补全
- 所有文本内容均支持 PlaceHolderAPI 和 HEX 颜色
- 可以根据多种数据创建排行榜
插件命令、权限、占位符等相关信息请前往开原地址查看
快速上手——创建一个竞技场
配置文件
YAML:
#########################################################
# PVPArenas 插件文本内容占位符介绍
#########################################################
# 所有文本均支持 RGB 颜色代码
#
# RGB颜色格式: {<Color>[,<arg1>,<arg2>,...]}
# 例子:
# 1. {#FFFFFF}RGB颜色文本
# 2. {#FFFFFF,&l}加粗的RGB颜色文本
# 3. {#FFFFFF,&l,&n}加粗和下划线的RGB颜色文本
#########################################################
# 支持渐变 & 彩虹渐变
#
# 渐变色格式: {<Color1>-><Color2>[,<arg1>,<arg2>,...]}
# 例子:
# 1. {#04ff00->#bf0000}渐变文字
# 2. {#04ff00->#bf0000,&l}加粗的渐变文字
# 3. {#04ff00->#bf0000,&l,&n}加粗和下划线的渐变文字
#
# 彩虹渐变格式: {rainbow[,<arg1>,<arg2>,...]}
# 例子:
# 1. {rainbow}彩虹渐变文字
# 2. {rainbow,&l}加粗彩虹渐变
# 3. {rainbow,&l,&n}加粗和下划线的彩虹渐变文字
#########################################################
cfgVer: 1.0
debug: false
# 检查更新
update-check: true
#########################################################
# 数据存储配置
#########################################################
# 数据存储类型 (大小写不敏感)
# sqlite: 使用轻量化数据库, 数据存储为 *.db 文件格式
# mysql: 使用远程数据库
storage: sqlite
# 当上方 "storage" 项为 "mysql" 时配置以下内容
mysql:
host: localhost:3306 # 远程地址
useSSL: false # 使用 ssl 进行安全连接(如果 mysql 服务器启用了 ssl 连接的话)
user: user # 用户名
pwd: pwd # 密码
database: PVPArenas # 数据库名
#########################################################
# PVP 场地创建相关设置
#########################################################
select_tool: STICK # 区域选择物品
displayBoundary: true # 使用粒子显示边界
#########################################################
# PVP 排行榜设置
# 用于建立全息显示排行榜
#########################################################
rank-enabled: true # 启用排行榜
refresh-time: 60 # 排行榜刷新时间, 单位: 秒
display_limit: 10 # 前多少名显示到排行榜中
# 排行榜格式
#
# 通过前缀: "$rank$" 列出排行榜中的玩家
# 前缀只能同时存在 1 个
#
# 可用的占位符:
# - {identifier_name} 排行榜依据名称
# - {player} 玩家名称
# - {value} 玩家对应依据的值
# - {rank} 对应的排名
lineFormat:
- "&b本服务器中的 {identifier_name} 排行榜"
- "&6&l========== &f[&6PVP&e&oArena&f] &6&l=========="
- "$rank$&6{rank}.玩家: {player} &5-&b {identifier_name}: &a{value}"
- "&6&l========== &f[&6PVP&e&oArena&f] &6&l=========="
# 配置依赖插件
dep-plugin:
# 是否使用依赖插件创建全息图, 若为 false 则使用插件内部实现创建
enabled: false
# 使用的依赖插件名, 目前支持的有
# - Illusion (新版名称, 原名成为 HolographicDisplays)
##############################
# 填写 Illusion 和 HolographicDisplays 的效果是一样的
plugin_name: HolographicDisplays
#########################################################
# PVP 时的命令白名单,
# 在进行 PVP 对战时仅可执行这些命令
# 包括加入队伍后等待时
#########################################################
cmd_whiteList:
- pvp
- pvpquit # 退出 pvp 竞技 (执行命令后被视为逃跑)
#########################################################
# 聊天显示段位
#########################################################
chatRank:
enable: true
# 聊天格式
# {message} 代表原始内容玩家的前缀、后缀以及消息内容
format: "&f[%pvparena_solo_rank_title%&f][%pvparena_party_rank_title%&f]{message}"
#########################################################
# PVP 配置
#########################################################
# 该设置仅在团队对战模式下生效
# 当玩家意外断开连接时,最大等待重连的时间
# 若超过该时间玩家仍未重新连接到服务器则直接判定玩家为逃跑, 并施予该玩家相应惩罚
# 设置为 -1 代表无限等待直至重新加入, 若直到游戏结束玩家仍未重新加入, 则判定为玩家逃跑
# 设置为 0 代表不等待直接判定为逃跑
# 单位: 秒
waitingForDisconnect: 60
# 双方人数达标后的等待时间
# 单位: 秒
readyTime: 10
# 游戏结束后在竞技场中等待的时间
# 单位: 秒
stopWaitTime: 10
# 连杀判定和播报
# 设置仅在团队竞技模式下有效
# 连杀判定: 本回合时间内击杀的敌方人数
killStreak:
enable: true # 启用连杀判定和播报
counts:
# 连杀次数
3:
# 连杀音效, 格式: [音效 id,音量,音阶] 除了音效 id 外, 其余参数均为可选参数
sound: "BLOCK_ANVIL_PLACE,1,2"
# 播报消息, 支持 RGB, 支持 PlaceholderAPI
message: "&6PVP &b>> &a玩家 &e%player_name% &a在竞技场 &e%pvparenas_gaming_arena% &a中 &a达成了 3 连杀!"
#########################################################
# PVP 段位 & 奖励设置
#########################################################
# 1V1 对战
solo:
max_time: 120 # 一局单挑对战的最大时长, 单位: 秒
max_amt: 3 # 1v1 对战时, 战胜同一玩家后, 最大可获得的奖励次数, 该值小于等于 0 时为无限制
refresh: 0 # 重置对战奖励次数的时间, 范围 0-23; 分别表示当日的整点时间
exp_win: # 因赢得比赛获得的经验值 (默认值 各个段位可分别设置获得的经验)
min: 10 # 获得经验的最小值
max: 20 # 获得经验的最大值
# 对局胜利后的奖励 (默认值 各个段位可分别设置获得的奖励)
#
# give-item: STONE,25,&6石头 # 格式为: 物品id,数量,名字 || 给与玩家指定物品,
# # 每个逗号分隔的值, 除了物品 id 外, 均为可选择的值
# give-money: 100 # 给予玩家指定数量的经济
# message: %player_name% hello! # 向玩家发送消息
# command: say hello! %player_name% # 以玩家身份执行命令
# console: say hello! %player_name% # 以控制台身份执行命令
#
# *支持 PlaceHolderAPI 变量
# *message 支持 RGB 颜色
awards:
- 'give-money: 120'
- 'give-item: STONE,25,&6石头'
- 'message: &3&m=================================================='
- 'message: &b恭喜你赢得了本场比赛! %player_name%'
- 'message: &a本场比赛你获得了 %pvparena_last_solo_exp% 经验'
- 'message: &3当前段位:%pvparena_solo_rank_title% &3(距离下一段位还差 &e%pvparena_solo_next_rank_exp% &3经验值)'
- 'message: &3&m=================================================='
exp_defeat: # 因输掉比赛失去的经验值 (默认值, 各个段位可分别设置失去的经验)
min: 10 # 失去经验的最小值
max: 20 # 失去经验的最大值
# 对局失败后的 "奖励", 配置方法同上
awards:
- 'message: &3&m=================================================='
- 'message: &cOops! 你输掉了本场比赛...'
- 'message: &3你失去了 %pvparena_last_solo_exp% 经验值'
- 'message: &3当前段位:%pvparena_solo_rank_title% &3(距离下一段位还差 &e%pvparena_solo_next_rank_exp% &3经验值)'
- 'message: &3&m=================================================='
exp_escape: # 因逃赛失去的经验值 (默认值, 各个段位可分别设置失去的经验)
min: 30 # 失去经验的最小值
max: 50 # 失去经验的最大值
# 逃赛的 "奖励", 配置方法同上
awards:
- 'message: &3&m=================================================='
- 'message: &c你 逃 跑 了!'
- 'message: &3你失去了 %pvparena_last_solo_exp% 经验值'
- 'message: &3当前段位:%pvparena_solo_rank_title% &3(距离下一段位还差 &e%pvparena_solo_next_rank_exp% &3经验值)'
- 'message: &3&m=================================================='
# 段位,等级自上而下依次增高
ranks:
# 不要重复就行,暂时没啥大用
lvl_1:
title: '&a初来乍到' # 段位名
reqExp: 0 # 到达本段位需要的经验值
# 达到该段位的奖励, 配置方法同上
awards:
- 'give-item: STONE,25,&6石头'
exp_win: # 该段位下赢得比赛获得的经验值
min: 10 # 获得经验的最小值
max: 20 # 获得经验的最大值
# 胜利后可获得的奖励, 配置方法同上
awards:
- 'give-item: STONE,25,&6石头'
exp_defeat: # 该段位下输掉比赛失去的经验值
min: 10 # 失去经验的最小值
max: 20 # 失去经验的最大值
# 对局失败后的 "奖励", 配置方法同上
awards:
- ''
# exp_escape: # 该段位下因逃赛失去的经验值
# min: 30 # 失去经验的最小值
# max: 50 # 失去经验的最大值
# # 该段位下逃跑后的 "奖励", 配置方法同上
# awards: []
lvl_2:
title: '&a初出茅庐'
reqExp: 100
lvl_3:
title: '&5江湖勇者'
reqExp: 500
lvl_4:
title: '&5江湖智者'
reqExp: 1000
lvl_5:
title: '&3武学奇才'
reqExp: 1500
lvl_6:
title: '&c武场称霸'
reqExp: 2000
lvl_7:
title: '&4武林霸主'
reqExp: 2500
# 组队 pvp
party:
max_time: 120 # 一局组队对战的最大游戏时间, 单位: 秒
maxAmt: 10 # 组队 PVP 当日可获得奖励的最大次数, 该值小于等于 0 时为无限制
refresh: 0 # 重置对战奖励次数的时间, 范围 0-23; 分别表示当日的整点时间
teamDamage: false # 是否开启队友伤害
exp_win:
min: 10
max: 20
awards:
- 'message: &3&m=================================================='
- 'message: &b恭喜你赢得了本场比赛! %player_name%'
- 'message: &a本场比赛你获得了 %pvparena_last_party_exp% 经验'
- 'message: &3当前段位:%pvparena_party_rank_title% &3(距离下一段位还差 &e%pvparena_party_next_rank_exp% &3经验值)'
- 'message: &3&m=================================================='
exp_defeat:
min: 10
max: 20
awards:
- 'message: &3&m=================================================='
- 'message: &cOops! 你输掉了本场比赛...'
- 'message: &3你失去了 %pvparena_last_party_exp% 经验值'
- 'message: &3当前段位:%pvparena_party_rank_title% &3(距离下一段位还差 &e%pvparena_party_next_rank_exp% &3经验值)'
- 'message: &3&m=================================================='
exp_escape:
min: 30
max: 50
awards:
- 'message: &3&m=================================================='
- 'message: &c你 逃 跑 了!'
- 'message: &3你失去了 %pvparena_last_party_exp% 经验值'
- 'message: &3当前段位:%pvparena_party_rank_title% &3(距离下一段位还差 &e%pvparena_party_next_rank_exp% &3经验值)'
- 'message: &3&m=================================================='
ranks:
lvl_1:
title: '&a青铜'
reqExp: 0
lvl_2:
title: '&f白银'
reqExp: 500
lvl_3:
title: '&f铂金'
reqExp: 1000
lvl_4:
title: '&b钻石'
reqExp: 1500
lvl_5:
title: '&6王者'
reqExp: 2000
控制台:
游戏内截图