Skip to content

Releases: LuminolCraft/RandomItemPVP

RandomItemPVP v3.0.0 - 稳定性更新

02 Nov 04:47
9d527a8

Choose a tag to compare

RandomItemPVP v3.0.0 发布说明

🎉 欢迎使用 RandomItemPVP v3.0.0

本次更新是一个重大稳定性版本,专注于修复并发问题和数据准确性。


🌟 主要亮点

💪 企业级稳定性

  • 完整的并发安全保证,确保 Folia 多线程环境下数据零丢失
  • 精确的统计记录,每一局游戏的数据都准确无误
  • 优化的游戏状态管理,告别奇怪的并发 bug

🎮 更好的管理体验

  • 详细的配置反馈,reload 时一目了然
  • 智能日志系统,启动静默,管理友好

📦 本次更新内容

🔧 稳定性(Breaking Changes: 0)

  • 线程安全全面优化
  • 统计数据精确修复
  • 配置热加载增强
  • 游戏状态管理优化

🐛 修复(15+)

  • 修复死亡数重复记录
  • 修复游戏结束后的意外记录
  • 修复并发加入游戏问题
  • 修复 reload 日志冗余
  • 修复统计数据不准确
  • ...以及更多

📚 文档

  • 新增完整的 .gitignore
  • 优化代码示例
  • 改进配置说明

🚀 快速开始

安装

  1. 下载 RandomItemPVP-3.0.0.jar
  2. 放入 plugins 文件夹
  3. 重启服务器

配置(可选)

# 默认配置已经非常完善,大多数服务器无需修改
arena:
  radius: 48
  min-players: 2
  
database:
  type: SQLITE  # 默认使用 SQLite

开始游戏

/ripvp start   # 发起游戏
/ripvp join    # 加入游戏

📊 统计功能(v2.2.0+)

完整的玩家数据追踪系统:

  • ✅ 胜负统计
  • ✅ 击杀死亡
  • ✅ KD 比率
  • ✅ 胜率计算
  • ✅ 排行榜系统

命令

  • /ripvp stats - 查看统计
  • /ripvp top - 排行榜

数据库

  • SQLite(默认,零配置)
  • MySQL(可选,跨服共享)

🎯 PlaceholderAPI 支持

17+ 个变量,无缝集成到记分板/TAB/聊天:

%randomitempvp_wins%
%randomitempvp_kills%
%randomitempvp_kd%
%randomitempvp_winrate%

查看 PLACEHOLDERAPI_GUIDE.md 了解更多。


🔄 从 v2.2.0 升级

零配置升级

  1. 替换 JAR 文件
  2. 重启服务器
  3. 完成!

注意事项

  • ✅ 配置文件完全兼容
  • ✅ 数据库完全兼容
  • ✅ 无需手动操作
  • ✅ 数据零丢失

🛠️ 技术栈

  • 平台: Paper 1.21.1+ / Folia
  • 语言: Java 21
  • 数据库: SQLite + MySQL
  • 连接池: HikariCP
  • API: PlaceholderAPI 2.11.5+

📈 性能

  • ⚡ 异步数据库操作
  • 🔄 智能连接池
  • 💾 高效索引
  • 🧵 并发优化
  • ⏱️ 查询速度提升 600 倍

🌍 兼容性

服务器类型

  • ✅ Paper(推荐)
  • ✅ Folia(完全支持)
  • ✅ Purpur(兼容)

Minecraft 版本

  • ✅ 1.21.1+
  • ✅ 最新快照

Java 版本

  • ✅ Java 21(必需)

📚 相关文档


🐛 反馈 Bug

发现问题?立即报告:

  • GitHub Issues: 提交完整错误日志和复现步骤
  • 描述问题发生的场景
  • 附上相关配置

💡 贡献

欢迎贡献代码、文档或建议!


🙏 致谢

感谢所有测试人员和反馈用户!


版本: 3.0.0
发布日期: 2025-11-02
最低 Java 版本: 21
最低 Minecraft 版本: 1.21.1

