Minecraft 整合包投票系统,支持 Blessing Skin OAuth 登录、管理员权限控制、每人每包一票。
Blessing Skin /api/user 返回的 permission 字段决定用户权限:
| permission 值 | 角色 | 可用操作 |
|---|---|---|
| -1 | 封禁用户 | 无 |
| 0 | 普通用户 | 投票、添加整合包 |
| 1 | 管理员 | 投票、添加、下架、设为当前、恢复提议 |
| 2 | 超级管理员 | 同管理员 |
cp .env.example .env
编辑 .env,填入实际配置:
DB_HOST=localhost
DB_NAME=mc_vote
DB_USER=mc_vote
DB_PASS=mc_vote
BS_OAUTH_URL=https://your-skin-site.com
BS_CLIENT_ID=your_client_id
BS_CLIENT_SECRET=your_client_secret
BS_REDIRECT_URI=https://your-vote-site.com/callback.php
API_TOKEN=your_api_token_here
只需手动创建数据库:
CREATE DATABASE mc_vote;
应用首次访问时会自动创建 packages 和 votes 表,并自动迁移新增字段(如提议人信息),无需手动操作。
在皮肤站管理后台创建 OAuth 客户端,回调地址填写:
https://your-vote-site.com/callback.php
将获得的 Client ID 和 Client Secret 填入 .env。
| 文件 | 说明 |
|---|---|
index.php | 首页,投票列表与操作 |
add.php | 添加整合包 |
historical.php | 历史记录查看与恢复 |
login.php | 登录页 |
callback.php | OAuth 回调处理 |
logout.php | 退出登录 |
api.php | RESTful API 接口(供 QQBot 等调用) |
config.php | 环境变量加载与数据库连接 |
oauth.php | OAuth 核心逻辑与权限函数 |
api.md | API 接口文档 |
.env.example | 环境变量模板 |
.gitignore | Git 忽略规则 |