# ValeTickets - 为你的服务器提供简单的工单系统
ValeTickets 的目标是让玩家可以轻松地寻求帮助,让工作人员可以轻松地跟踪这些请求。它是一个小插件,带有游戏内命令和一个小型网页,方便工作人员使用。我利用业余时间来维护这个插件,所以我会尽量保持实用性和安全性。
## ▶️ 快速开始
1. 将 jar 文件放入 `plugins/` 目录,然后启动服务器。
2. 在游戏中(以 OP 身份),运行 `/ticketsetup` 命令来创建拥有者账户。
3. 访问 `http://<服务器IP>:<配置端口>/admin` 并登录。
4. 使用 `/ticketadmin add <用户名>` 命令添加管理员。
5. 玩家可以使用 `/ticket` 命令提交工单,使用 `/ticket check` 命令查看更新。
如果 `/admin` 返回 401 错误,可能是拥有者账户尚未创建,或者凭据不正确。
## 📖 它能做什么
- 玩家可以通过聊天中的简短引导流程来创建工单。
- 工作人员可以在小型网页仪表盘中查看工单。
- 可选的文件上传(截图/日志),并带有类型/大小限制。
- 简单的角色:`OWNER` (可以管理账户) 和 `ADMIN`。
- 公共表单上的基本速率限制,以减少垃圾邮件。
- 在工单更新时提供游戏内通知。
- *计划在未来的版本中支持 DiscordSRV 集成。*
## 🎮 命令
玩家
- `/ticket` - 启动简短的引导流程以创建工单
- `/ticket check` - 查看你的工单及其状态
管理员
- `/ticketadmin passwd` - 更改自己的密码
拥有者
- `/ticketsetup` - 创建第一个拥有者账户 (权限:`valetickets.setup`)
- `/ticketadmin add <用户名>` - 添加管理员
- `/ticketadmin reset <用户名>` - 重置管理员的密码
- `/ticketadmin list` - 列出账户
- `/ticketreload` - 重新加载插件配置并重启 Web 服务器 (权限:`valetickets.reload`)
示例
- `/ticketadmin add alice`
- `/ticketadmin reset bob`
## 🌐 Web 界面
- 公共表单:`http://<服务器IP>:8765/`
- 管理员仪表盘:`http://<服务器IP>:8765/admin`
- 更改密码:`http://<服务器IP>:8765/change-password`
## 🔒 安全性
- 密码使用 **Argon2id** 进行哈希处理。绝不允许明文密码。
- 插件以单个 jar 文件形式发布,其中包含所需库。
## ⚙️ 配置
`plugins/ValeTickets/config.yml`
```yml
web:
enabled: true
bind: 0.0.0.0
port: 8765
# 如何向玩家显示工单 URL
urlDisplay:
mode: "ip" # "ip", "domain", 或 "custom"
domain: "your-server.com" # 当 mode 为 "domain" 时使用
customMessage: "请查看我们的网站!" # 当 mode 为 "custom" 时使用
uploads:
enabled: true
dir: uploads
maxBytesPerTicket: 104857600 # 每个工单的总大小为 100 MB
maxBytesPerFile: 1048560 # 每个文件的大小为 10 MB
allowedTypes: ["png", "jpg", "jpeg", "txt"]
rateLimit:
windowSeconds: 600
maxTicketsPerWindow: 3
```
如果任何内容不清楚,请随时提出问题。该插件旨在易于在普通的 Paper 服务器上运行。
这个插件使用了 GPT-5、Gemini 2.5 和 Claude Sonnet 4。因此,通过重新分发或在具有 P2W 功能的服务器上使用此插件来获利是 **禁止的**。
请参阅许可文件以获取更多信息。