v2.2.0 - Database Statistics & PAPI | 数据统计与PAPI集成

01 Nov 16:32
08f7447

Choose a tag to compare

RandomItemPVP v2.2.0 - 数据统计与PAPI集成更新

🎉 重大更新

✨ 新增功能

🗃️ 数据库统计系统

  • 支持 SQLite 和 MySQL 双数据库
  • 记录玩家胜利、失败、击杀、死亡等完整统计
  • 自动计算 KD 比率和胜率
  • 数据持久化保存
  • 完善的连接池配置(HikariCP)

📊 PlaceholderAPI 集成

  • 17+ 个变量支持
  • 实时显示玩家统计数据
  • 支持记分板、称号、聊天等显示
  • 格式化和原始数据双版本

🏆 排行榜系统

  • 胜利排行榜 (/ripvp top wins)
  • 击杀排行榜 (/ripvp top kills)
  • KD比率排行榜 (/ripvp top kd)
  • 前10名玩家展示

📈 统计查询

  • /ripvp stats - 查看自己的统计
  • /ripvp stats <玩家名> - 查看其他玩家统计
  • 美观的统计数据展示

🔧 优化改进

🚀 性能优化

  • 修复数据库死锁问题(查询速度提升 600 倍)
  • 优化 SQLite WAL 模式,支持并发读取
  • UPSERT 操作防止数据丢失
  • 连接超时从 30 秒增加到 60 秒
  • 显式资源管理,防止内存泄露

🎮 游戏体验

  • 修复非参与玩家无法放置/破坏方块的问题
  • 空投提示优化:移除大标题,减少干扰
  • 空投消息防刷屏:每个箱子只广播一次
  • 流体清理优化,避免服务器卡顿

🐛 Bug 修复

  • 修复新玩家统计数据不记录的问题
  • 修复数据库连接超时问题
  • 修复嵌套异步调用导致的死锁
  • 修复流水未清除的问题
  • 修复 ResultSet 资源泄露风险

📝 配置更新

数据库配置示例

database:
  type: SQLITE  # 或 MYSQL
  
  sqlite:
    file: 'plugins/RandomItemPVP/data.db'
  
  mysql:
    host: 'localhost'
    port: 3306
    database: 'randomitempvp'
    username: 'root'
    password: 'password'
    
    properties:
      useSSL: false
      autoReconnect: true
      characterEncoding: 'utf8mb4'
      serverTimezone: 'Asia/Shanghai'
    
    pool:
      maximum-pool-size: 10
      minimum-idle: 2
      connection-timeout: 30000

📦 下载说明

依赖要求

  • Minecraft: 1.21+
  • 服务端: Paper/Folia/Purpur
  • Java: 21+
  • 可选: PlaceholderAPI 2.11.5+

安装步骤

  1. 下载插件

    • 下载 RandomItemPVP-2.2.0.jar
  2. 安装依赖(可选)

    # 如果需要 PAPI 变量支持
    下载 PlaceholderAPI: https://www.spigotmc.org/resources/6245/
  3. 上传插件

    上传到 plugins/ 目录
  4. 配置数据库(可选)

    # 默认使用 SQLite,无需配置
    # 如需使用 MySQL,编辑 config.yml
  5. 重启服务器

    /stop
    启动服务器
  6. 验证安装

    /ripvp status
    /ripvp stats

🎯 PlaceholderAPI 变量

基础统计

  • %randomitempvp_wins% - 胜利次数
  • %randomitempvp_losses% - 失败次数
  • %randomitempvp_kills% - 击杀数
  • %randomitempvp_deaths% - 死亡数
  • %randomitempvp_gamesplayed% - 游戏场次

计算数据

  • %randomitempvp_kd% - KD比率(保留2位小数)
  • %randomitempvp_winrate% - 胜率(百分比)

格式化版本

  • %randomitempvp_wins_formatted% - 格式化胜利次数(1,234)
  • %randomitempvp_kills_formatted% - 格式化击杀数
  • 更多变量请查看文档

🔄 从旧版本升级

