AuthMe 离线服的游戏内皮肤上传系统,适配 Paper/Folia。作者:xWtree,网站:github.com/mcxqk。
当前版本拆成三端:
- 游戏服务器
SkinWeb-Folia-1.0.0.jar:Folia 兼容 Receiver,监听5397,调用 AuthMe、SkinsRestorer 和 MineSkin。 - 香港 Linux
SkinWeb-Sender-1.0.0.jar:只监听本机5398,负责 Nginx 请求和 Receiver 之间的 HMAC-SHA256 双向签名。 site/index.html:部署到https://map.mcxw.cc的静态网页,不保存密码、不知道游戏服地址。
流程是:玩家执行 /skin web → 打开 https://map.mcxw.cc/#token=... → 同源页面兑换一次性会话 → 上传严格 64×64 PNG → Sender 签名转发 → Receiver 异步生成 MineSkin 纹理并替换玩家当前皮肤。默认不加入 /skins 菜单;upload.publish-to-menu: true 才启用菜单模式。
SkinWeb 不读取或写入 SkinsRestorer 内部表,只调用公开 API,因此 SkinsRestorer 的 FILE、MYSQL、POSTGRESQL 存储模式都可以工作。SkinWeb 自己的元数据数据库可选 SQLITE、MYSQL、NONE。
游戏服执行 /skinweb reload 会原子切换 Receiver、密钥、Token、Session、上传服务和数据库连接;失败时恢复旧服务,不迁移或删除旧数据库数据。香港 Sender 监控配置和密钥文件,修改后自动热重载,失败会保留旧服务。
完整步骤见 deploy/README-部署顺序.md 和 docs/INSTALLATION.md。核心要求:
- 三端使用同一份至少 32 字节随机 Base64 密钥。
- 游戏服 TCP 5397 仅允许香港服务器出口 IP;不要对公网开放。
- Nginx 只把
/skinweb-api/代理到本机 Sender 5398,不直接连接游戏服。 - 网站必须使用
map.mcxw.cc的正规 HTTPS 证书。
/skin web或/skinweb web:生成一次性网页地址。/skinweb help:显示帮助。/skinweb reload:热重载 Receiver、配置和数据库连接,不迁移数据。/skinweb status:查看 Receiver、数据库和 Token 状态。
本项目使用 GPL-3.0,见 LICENSE。