logo
0
0
WeChat Login

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 忽略规则

About

ECUSTMC活动整合包投票

Language
PHP63.9%
CSS33.3%
JavaScript2.8%