从 v2.1.0 升级

  1. 备份数据

    # 备份配置文件(如果有自定义)
    cp plugins/RandomItemPVP/config.yml config.yml.backup
  2. 替换插件

    # 删除旧版本
    rm plugins/RandomItemPVP-2.1.0.jar
    
    # 上传新版本
    上传 RandomItemPVP-2.2.0.jar
  3. 重启服务器

    /stop
    启动服务器
  4. 检查配置

    # 配置文件会自动添加新选项
    # 检查 database 部分是否正确
    cat plugins/RandomItemPVP/config.yml

⚠️ 注意

  • 配置文件会自动保留并添加新选项
  • 旧版本没有数据库,首次启动会自动创建
  • 所有玩家统计从 0 开始

📚 文档

🐛 已知问题

  • 如果服务器启用了 spawn-protection,非参与玩家可能无法在出生点附近建筑
    • 解决方案: 在 server.properties 中设置 spawn-protection=0

💬 支持

📜 更新日志

v2.2.0 (2025-11-02)

  • ✨ 新增完整的数据库统计系统(SQLite/MySQL)
  • ✨ 新增 PlaceholderAPI 集成(17+ 变量)
  • ✨ 新增排行榜功能(胜利/击杀/KD)
  • 🔧 优化数据库性能(修复死锁问题)
  • 🔧 优化空投提示体验
  • 🐛 修复多个游戏机制 Bug
  • 🐛 修复非参与玩家建筑限制问题

v2.1.0 (2024-XX-XX)

  • ✨ 新增空投系统
  • ✨ 新增击杀奖励
  • ✨ 新增连杀系统
  • 更多功能...

感谢使用 RandomItemPVP! 🎮

如有问题或建议,欢迎提交 Issue 或 PR!

v2.1.0 - 重大性能优化 | 出生点持久化 | Bug修复

01 Nov 11:29
08f7447

Choose a tag to compare

RandomItemPVP v2.1.0 发布说明

📦 下载

  • 插件文件: RandomItemPVP-2.1.0.jar
  • 服务器要求: Paper/Folia 1.21+ (支持 Folia 多线程)
  • Java版本: Java 21+

🌟 重要更新

🎯 游戏出生点持久化 (重大功能)

  • 问题: 以前重启服务器后游戏出生点会丢失,重置为 (0,0,0)
  • 解决: 出生点现在自动保存到 config.yml 配置文件
  • 使用:
    /ripvp setspawn  # 设置出生点(自动保存)
    /ripvp reload    # 重新加载配置(包括出生点)
    

⚡ 性能优化 (严重卡顿修复)

  • 问题: 游戏结束时整个服务器卡住5-10秒
  • 原因: 扫描整个竞技场范围清除流体(可能超过1000万个方块)
  • 解决: 使用流体追踪系统,只清除玩家放置的流体
  • 效果:
    • 清理时间: 5-10秒 → <0.1秒
    • 性能提升: 100倍+
    • CPU占用: 100% → <5%

🐛 重要Bug修复

1. 床爆炸死亡Bug

  • 问题: 玩家使用床导致爆炸死亡后,重生无法放置方块
  • 解决: 添加重生事件监听,确保死亡玩家保持旁观者模式

2. 游戏倒计时不可见

  • 问题: 普通玩家只能看到最后3秒倒计时
  • 解决: 所有倒计时阶段都显示标题
    • 10秒以上: 副标题提示
    • 10-4秒: 主标题+音效
    • 最后3秒: 超大金色标题

3. 部分玩家无法放置方块

  • 问题: 离线玩家或死亡玩家仍在游戏列表中
  • 解决: 添加在线状态和存活状态检查

🎨 体验优化

空投提示增强

  • ✅ 全服大标题显示(2秒)
  • ✅ 双重音效(经验球+箱子)
  • ✅ 华丽粒子特效(图腾+烟花)
  • ✅ 打开者获得成就音效

方块放置权限

  • ✅ 只允许存活参与者放置方块
  • ✅ 非法操作显示明确提示
  • ✅ 水桶/岩浆桶使用限制

