# CocoLogger
# 法语
## 向下滚动以获取英文版本
CocoLogger 是一个用于 Minecraft Spigot/Paper 1.21.4 服务器的高级日志插件。 它允许跟踪服务器上所有玩家的活动,并具有现代的 Web 界面以查看和分析数据。
## 介绍
此插件是为了满足 Minecraft 服务器上的监控和调查需求而开发的。 它会自动记录所有重要的玩家动作,并提供直观的 Web 界面来查看这些信息。
### 主要功能
**完整的日志记录系统**
- 记录放置和破坏的方块,精确坐标
- 跟踪物品交互(使用、点击)
- 记录告示牌,包含完整内容(书写和修改)
- 所有动作的精确时间戳
- 通过姓名和 UUID 识别玩家
**现代的 Web 界面**
- 仪表板,具有实时统计信息
- 使用 JWT 的安全身份验证系统
- 通过玩家、动作类型、期间的高级过滤器
- 日志中的自由搜索
- 显示物品纹理和玩家头像
- 响应式设计,适用于移动设备和桌面设备
- 智能分页,适用于大量数据
**灵活的数据库**
- 默认情况下集成了 H2 数据库(无需配置)
- 可选的 MySQL 支持,具有自动故障转移
- 使用批量处理进行性能优化
- 可配置的自动备份
## 安装
### 先决条件
- Spigot 或 Paper 服务器版本 1.21.4
- Java 17 或更高版本
### 安装步骤
1. 从 `target/` 文件夹下载 `CocoLogger.jar` 文件
2. 将文件放在服务器的 `plugins/` 文件夹中
3. 启动或重新启动服务器
4. 插件将在 `plugins/CocoLogger/` 中自动创建其配置
首次启动时,CocoLogger 会自动生成:
- `config.yml` 配置文件
- 本地 H2 数据库
- 运行所需的文件
## 配置
### 基本配置
`config.yml` 文件包含所有配置选项:
```yaml
# 数据库配置
database:
type: "H2" # H2 或 MYSQL
h2:
file: "plugins/CocoLogger/database.db"
mysql:
host: "localhost"
port: 3306
database: "cocologger"
username: "root"
password: "password"
useSSL: false
# Web 界面
web:
port: 8767
auth:
username: "admin"
password: "ChangeMoi123!"
jwt_secret: "CocoLogger_Secret_Key_Change_Me_In_Production"
jwt_expiry_hours: 24
```
### 日志配置
您可以启用或禁用每种类型的日志记录:
```yaml
logging:
blocks:
enabled: true
place: true # 放置的方块
break: true # 破坏的方块
items:
enabled: true
use: true # 物品使用
interact: true # 交互
left_click: false
right_click: false
signs:
enabled: true
write: true # 告示牌书写
edit: true # 告示牌编辑
```
### 性能优化
```yaml
performance:
batch_size: 100 # 插入的批处理大小
save_interval: 30 # 保存间隔(秒)
max_memory_entries: 1000 # 内存中的最大条目
```
## 使用
### 可用的命令
所有命令都需要 `cocologger.admin` 权限:
- `/cocologger reload` -重新加载配置
- `/cocologger status` - 显示插件状态
- `/cocologger web` - Web 界面信息
- `/clog` 或 `/cl` - 命令别名
### 权限
| 权限 | 描述 | 默认 |
|------------|-------------|---------|
| `cocologger.admin` | 访问管理员命令 | 操作员 |
| `cocologger.exempt` | 免除日志记录 | 无 |
### Web 界面
Web 界面可访问地址为 `http://ipduserveur:8767`
**默认登录:**
- 用户名:`admin`
- 密码:`ChangeMoi123!`
**界面功能:**
- 带有全局统计数据的概述
- 通过玩家、动作类型、期间进行过滤
- 所有字段的文本搜索
- 显示坐标和世界
- 大量数据量的分页
## 数据库
### H2 模式(默认)
H2 模式不需要任何配置。 数据库会自动在插件文件夹中创建。 此模式非常适合大多数服务器。
### MySQL 模式
要使用 MySQL,请修改配置:
```yaml
database:
type: "MYSQL"
mysql:
host: "votre-serveur-mysql"
port: 3306
database: "cocologger"
username: "votre-utilisateur"
password: "votre-mot-de-passe"
```
插件将自动创建必要的表。 如果 MySQL 连接失败,它将自动切换到 H2。
## 故障排除
### 插件无法启动
1. 验证您是否使用 Java 17 或更高版本
2. 确保您拥有 Spigot/Paper 1.21.4
3. 检查服务器日志以获取详细的错误消息
4. 验证插件文件夹的权限
### Web 界面无法访问
1. 验证配置的端口(默认为 8767)是否未被占用
2. 检查服务器的防火墙规则
3. 使用 `http://localhost:8767` 测试本地访问
4. 检查插件日志以获取启动错误
### 数据库问题
1. 在 H2 模式下,验证插件文件夹中的写入权限
2. 在 MySQL 模式下,使用配置的参数测试连接
3. 如果 MySQL 连接失败,插件将自动切换到 H2
4. 检查日志以获取连接错误的详细信息
### 性能
如果您发现速度变慢:
1. 增加配置中的 `batch_size` 值
2. 减少 `save_interval` 以进行更频繁的备份
3. 禁用不太重要的操作日志记录(左键/右键单击)
4. 对于大型数据,请使用 MySQL 以获得更好的性能
## 安全性
### 重要建议
1. **立即更改** Web 界面的默认密码
2. **修改 JWT 密钥** `jwt_secret` 在生产环境中
3. **限制** 通过防火墙访问 Web 界面端口
4. **使用 HTTPS** 带反向代理进行外部访问
5. **定期备份** 数据库
### 安全配置
```yaml
web:
auth:
username: "admin"
password: "MotDePasseComplexe123!"
jwt_secret: "CleSecreteTresLongueEtComplexePourProduction"
jwt_expiry_hours: 8 # 减少有效期限
```
## 版本历史
### 版本 1.0.0
- 用于方块、物品和告示牌的完整日志记录系统
- 使用 JWT 身份验证的 Web 界面
- 支持 H2 和 MySQL 数据库
- 带有实时统计信息的仪表板
- 完整的 REST API
- 高级过滤和搜索
- 显示 Minecraft 纹理
- 灵活的配置和性能优化
## 支持
在 Discord 上联系我! 我会尽快回复。
---
CocoLogger 由 Lechat_ (@lechat87 在 discord 上有任何要求)