把 PaperMC 服务器上已有插件的数据,聚合成一个浏览器就能访问的统一门户。 单个 JAR 交付 —— 内嵌 Web 服务与前端资源,服务器上不需要 Node,也不需要 Nginx。
MC User Panel turns the data already held by your PaperMC plugins into a single web portal. It ships as one JAR with an embedded HTTP server and a pre-built Vue frontend — no Node.js, no reverse proxy, no extra process on the game server.
- For players — passwordless login from in-game, personal stats, playtime, economy, land claims, inventory snapshots, build/break history, leaderboards, announcements, support tickets, redeem codes.
- For admins — operations dashboard, player search, permission and punishment management, CoreProtect rollback, inventory rollback, announcements and content pages, rotating broadcasts, redeem-code issuing, entity cleanup, backup triggering, full audit log.
- For visitors — a public landing page with server status, rules and announcements.
All 15 integrated plugins are softdepend. If one is missing, the matching feature is hidden
and the panel still starts — it never brings the server down because a dependency is absent.
Requirements: PaperMC 1.21+ · Java 21 · SQLite (bundled) or MySQL/MariaDB. License: MIT.
| 模块 | 说明 |
|---|---|
| 免密登录 | 游戏内 /panel login 生成一次性链接,浏览器点开即登录,无需另设密码 |
| 个人总览 | 在线时长、登录记录、经济余额、领地方块、权限组 |
| 数据统计 | 挖掘 / 建造 / 移动 / 死亡等时间序列,ECharts 图表 |
| 背包快照 | 查看自己的背包、末影箱、装备 |
| 建造日志 | 基于 CoreProtect 的个人放置与破坏记录 |
| 排行榜 | 多维度排名 |
| 公告与内容页 | 服务器公告、活动、规则 |
| 工单 | 提交问题、跟进回复、邮件通知 |
| 卡密兑换 | 输入兑换码领取物品 / 权限组 / 金币 / 领地方块 |
运营总览 · 玩家检索与详情 · 权限与用户组变更 · 封禁禁言踢出 · 区域回滚与背包回滚 · 公告与内容页管理 · 轮播播报(聊天 / 动作栏 / 标题 / Boss 栏)· 卡密签发与作废 · 实体清理 · 备份触发 · 审计日志
权限按模块细分(mcpanel.admin.ticket、mcpanel.admin.rollback …),可精确到人。
无需登录即可查看的服务器门面:在线状态、公告、规则页。
| 层 | 选型 |
|---|---|
| 插件本体 | Java 21 · PaperMC API 1.21 |
| Web 服务 | Javalin 6(内嵌 Jetty),随插件生命周期启停 |
| 数据库 | HikariCP + SQLite(默认,零配置)/ MySQL·MariaDB(可选),版本化迁移 |
| 前端 | Vue 3 + Vue Router + ECharts,Vite 构建 |
| 邮件 | Angus Mail(工单通知) |
| 测试 | MockBukkit 4 + JUnit 5 |
前端构建产物直接输出到 src/main/resources/web/,由 Javalin 从 JAR 内的 classpath 提供服务,
最终交付物只有一个 JAR。
| 插件 | 取用的能力 |
|---|---|
| AuthMe | 账号体系与登录态 |
| LuckPerms | 权限组读写 |
| CoreProtect | 方块日志、区域回滚 |
| Vault / VaultUnlocked | 经济接口 |
| EssentialsX | 经济、家、传送点、封禁禁言 |
| GriefPrevention | 领地与领地方块 |
| PlaceholderAPI | 变量解析(含 TAB 前后缀) |
| spark | TPS、内存、性能采样 |
| AnnouncerPlus | 播报 |
| ClearLag | 实体清理 |
| DriveBackupV2 | 备份触发 |
| InventoryRollbackPlus | 背包回滚 |
| TAB | 玩家前后缀(经 PlaceholderAPI 取,不直接依赖) |
缺任何一个都不影响启动,对应功能模块自动隐藏。
cd frontend && npm install && npm run build./gradlew shadowJar前端必须先构建(产物落到 src/main/resources/web/),再打 JAR。
产物在 build/libs/。
前端开发模式(后端跑在 4537 端口,Vite 自动代理 /api 与 /auth):
cd frontend && npm run dev- 把 JAR 丢进
plugins/,启动一次,生成plugins/MCUserPanel/config.yml - 按需修改配置(见下),
/panel reloadconfig热重载可变部分 - 玩家在游戏内输入
/panel login,点开链接即可使用
config.yml 分为 web / database / auth / stats / inventory / ticket /
mail / display / integrations 等段落。开箱即用,但上线前建议确认:
web.hostweb.port—— 监听地址与端口,公网暴露前请自行加反向代理与 HTTPSdatabase—— 默认 SQLite,切 MySQL 时填host/username/passwordmail—— 工单邮件通知,不填则该功能自动关闭auth.login-token-minutes—— 一次性登录链接的有效期
⚠️ config.yml会包含数据库与 SMTP 口令,不要提交到版本库。 仓库的.gitignore已排除plugins/与*.db。
/panel 显示面板地址与使用说明
/panel login 生成一次性免密登录链接
/panel logout 注销本人在面板上的全部会话
/panel redeem <码> 兑换卡密
/panel status 查看运行状态与集成清单(管理员)
/panel reloadconfig 重载配置中可热更新的部分(管理员)
别名:/mcpanel、/面板
| 权限 | 默认 | 说明 |
|---|---|---|
mcpanel.use |
所有人 | 登录面板、查看本人数据、提交工单 |
mcpanel.admin.view |
OP | 管理后台(只读) |
mcpanel.admin.ticket |
OP | 处理工单 |
mcpanel.admin.announcement |
OP | 公告与内容页 |
mcpanel.admin.player |
OP | 玩家检索与背包查看 |
mcpanel.admin.permission |
OP | 权限与用户组 |
mcpanel.admin.punish |
OP | 封禁 / 禁言 / 踢出 |
mcpanel.admin.rollback |
OP | 日志查询与回滚 |
mcpanel.admin.ops |
OP | 运维看板、实体清理、备份 |
mcpanel.admin.redeem |
OP | 卡密签发 |
mcpanel.admin.audit |
OP | 审计日志 |
mcpanel.admin.* |
OP | 以上全部 |
建议用 LuckPerms 分配,不要直接给 OP。
MIT © 2026 中软联信(北京)科技服务有限公司 · NoverixStudio · RickyQuan