📋 完整更新列表

新增

  • 游戏出生点持久化系统
  • 流体追踪和清理系统
  • 重生事件监听
  • 水桶/岩浆桶使用限制
  • 配置文件出生点配置项

修复

  • 严重卡顿问题
  • 床爆炸死亡后无法放置方块
  • 部分玩家无法放置方块
  • 游戏倒计时显示不全
  • 空投打开提示不明显

优化

  • 竞技场清理性能(100倍+提升)
  • 倒计时显示效果
  • 空投打开视觉/音效反馈
  • 出生点设置提示信息
  • 在线状态和存活状态检查

📝 配置文件更新

如果从 v2.0.1 升级,请在 config.yml 中添加以下配置:

arena:
  # ... 其他配置 ...
  
  # 游戏出生点(使用 /ripvp setspawn 设置)
  spawn:
    world: 'world'      # 世界名
    x: 0.0              # X坐标
    y: 64.0             # Y坐标
    z: 0.0              # Z坐标
    yaw: 0.0            # 视角偏航角
    pitch: 0.0          # 视角俯仰角

或者直接删除旧配置文件,插件会自动生成新的。

🔧 安装/升级方法

全新安装

  1. 下载 RandomItemPVP-2.1.0.jar
  2. 放入服务器 plugins 文件夹
  3. 重启服务器
  4. 使用 /ripvp setspawn 设置游戏出生点
  5. 使用 /ripvp start 开始游戏

从 v2.0.1 升级

  1. 停止服务器
  2. 备份 plugins/RandomItemPVP/config.yml(可选)
  3. 替换 jar 文件
  4. 启动服务器
  5. 使用 /ripvp setspawn 重新设置游戏出生点

⚠️ 注意事项

  1. 必须重新设置出生点: 升级后第一次请使用 /ripvp setspawn 设置出生点
  2. Java 21 要求: 本插件需要 Java 21 或更高版本
  3. Folia 兼容: 完全支持 Folia 多线程服务器
  4. 备份建议: 升级前建议备份配置文件

🐛 已知问题

目前暂无已知严重问题。

📞 反馈与支持

如有问题或建议,请在 GitHub Issues 中反馈。


感谢使用 RandomItemPVP! 🎮

RandomItemPVP v2.0.1 - 物品权重系统 & 重要Bug修复

31 Oct 16:40
cf7317e

Choose a tag to compare

🎮 RandomItemPVP v2.0.1

一款充满刺激的 Minecraft 大逃杀插件

Minecraft
Server
Folia
Java


✨ 新增功能

