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

原创 工具 反作弊 BehaveLogger - 轻量级玩家行为日志记录插件 1.4.0

请登录后获取
版权类型
原创
插件中文名称
行为日志记录器
插件英文名称
BehaveLogger
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. 其他核心
语言支持
中文(简体)
适配版本(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
[MD] ## 📌 插件简介 **BehaveLogger** 是一款轻量级的 Minecraft 服务器玩家行为日志记录插件,能够全面记录服务器内玩家的各类操作行为,并将数据持久化存储到 MySQL 数据库中,方便服务器管理员进行事后查询、审计与分析。 无论是排查恶意破坏、追溯物品去向,还是统计分析玩家行为数据,BehaveLogger 都能为你提供可靠的数据支撑。 --- ## ✨ 功能特性 ### 🧱 方块交互记录 - 右键点击方块 - 左键点击方块 - 左键/右键点击空气 - 踩地交互(压力板等物理交互) - 破坏方块 - 放置方块 ### 📦 物品操作记录 - 拾取物品(记录物品类型与数量) - 丢弃物品(记录物品类型与数量) ### 🖥️ 容器/GUI 操作记录 - 打开容器(记录容器类型与标题) - 关闭容器 - 容器内点击操作(记录点击物品类型、数量、槽位索引、左键/右键/中键、是否 Shift 点击) ### 📊 详细数据记录 每条行为记录包含以下信息: | 字段 | 说明 | |------|------| | `time` | 行为发生时间 | | `server` | 服务器标识(支持多服区分) | | `player` | 玩家名称 | | `world` | 所在世界 | | `action` | 行为类型 | | `hand_type` | 主手物品类型 | | `hand_display` | 主手物品自定义名称 | | `p_x / p_y / p_z` | 玩家坐标 | | `target_type` | 目标方块/物品类型 | | `t_x / t_y / t_z` | 目标坐标 | | `gui_type` | 容器类型 | | `gui_title` | 容器标题 | | `click_type` | 点击的物品类型 | | `click_amount` | 点击的物品数量 | | `click_index` | 点击的槽位索引 | | `click_action` | 点击方式(左键/右键/中键) | | `click_shift` | 是否 Shift 点击 | | `extra` | 附加信息(如事件被取消、物品数量等) | --- ## 🏗️ 技术亮点 - **HikariCP 连接池**:使用高性能数据库连接池,连接复用,避免频繁创建/销毁连接 - **异步批量写入**:行为数据先进入内存队列,再以批量方式异步写入数据库,不阻塞主线程 - **按天分表**:每天自动创建新数据表(表名格式 `yyyy_MM_dd`),避免单表数据量过大,方便按日期查询和归档(建议单独放一个库) - **队列溢出保护**:缓存队列最大容量 5000 条,超出时自动丢弃并告警,防止内存溢出 - **失败重试**:批量插入失败时,数据会按原顺序重新加入队列头部,确保数据不丢失 - **优雅关闭**:插件卸载时自动刷新队列中所有剩余数据,确保数据完整写入 --- ## 📋 环境要求(理论) | 项目 | 要求 | |------|------| | 服务端 | Bukkit / Spigot 1.7.10+ | | Java | 1.8+ | | 数据库 | MySQL 5.7+ / MySQL 8.x | | 依赖 | 无需额外安装其他插件 | 实际测试版本: - CatServer 1.12.2 - MySQL 5.7.33 - Eclipse Adoptium Java jdk-8.0.492.9-hotspot --- ## 📥 安装方法 1. 将 `BehaveLogger-x.x.x.jar` 放入服务器的 `plugins` 目录 2. 启动服务器,插件会自动生成默认配置文件 3. 关闭服务器,编辑 `plugins/BehaveLogger/config.yml` 配置数据库连接信息 4. 重新启动服务器,插件将自动创建所需的数据表 > ⚠️ 请确保 MySQL 数据库已提前创建好对应的数据库,插件不会自动创建数据库,只会自动创建表。 --- ## ⚙️ 配置文件 配置文件路径:`plugins/BehaveLogger/config.yml` ```yaml # 插件消息前缀(支持颜色代码) pluginTitle: "§3Behave§bLogger §7§l>>> §a" # MySQL 数据库配置 mysql: host: "localhost" # 数据库地址 port: 3306 # 数据库端口 user: "behavelogger" # 数据库用户名 password: "behavelogger" # 数据库密码 database: "behavelogger" # 数据库名称 options: "useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true" # 服务器标识(多服环境下用于区分不同服务器) server: "家园一区" # 调试模式(开启后控制台会输出详细的队列状态和批量插入日志) debug: false ``` ### 配置项说明 | 配置项 | 说明 | |--------|------| | `pluginTitle` | 插件消息前缀,支持 Minecraft 颜色代码(§) | | `mysql.host` | MySQL 服务器地址 | | `mysql.port` | MySQL 服务器端口 | | `mysql.user` | 数据库用户名 | | `mysql.password` | 数据库密码 | | `mysql.database` | 数据库名称(需提前创建) | | `mysql.options` | JDBC 连接参数,默认配置了 SSL 关闭、时区、编码等 | | `server` | 服务器标识名称,多服部署时用于区分数据来源 | | `debug` | 调试模式开关,开启后输出队列状态、批量插入详情等日志 | --- ## 🗄️ 数据库表结构 插件会按天自动创建数据表,表名格式为 `yyyy_MM_dd`(如 `2026_05_20`)。 ```sql CREATE TABLE IF NOT EXISTS `2026_05_20` ( `id` INT AUTO_INCREMENT PRIMARY KEY, `time` DATETIME NOT NULL, `server` VARCHAR(255), `player` VARCHAR(255) NOT NULL, `world` VARCHAR(255), `action` VARCHAR(50), `hand_type` VARCHAR(255), `hand_display` VARCHAR(255), `p_x` DOUBLE, `p_y` DOUBLE, `p_z` DOUBLE, `target_type` VARCHAR(255), `t_x` DOUBLE, `t_y` DOUBLE, `t_z` DOUBLE, `gui_type` VARCHAR(255), `gui_title` VARCHAR(255), `click_type` VARCHAR(50), `click_amount` VARCHAR(50), `click_index` VARCHAR(50), `click_action` VARCHAR(255), `click_shift` VARCHAR(10), `extra` TEXT ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ``` --- ## ❓ 常见问题 **Q: 插件启动后提示"数据库连接失败"怎么办?** A: 请检查以下几点: - MySQL 服务是否已启动 - `config.yml` 中的数据库地址、端口、用户名、密码是否正确 - 数据库是否已提前创建 - MySQL 用户是否有对应数据库的访问权限 **Q: 插件会影响服务器性能吗?** A: 不会。插件采用异步批量写入机制,所有数据库操作都在独立线程中执行,不会阻塞服务器主线程。同时使用 HikariCP 连接池管理数据库连接,高效且稳定。 **Q: 支持多服务器部署吗?** A: 支持。通过修改 `config.yml` 中的 `server` 字段为不同名称,即可在同一个数据库中区分来自不同服务器的数据。 **Q: 数据会丢失吗?** A: 插件在正常关闭时会自动刷新队列中的所有数据。只有在服务器异常崩溃且队列中仍有未写入的数据时,才可能丢失少量记录。建议配合定期备份确保数据安全。 **Q: 数据量大了怎么办?** A: 插件采用按天分表策略,每天的数据存储在独立的表中,查询时只需针对特定日期的表,性能不会受历史数据量影响。历史数据可以方便地归档或清理。 --- ## 📜 版本信息 **当前最新发布版本:1.4.0** **v1.4.0** - 插件正式发布 - 对插件进行重构 - 修复批量插入失败时,数据按原顺序重新入队头部的问题 - 优化数据库连接池管理,提升操作效率 **v1.1 ~ v1.3** - 多项内部优化与改进(具体变更暂未记录) **v1.0** - 石猴问世,版本初啼 --- ## 📮 联系作者 | 项目 | 联系方式 / 说明 | |:---|:---| | **作者 QQ** | `1011115423` | | **交流群** | `1104439995` | | **版本反馈** | 欢迎反馈 1.12.2 版本的 Bug 或建议 | | **插件定制** | 接受其他插件定制开发需求 | [/MD]
作者
Spink°
价格
50.00金粒
下载
15
查看
287
首次发布
最后更新

评分

0.00 星 0 次评分

Spink° 的其他资源

后退
顶部 底部