94 lines
3.0 KiB
Markdown
94 lines
3.0 KiB
Markdown
# MC Report System
|
||
|
||
游戏玩家投诉建议申诉系统。支持 Web 端 + Paper 插件双端提交,MySQL 存储,JWT 鉴权,三级角色(服主/管理员/玩家)。
|
||
|
||
## 功能
|
||
|
||
| 模块 | 说明 |
|
||
|------|------|
|
||
| 举报 | 玩家举报违规行为,可指定目标玩家,上传截图/视频 |
|
||
| 建议 | 玩家提交改进建议 |
|
||
| 申诉 | 封禁申诉(Web端)+ 结果申诉(对处理不服) |
|
||
| 接单制 | 管理员认领工单,一人一单,可转单 |
|
||
| 审批流 | 待处理→处理中→待补充→已解决/已驳回→关闭 |
|
||
| 投票 | 分组子服定时/不定时投票,盲投制,管理员1.5票权 |
|
||
| 更新内容 | PCL风格功能投票,按时间/热度排序,分组筛选 |
|
||
| 通知 | SMTP邮件 + Discord Webhook 双通道 |
|
||
| 导出 | CSV格式导出工单/被举报人/日志(服主专享) |
|
||
| 插件 | Paper 1.20+ 插件,游戏内注册/登录/举报/追踪 |
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 安装依赖
|
||
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 |
|
||
|
||
## 角色权限
|
||
|
||
| 操作 | 玩家 | 管理员 | 服主 |
|
||
|------|:--:|:--:|:--:|
|
||
| 提交工单 | ✅ | ✅ | ✅ |
|
||
| 查看工单 | 自己 | 待处理+自己接的 | 全部 |
|
||
| 接单 | — | 举报/申诉 | 全部 |
|
||
| 处理工单 | — | 自己接的 | 全部 |
|
||
| 用户管理 | — | ✅ | ✅ |
|
||
| 系统设置 | — | ✅ | ✅ |
|
||
| 导出数据 | — | — | ✅ |
|
||
| 投票管理 | — | — | ✅ |
|
||
|
||
## 部署
|
||
|
||
```bash
|
||
# 生产环境变量
|
||
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/ # 运行时数据
|
||
```
|