logo
0
0
WeChat Login
feat: 添加提议人信息展示和API接口支持

ECUSTMC 整合包投票

Minecraft 整合包投票系统,支持 Blessing Skin OAuth 登录、管理员权限控制、每人每包一票。

功能

  • OAuth 登录:通过 Blessing Skin 皮肤站 OAuth2 认证登录
  • 整合包投票:用户可对整合包投支持或反对票,每人每包仅限一票
  • 提议人展示:投票列表显示提议人头像和昵称(无昵称时自动截取邮箱 @ 前部分)
  • 管理员操作:管理员可下架整合包、设为当前服务器整合包、恢复历史提议
  • 历史记录:已下架的整合包分为历史游玩和历史提议两类
  • API 接口:提供 RESTful API 供 QQBot 等外部程序调用,详见 api.md

权限说明

Blessing Skin /api/user 返回的 permission 字段决定用户权限:

permission 值角色可用操作
-1封禁用户
0普通用户投票、添加整合包
1管理员投票、添加、下架、设为当前、恢复提议
2超级管理员同管理员

部署

1. 环境要求

  • PHP 7.0+(需启用 curl、pdo_mysql 扩展)
  • MySQL 5.7+ / MariaDB 10.3+
  • Blessing Skin 皮肤站(需创建 OAuth 客户端)

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

3. 初始化数据库

只需手动创建数据库:

CREATE DATABASE mc_vote;

应用首次访问时会自动创建 packagesvotes 表,并自动迁移新增字段(如提议人信息),无需手动操作。

4. Blessing Skin OAuth 配置

在皮肤站管理后台创建 OAuth 客户端,回调地址填写:

https://your-vote-site.com/callback.php

将获得的 Client IDClient Secret 填入 .env

文件说明

文件说明
index.php首页,投票列表与操作
add.php添加整合包
historical.php历史记录查看与恢复
login.php登录页
callback.phpOAuth 回调处理
logout.php退出登录
api.phpRESTful API 接口(供 QQBot 等调用)
config.php环境变量加载与数据库连接
oauth.phpOAuth 核心逻辑与权限函数
api.mdAPI 接口文档
.env.example环境变量模板
.gitignoreGit 忽略规则