f277711082001a559881383a7fe8bc9f04a9041a
MC Report System
游戏玩家投诉建议申诉系统。支持 Web 端 + Paper 插件双端提交,MySQL 存储,JWT 鉴权,三级角色(服主/管理员/玩家)。
功能
| 模块 | 说明 |
|---|---|
| 举报 | 玩家举报违规行为,可指定目标玩家,上传截图/视频 |
| 建议 | 玩家提交改进建议 |
| 申诉 | 封禁申诉(Web端)+ 结果申诉(对处理不服) |
| 接单制 | 管理员认领工单,一人一单,可转单 |
| 审批流 | 待处理→处理中→待补充→已解决/已驳回→关闭 |
| 投票 | 分组子服定时/不定时投票,盲投制,管理员1.5票权 |
| 更新内容 | PCL风格功能投票,按时间/热度排序,分组筛选 |
| 通知 | SMTP邮件 + Discord Webhook 双通道 |
| 导出 | CSV格式导出工单/被举报人/日志(服主专享) |
| 插件 | Paper 1.20+ 插件,游戏内注册/登录/举报/追踪 |
快速开始
# 安装依赖
npm install
# 启动
node backend/server.js
# → 访问 http://localhost:3100/#/install
安装向导两步完成:MySQL 连接配置 → 创建服主账号。重启后自动加载业务路由。
技术栈
| 层 | 技术 |
|---|---|
| 后端 | Node.js + Express + mysql2 |
| 前端 | Vanilla JS SPA + Hash路由 |
| 数据库 | MySQL 5.7+ |
| 认证 | JWT(256位随机密钥) |
| 安全 | Helmet + Rate Limit + XSS + CSP |
| 插件 | Paper API 1.20.4 + java.net.HttpURLConnection |
角色权限
| 操作 | 玩家 | 管理员 | 服主 |
|---|---|---|---|
| 提交工单 | ✅ | ✅ | ✅ |
| 查看工单 | 自己 | 待处理+自己接的 | 全部 |
| 接单 | — | 举报/申诉 | 全部 |
| 处理工单 | — | 自己接的 | 全部 |
| 用户管理 | — | ✅ | ✅ |
| 系统设置 | — | ✅ | ✅ |
| 导出数据 | — | — | ✅ |
| 投票管理 | — | — | ✅ |
部署
# 生产环境变量
PORT=3100 CORS_ORIGIN=https://your-domain.com node backend/server.js
# PM2
pm2 start backend/server.js --name mc-report
# Nginx 反代
# include nginx.inc;
目录
├── backend/
│ ├── server.js # Express入口
│ ├── db.js # MySQL连接池 + 建表
│ ├── mailer.js # SMTP邮件
│ ├── captcha.js # SVG验证码
│ ├── webhook.js # Discord Webhook
│ ├── middleware/
│ │ ├── auth.js # JWT认证
│ │ ├── security.js # 限速+XSS+APIKey
│ │ └── upload.js # 文件上传安全
│ └── routes/
│ ├── auth.js # 注册/登录
│ ├── tickets.js # 工单核心
│ ├── install.js # 安装向导
│ ├── external.js # 外部API(插件用)
│ └── ... # 其他路由
├── public/ # 前端SPA
├── mc-report-plugin/ # Paper 1.20+ 插件
├── nginx.inc # Nginx额外配置
└── data/ # 运行时数据
Description
Languages
JavaScript
94.9%
CSS
4.6%
HTML
0.5%