Skip to content

VerifyMC

项目简介

VerifyMC 是一款面向 Minecraft 服务器的白名单验证与用户管理插件。玩家可以在网页完成注册,管理员在后台审核申请;从安装到日常维护,都尽量保持简单清楚。当前版本为 v1.8.0,插件默认使用中文,也可以随时切换为 English。


主要功能

  1. 网页注册与审核 - 玩家提交申请,管理员在线审核、拒绝、封禁或删除账号。
  2. 灵活的审核方式 - 支持自动通过、手动审核,以及可选的注册问卷和 LLM 评分。
  3. 邮箱与图形验证码 - 支持 SMTP 邮箱验证码,也可使用内置数学题或文字验证码。
  4. 中文默认与 English 切换 - 插件消息、网页界面和代理端均支持语言切换。
  5. 清晰的后台工作台 - GlassX 前端提供用户列表、审核记录、搜索和实时通知。
  6. Discord 与 AuthMe 集成 - 可绑定 Discord,也可同步 AuthMe 密码和用户信息。
  7. 多种白名单与存储模式 - 支持 Bukkit 原生白名单、插件管理、本地文件和 MySQL。
  8. 代理与基岩版支持 - 支持 BungeeCord、Waterfall、Velocity、Geyser 和 Floodgate。
  9. 配置自动升级与备份 - 更新配置和语言资源前自动保留备份,降低升级风险。

技术栈

  • Java(Bukkit/Spigot/Paper/Folia 插件)
  • 前端:Vue3 + Tailwind CSS(支持自定义主题)
  • WebSocket 实时通信
  • 邮件服务:SMTP

bStats

Bstats


安装与配置

  1. GitHub Releases 下载最新的 verifymc-*.jar;使用代理时一并下载 verifymc-proxy-*.jar
  2. 将主插件放入后端服务器的 plugins 目录;将代理插件放入 BungeeCord、Waterfall 或 Velocity 的 plugins 目录。
  3. 启动服务器生成配置,编辑 plugins/VerifyMC/config.yml,至少确认端口、注册地址、验证方式和存储模式。
  4. 重启服务器,访问 http://你的服务器IP:8080 打开网页。

管理员登录

管理员面板不使用单独的默认密码,而是验证已注册账号的密码,并要求该玩家是服务器 OP:

  1. 先在网页注册一个管理员账号,记住用户名和密码。
  2. 在控制台或游戏内执行 /op 玩家名
  3. 打开网页右上角的“登录”,使用刚才的账号登录;通过验证后即可看到管理菜单。

如果提示没有管理员权限,请检查用户名是否与 ops.json 中的 OP 名称一致。登录后,所有管理 API 都会使用当前会话令牌。

语言设置

默认语言是中文。网页右上角可以切换为 English;也可以在配置文件中固定插件默认语言:

yaml
language: zh
debug: false
web_port: 8080
web_server_prefix: '[ Name ]'
auth_methods:
  - email
max_accounts_per_email: 2
whitelist_mode: plugin
web_register_url: https://domain.com/
register:
  auto_approve: false
username_regex: "^[a-zA-Z0-9_-]{3,16}$"
username_case_sensitive: false
user_notification:
  enabled: true
  on_approve: true
  on_reject: true
frontend:
  theme: glassx
  logo_url: /logo.png
  announcement: 欢迎来到 [ Name ]!
smtp:
  host: smtp.qq.com
  port: 587
  username: your_email@qq.com
  password: your_email_password
  from: your_email@qq.com
  enable_ssl: true
email_subject: VerifyMC Verification Code
auto_update_resources: true
enable_email_domain_whitelist: true
enable_email_alias_limit: false
email_domain_whitelist:
  - gmail.com
  - 163.com
  - 126.com
  - qq.com
  - outlook.com
  - hotmail.com
  - icloud.com
  - yahoo.com
  - foxmail.com
storage: data
mysql:
    host: localhost
    port: 3306
    database: verifymc
    user: root
    password: yourpassword
authme:
  enabled: true
  require_password: true
  password_regex: "^[a-zA-Z0-9_]{8,26}$"
  database:
    type: sqlite
    table: authme
    sync_interval_seconds: 30
    mysql:
      host: 127.0.0.1
      port: 3306
      database: authme
      user: root
      password: yourpassword
    sqlite:
      path: plugins/AuthMe/authme.db
    columns:
      mySQLColumnName: username
      mySQLRealName: realname
      mySQLColumnPassword: password
      mySQLColumnEmail: email
captcha:
  type: math
  length: 4
  expire_seconds: 300
bedrock:
  enabled: false
  prefix: "."
  username_regex: "^[a-zA-Z0-9._-]{3,15}$"
questionnaire:
  enabled: false
  pass_score: 60
  rate_limit:
    window_ms: 300000
    ip:
      max: 20
    uuid:
      max: 8
    email:
      max: 6
llm:
  enabled: true
  provider: deepseek
  api_base: https://api.deepseek.com/v1
  api_key: ""
  model: deepseek-chat
  timeout: 10000
  retry: 1
  max_concurrency: 4
  acquire_timeout: 1500
  retry_backoff_base: 300
  retry_backoff_max: 5000
  input_max_length: 2000
  circuit_breaker:
    failure_threshold: 5
    open_ms: 30000
  system_prompt: |
    You are a fair Minecraft whitelist questionnaire grader.
    Score strictly based on the question, candidate answer, and scoring rule.
    Return JSON only.
  scoring_rule: |
    Evaluate primarily:
    1) Relevance to the question
    2) Completeness and level of detail
    3) Understanding of server rules and community norms
  score_format: '{"score": number, "reason": string, "confidence": number}'
discord:
  enabled: false
  client_id: ""
  client_secret: ""
  redirect_uri: "https://yourdomain.com/api/discord/callback"
  guild_id: ""
  required: false

官方社区


如果你喜欢本项目,欢迎 Star、分享与反馈!