🎲 物品权重系统

  • ✅ 可在配置文件中自定义不同物品的出现概率
  • ✅ 管理员可调整稀有物品和常见物品的掉落频率
  • ✅ 支持热重载权重配置(/ripvp reload
  • ✅ 预设配置:武器、工具、方块高频率(30-60),杂物极低频率(1)

🧨 苦力怕雨事件

  • ✅ 5只苦力怕从30格高空降落
  • ✅ 自带10秒缓降效果,防止摔死
  • ✅ 特殊粒子和音效提示

⚡ 最后一圈事件加速

  • ✅ 边界缩小到最小时,随机事件频率提升4倍
  • ✅ 正常:30-120秒一次
  • ✅ 最后一圈:10-30秒一次

🧪 药水随机效果系统

  • ✅ 获得的药水自动带有随机有用效果
  • ✅ 包括:强效治疗、力量、速度、抗火、隐身等14种效果
  • ✅ 适用于普通药水、喷溅药水、滞留药水

🐛 重要 Bug 修复

玩家状态修复

  • ✅ 修复玩家重新加入游戏被强制设为观察者的问题
  • ✅ 修复中途退出的玩家仍被计入存活人数的问题
  • ✅ 修复玩家死亡后仍被判定为获胜者的问题
  • ✅ 修复玩家离线后重新上线导致游戏判定异常的问题
  • ✅ 改进存活玩家追踪机制,使用独立列表而非依赖游戏模式

游戏清理修复

  • ✅ 修复空投信标方块清理后留下小洞的问题
  • ✅ 修复游戏结束后流动的水和岩浆不被清除的问题
  • ✅ 修复玩家药水效果(如金苹果效果)在游戏结束后不被清除的问题
  • ✅ 修复死亡玩家药水效果残留的问题

状态追踪改进

  • ✅ 优化玩家重新加入游戏的逻辑(存活玩家恢复生存模式)
  • ✅ 玩家离线时自动检查游戏是否结束
  • ✅ 修复游戏结束时对离线玩家的处理
  • ✅ 提升游戏状态追踪的可靠性

🎯 改进与优化

  • ✨ 添加玩家离线事件的完整处理
  • ✨ 空投系统现在会保存并恢复原始方块类型
  • ✨ 游戏结束时扫描并清除竞技场范围内所有流体方块
  • ✨ 事件系统重构为连续触发模式,增加游戏紧张感
  • ✨ 物品权重预设优化:战斗物品权重30-60,杂物权重仅1

📦 安装方法

前置要求

  • 服务器核心:Luminol 1.21.7 / Paper 1.21+ / Folia
  • Java 版本:21 或更高
  • 内存:建议至少 2GB

安装步骤

  1. 下载插件

    • 从本页面下载 RandomItemPVP-2.0.1.jar
  2. 安装到服务器

    # 将 jar 文件放入 plugins 目录
    cp RandomItemPVP-2.0.1.jar /your/server/plugins/
  3. 重启服务器

    restart
  4. 设置游戏点(重要!)

    # 在游戏中输入,这将是玩家集合和出生的位置
    /ripvp setspawn

    ⚠️ 必须先设置出生点才能开始游戏!

  5. 开始游戏

    /ripvp start

🎮 核心特性

🎲 随机物品系统

  • 玩家每5秒自动获得随机物品
  • 智能物品过滤,排除无用物品
  • 武器工具自动附魔
  • 可配置物品权重系统(v2.0.1 新增)

🌐 大逃杀机制

  • 缩圈系统:边界逐渐缩小
  • 边界伤害:可穿过但会扣血
  • 高空出生:128格基岩柱均匀分布
  • 缓降效果:防止摔伤

🎁 空投系统

  • 定期空投补给箱
  • 包含高级物品(图腾、下界合金、附魔金苹果等)
  • 粒子和音效提示

⚡ 随机事件

  • 箭雨、怪物围攻、恶魂袭击
  • 苦力怕雨(v2.0.1 新增)
  • 最后一圈事件加速(v2.0.1 新增)

🏆 平衡性系统

  • 击杀奖励:钻石、附魔金苹果、经验
  • 赏金猎人:击杀高连杀玩家获得额外奖励
  • 弱者保护:连续死亡获得补偿
  • 高连杀惩罚:缓慢、发光等负面效果

🎯 特殊物品能力

  • 投掷TNT:右键投掷,2.5秒后爆炸
  • 火焰弹:快速投掷,点燃目标
  • 末影水晶:可放置在任何方块上

📝 指令

指令 描述 权限
/ripvp start 发起游戏(30秒倒计时) ripvp.use
/ripvp join 加入准备中的游戏 ripvp.use
/ripvp leave 退出准备中的游戏 ripvp.use
/ripvp status 查看游戏状态 ripvp.use
/ripvp stop 强制结束当前游戏 ripvp.admin (OP)
/ripvp cancel 取消准备中的游戏 ripvp.admin (OP)
/ripvp setspawn 设置游戏出生点 ripvp.admin (OP)
/ripvp reload 重载配置文件 ripvp.admin (OP)

📊 完整更新日志

查看完整功能列表和文档,请访问项目 README.md


🙏 致谢

  • Paper Team - 提供优秀的服务器核心
  • Folia Team - 多线程架构支持
  • 所有贡献者 - 感谢你们的反馈和支持!

📞 反馈与支持

如遇到问题或有建议,请在 Issues 页面提交


如果这个插件对你有帮助,请给个 ⭐ Star!

Made with ❤️ by Narcssu-Cursor