参数多到没人会用的老举报插件

最早在做 mc违规处理系统 的时候,我总觉得把现场数据抓得越细越好。当时写了一个重型插件,每隔 40 ticks 就把在线玩家的坐标采样存进数据库;玩家真遇到熊孩子或者外挂想举报时,得在聊天框里一口气敲完 /report <场景> <开始时间> <结束时间> <区块范围> <标题> <理由>。

结果上线之后大家根本不会用。谁被偷了东西或者挨了打的时候,还有心思去算时间戳和区块范围?最后大家还是跑回 QQ 群里贴截图艾特管理员,那个塞满了采样逻辑的重型插件成了纯吃性能的摆设。

一句指令提交,网页端直接拿游戏密码登录

到了 2026 年 7 月 4 日(Commit 74775e9),我决定把那套笨重的方案彻底推倒重做,写出了轻量好用的 mc-report-system v1.0.0 并直接开源。

这次在游戏服务端专门适配了 Folia 26.1.2,把指令砍到了最简:玩家只需要在聊天框里敲一句 /report create <admin|superadmin> <被举报人> <理由>,就能立刻生成一张工单,并且可以按事情轻重直接指定交给普通管理员还是超级管理员处理。

光在游戏里敲字还不够,举证往往得贴截图、看进度。我用 Next.js 搭了配套的网页端,直接连上服务器现成的 AuthMe 数据库。玩家不需要在网页上重新注册一套账号,拿游戏里的用户名和密码就能直接登录跟进自己的举报单。

拉涉事双方进同一个工单对质

以前处理纠纷最累人的地方,是管理员得在举报人和被举报人之间两边传话,截图传来传去很容易闹误会。

在 mc-report-system 里,我加了一个“向被举报人开放工单”的开关。当管理员觉得需要听听另一方怎么解释时,点一下按钮,被举报的涉事玩家登录网页就能看到这张工单,双方直接在同一个时间线里摆证据对质,谁说了什么一清二楚。

这套轻巧的设计跑通之后特别顺手,到了 8 月 25 日就顺理成章演进成了 IGNG 全站统一的客服工单中心;后来在 10 月 5 日,我还专门为客户端单设了公开反馈仓库 IGNG-Ticketing-System-Client-Feedback,把这套工单思路一直沿用了下来。