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

原创 闭源 工具 RedisPlayers-专为KKCraft大型服设计人数统计.支持PAPI 9.1

请登录后获取
版权类型
原创
插件中文名称
RedisPlayers
插件英文名称
RedisPlayers
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Folia
  4. Purpur
语言支持
中文(简体)
前置组件
PlaceholderAPI+https://www.spigotmc.org/resources/placeholderapi.6245/
适配版本(Java)
  1. 最新版本
  2. 26.x
  3. 1.21
  4. 1.20
  5. 1.19
  6. 1.18
  7. 1.17
  8. 1.16
  9. 1.15
  10. 1.14
  11. 1.13
  12. 1.12
  13. 1.11
  14. 1.10
  15. 1.9
  16. 1.8
  17. 1.7

⚡ RedisPlayers ⚡
基于 RedisBungee 的跨服在线人数统计插件 | Jedis + Pipeline 高性能查询

📌 前言

本插件为 KKCraft 自用的跨服人数统计插件,现 KKCraft 已永久关闭。

发布此插件,希望能帮助一些有需要的人,为社区做贡献。后续将发布更多 KKCraft 相关的插件以及源码。

本人将不再开服,非插件问题请勿联系。


⚙ 工作流程

连接 Redis — 插件启动时通过 Jedis 连接池连接到 RedisBungee 所使用的 Redis 实例
扫描代理 — 使用 SCAN 命令遍历所有 BungeeCord 代理节点的在线玩家集合,避免 KEYS 阻塞
批量查询 — 通过 Pipeline 批量获取每位玩家所在的子服务器,按 1000 人一批分批处理
统计汇总 — 将各服务器人数汇总,按配置文件中的服务器组进行分组统计
缓存更新 — 定时异步刷新缓存(默认每 200 tick),通过 PlaceholderAPI 变量对外提供数据


🔢 PAPI 变量

代码:
%sgc_global%
— 全服总在线人数(所有 BC 代理上的玩家)
代码:
%sgc_group_组名%
— 指定服务器组的在线人数
代码:
%sgc_server_服务器名%
— 指定单个子服务器的在线人数(无需预配置)

示例:
代码:
%sgc_group_起床战争%
返回「起床战争」组下所有子服的总人数


🚀 性能优化

  • Jedis 连接池 — 基于 JedisPool 管理连接,支持自定义连接池大小、空闲检测,高并发下稳定高效
  • Pipeline 批量查询 — 将数百上千次 Redis 请求合并为批量管道操作,大幅减少网络往返开销
  • SCAN 替代 KEYS — 使用增量式 SCAN 遍历 key,避免 KEYS 命令在大数据量下阻塞 Redis
  • 分批处理 — 玩家数据按 1000 人一批分批 Pipeline,防止单次管道过大导致内存峰值
  • ConcurrentHashMap 缓存 — 线程安全的内存缓存,PAPI 变量读取零锁竞争
  • 异步刷新 — 所有 Redis 查询在异步线程执行,不阻塞主线程,零 TPS 影响


📋 命令

代码:
/sb reload
— 重载配置文件并刷新缓存

命令别名:
代码:
/sb
  权限节点:
代码:
RedisPlayers.admin
(默认 OP)


📝 配置文件

YAML:
# Redis 连接配置
redis:
  host: localhost
  port: 6379
  password: ''
  pool-size: 2          # 连接池大小
  network-id: main      # RedisBungee 的 network-id

# 缓存刷新间隔(单位:tick,20tick = 1秒)
cache-interval: 200

# 调试模式
debug: false

# 服务器组配置:组名 -> 子服务器列表
groups:
  生存服:
    - survival_1
    - survival_2
  小游戏:
    - minigame_lobby
    - bedwars_1
    - bedwars_2

# PAPI 变量用法:
# %sgc_global% - 获取全服总人数(所有BC上的玩家)
# %sgc_group_起床战争% - 获取组内总人数
# %sgc_server_服务器名% - 获取单个服务器人数(任意服务器,无需配置)


📦 依赖

  • RedisBungee(必须,插件读取其 Redis 数据)
  • PlaceholderAPI(可选,提供 PAPI 变量支持)
  • Redis 服务器


🛡 安全检测

插件无后门无病毒,VirusTotal 安全审核结果:

💬 交流反馈

插件交流群:908213883

有问题群内反馈,将会很快得到回复解决问题。
作者
Kun_God
价格
91.00金粒
下载
11
查看
289
首次发布
最后更新

评分

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