适用平台:PaperMC 1.21+
核心功能:统计并可视化玩家月度在线时长,数据储存于 MySQL,独立GUI交互,支持月份切换。
下载链接:AgStatistic


功能简介

AgStatistic 通过监听玩家上下线事件,将登录/退出时间记录到 MySQL 数据库,并提供 /stat 命令,一键弹出玩家每月每日在线统计的箱子式 GUI(可左右切换月份),直观呈现在线时间分布。


配合其他软件对接数据库,可实现类似GitHub的活动图表。


安装方法

  1. 前置要求
    • 已安装并运行 PaperMC 1.21 或更高版本服务器。
    • 拥有可连接的 MySQL 数据库实例。
  2. 插件部署
    • 下载 AgStatistic.jar
    • 放入 plugins/ 文件夹。
    • 启动或重启服务器(首次启动会自动生成 config.yml)。
  3. 数据库配置
    • 修改 plugins/AgStatistic/config.yml,填入 MySQL 连接信息:
      1
      2
      3
      4
      5
      6
      database:
      ip: localhost
      port: 3306
      database: agatha
      username: root
      password: password
    • 插件会自动创建 player_sessions 表。


核心指令

  • /stat
    • 所有玩家可用,主命令且唯一命令
    • 打开月历式在线统计GUI,显示当前月每日在线时长。
    • 箱子GUI两端为“上一个月/下一个月”按钮,可切换并查看任意月份数据。

数据结构说明

1. 配置文件(config.yml

1
2
3
4
5
6
database:
ip: localhost # MySQL服务器地址
port: 3306 # 端口
database: agatha # 数据库名
username: root # 用户名
password: password # 密码

2. 数据表结构(自动建表)

1
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS player_sessions (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
timestamp BIGINT NOT NULL,
event_type ENUM('join', 'quit') NOT NULL,
INDEX idx_username (username),
INDEX idx_timestamp (timestamp)
);
  • username: 玩家名(不区分大小写)
  • timestamp: 登录或退出时间(毫秒,Unix时间戳)
  • event_type: ‘join’ 或 ‘quit’,表示上线或离线

3. 在线统计数据处理

  • 插件自动计算玩家每一天的在线秒数,支持跨天、跨月。
  • GUI统计展示按天分布,绿色玻璃为当天有在线,有时长区分深浅色。

GUI 交互说明

  • GUI为大箱子界面(6x9),每格代表日期,每月最多支持31天。
  • 左上角/右上角有告示牌:点左为上月,右为下月。
  • 背景为黑色玻璃,无数据为白色玻璃,有数据显示在线时长。
  • 箱子中央会短暂显示“正在加载…”。
  • 支持任意月份切换(历史or未来空白月份亦可浏览)。
  • 数据按秒统计,精准到跨天会话。

© 2025 MikeWu597 使用 Stellar 创建

琼ICP备2023004663号-3
湘公网安备 43010302001556号