- 版权类型
- 原创
- 插件中文名称
- 魔法点券日志
- 插件英文名称
- MagicPointsLog
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Purpur
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
[MD]
# MagicPointsLog 点券流水记录插件
> 流水能查到是哪个插件动的手 · 来源追踪 · 收支统计 · 纠纷对账
**作者** Aisen | **联系 QQ** 1797950 | **插件交流群** 974349582
原创玩法、功能扩展、插件定制,欢迎联系 QQ 1797950 洽谈。

---
## 简介
MagicPointsLog 是一款面向 PlayerPoints 点券经济的流水记录与查询插件。
同类记账插件大多只写「谁、变了多少」,真出纠纷还得挨个翻插件日志对时间点。MagicPointsLog 会在每笔流水里写明**来源**——是指令发的、哪个插件类调的、还是玩家/控制台操作,竖线分栏,方便肉眼扫读和 grep 检索:
```
2026-10-10 01:15:59 | 获得 | Steve | +100 | 150 | com.example.shop.ShopPlugin:buy(ShopPlugin.java:42)
2026-10-10 01:16:00 | 花费 | Steve | -30 | 120 | 指令
2026-10-10 01:16:01 | 重置 | Steve | 0 | 0 | 玩家或控制台
```
「氪金没到账」「没买怎么扣了」「奖励没发」「有人刷点券」——翻一眼流水就能定位是哪个插件发的、谁扣的,拿证据说话,也方便审计管理操作。
> 纯 Bukkit API 开发,兼容 1.8.8 ~ 1.21.x / 26.x,前置 PlayerPoints,无授权验证。
---
## 功能特性
- **来源追踪** — 堆栈分析每笔点券变动的触发方,来源写完整类名+方法,同类少见的排障能力
- **流水留档** — 每笔获得/花费/重置写入 `logs/`,竖线分栏:时间 / 类型 / 玩家 / 金额 / 变动后余额 / 来源
- **收支统计** — 按 UUID 累计每人消耗/获取,玩家改名不丢数据,还支持旧名反查
- **查询命令** — 个人流水、消耗榜/获取榜、全服汇总、一键清除,管理对账不用开文件
- **滚动切分** — 按日期或 10M 自动切分旧日志,可选 gz 压缩;纯文件 IO,不绑服务端内部日志实现,升级不炸
- **流水全存** — 记录全量保存可追溯,`check` 默认只展示最近 10 条
- **榜单可调** — 前 N 名人数在配置里改,默认 5
- **开箱即用** — 默认配置即可运行,提示语、开关全在 `config.yml` 可改
---
## 命令
- `/mpl` — 查看帮助
- `/mpl check <玩家>` — 查看玩家收支与最近流水 — 权限 `magicpointslog.check`
- `/mpl top` — 查看消耗/获取榜单 — 权限 `magicpointslog.top`
- `/mpl clear <玩家>` — 清除玩家记录 — 权限 `magicpointslog.clear`
- `/mpl all` — 查看全服收支汇总 — 权限 `magicpointslog.all`
- `/mpl reload` — 重载插件配置 — 权限 `magicpointslog.reload`
> 别名:`/magicpointslog`(等同 `/mpl`)
---
## 权限
- `magicpointslog.check` — 默认 OP
- `magicpointslog.top` — 默认 OP
- `magicpointslog.clear` — 默认 OP
- `magicpointslog.all` — 默认 OP
- `magicpointslog.reload` — 默认 OP
---
## 配置示例
完整配置见插件生成的 `plugins/MagicPointsLog/config.yml`,注释齐全。
```yaml
options:
log-uuid: false
log-console: true
log-compress: false
log-split-by-date: false
top-size: 5
texts:
no-permission: "&f&l MagicPointsLog &8- &f你没有权限使用该命令"
format-error: "&f&l MagicPointsLog &8- &f指令格式错误"
not-found: "&f&l MagicPointsLog &8- &f没有这个玩家的记录"
clear: "&f&l MagicPointsLog &8- &f该玩家记录已清除"
reload: "&f&l MagicPointsLog &8- &f配置已重载"
```
---
## 安装说明
1. 前置安装 PlayerPoints
2. 下载 `MagicPointsLog-1.0.0.jar`,放入 `plugins/`
3. 启动服务器,自动生成 `plugins/MagicPointsLog/config.yml`
4. 按需调整开关与榜单人数
5. 执行 `/mpl reload` 或重启服务器
---
## 兼容性
- **游戏版本** — 1.8.8 ~ 1.21.x / 26.x
- **服务端** — Paper / Purpur / Spigot
- **Java** — 8+
- **前置依赖** — PlayerPoints
- **可选依赖** — 无
---
## 常见问题
**Q:玩家说氪金点券没到账,怎么查?**
查 `logs/latest.log`。有「获得」条目且来源是发卡/商店插件,说明已到账,玩家漏看或在说辞;没有任何记录则说明上游支付/发卡没发货,问题不在点券端,直接拿这个查支付插件。
**Q:玩家说没买怎么扣了点券?**
查「花费」条目的来源。来源是商店插件即为误触或插件问题;来源是「指令」则为有人用命令扣除,可进一步审计管理操作。
**Q:怀疑有插件刷点券怎么办?**
搜流水里的「获得」条目,看来源是不是集中指向同一个插件类,再顺着那个插件查发奖逻辑。
**Q:流水会不会无限膨胀?**
流水全量保存便于追溯,`check` 只展示最近 10 条。按日期或 10M 自动切分旧日志,可开启 gz 压缩。
**Q:玩家改名会丢统计吗?**
不会。统计按 UUID 存储,`check` / `clear` 也支持按存档里的旧名反查。
**Q:老的 pointslook / PointLogger 数据能迁移吗?**
不支持迁移,从零开始记账。旧文件可自行留档备查。
**Q:启动有 api-version 警告?**
为兼容 1.8.8 故意不写 api-version,警告可忽略,不影响功能。
---
感谢使用,欢迎反馈建议!
[/MD]