Skip to content

认证接入 ​

服务端迁移到官方机器后,必须把 BungeeCord 的认证改成中国版官方接口,否则玩家无法通过启动器进入服务器。这是上线的关键一步,也是中国版与原版 BC 最大的不同。

为什么必须接入 ​

  • 中国版玩家通过启动器登录,认证由官方接口接管
  • 接入后,服务器仅允许中国版启动器进入,第三方端无法连接
  • 不接认证 = 无法上线

两套环境 ​

接入需配两个认证入口,对应两套环境:

环境用途
测试入口测试审核与更新。后续启动器相关更新(商业化、客户端更新)先在测试环境验证
正式入口正式环境,承载线上玩家

更新流程

后续任何启动器联动更新(商业化内容、客户端更新)都先在测试服审核测试,验证与启动器联动正常、审核通过后,再同步更新至正式服。别跳过测试直接改正式服。

两种接入方式 ​

官方提供两种接入途径,按你用的 BC 选:

方式一:官方版 BC(推荐) ​

官方提供已认证过的 BC 源码包(BungeeCord-master.7z),内含认证代码,自行打包使用:

  1. 解压源码包
  2. 用 Maven/Gradle 编译打包出 BC jar
  3. 通过 config.yml 里的 auth_url 切换测试/正式模式(见下)
  4. 使用官方提供的默认 config.yml 修改配置

用官方版就别用原版 BC

官方包是已改完认证的版本。原版 BungeeCord(github 上的)没接认证,直接用无法上线。

方式二:非官方 BC 打 patch ​

若你用的是自己改过的 BC,用附带的 net_bc.diff 把认证模块置入源码再编译:

  1. 拿到你的 BC 源码
  2. 应用 patch:patch -p1 < net_bc.diff
  3. 编译出 BC jar
  4. config.yml 调整方式同官方版

patch 大致改动 ​

net_bc.diff 主要做了三件事:

  1. 认证接口由 GET 改成 POST
  2. 指向网易认证服务器
  3. 涉及文件:
    • HttpClient.java — 增加 POST 支持
    • HasJoinedRequest.java — 新增,表示传参结构
    • InitialHandler.java — 完成认证调用

看 diff 学细节

具体代码改动见 net_bc.diff,每行改动都在里面。按 patch 应用后对照 diff 理解认证流程。

config.yml 配置 ​

中国版 BC 在原版基础上新增两个配置项:

yaml
# 网络游戏 iid,在开发者平台可以看到
game_id: '<你的游戏 gameid>'
# 认证服地址(测试/正式二选一,向官方获取)
auth_url: <官方提供的认证接口地址>
配置项说明
game_id网络游戏 iid,开发者平台可见,标识你的游戏
auth_url认证服地址,决定运行在测试还是正式模式

完整 config 示例 ​

yaml
game_id: '<你的游戏 gameid>'
auth_url: <官方提供的测试环境认证地址>
online_mode: true           # BC 必须开
ip_forward: true            # IP 转发
network_compression_threshold: 256
servers:
  lobby:
    address: 192.168.x.x:25566   # 子服内网地址(示例)
    restricted: false
listeners:
- host: 0.0.0.0:25577       # BC 对外端口
  priorities:
  - lobby

认证接口地址 ​

auth_url 分测试环境和正式环境两套,另按 MC 版本区分(1.20 以下用旧接口 http,1.20+ 用新的 apigateway 接口 https):

环境用途
测试审核服测试与审核,接测试版启动器
正式服(线上)承载正式玩家,接正式版启动器
外网测试服通常不用,启用时官方另行沟通

具体地址向官方获取

认证接口的具体域名/端口/路径属于官方内部信息,请以官方最新《服务器接入文档》为准,或向工作人员获取。用错环境或版本对应的接口会导致认证失败。

接入后设置 ​

认证接入后,BC 与子服的 online_mode 这样配:

位置online_mode说明
BC(代理)true必须开,认证在 BC 层完成
子服false必须关,认证已由 BC 接管

子服 bcmode

若子服配置里有与 BC 关联的开关(或叫 bcmode),需打开。表示该子服处于 BC 代理模式,不再独立做正版验证。

皮肤与头颅问题 ​

接入网易认证后,NPC 与头颅的皮肤读取方式要改:

  • 需把 NPC 皮肤和头颅的 UUID 版本改为不等于 4,才能读取 Mojang 正版皮肤库数据
  • 涉及:皮肤 mod、或子服务端核心、或 NPC 插件
  • 读头颅皮肤时要设定 id 和 name

不改皮肤会白头

接入认证后原版皮肤读取会失效,NPC/头颅变白。必须按上述改 UUID 版本,否则玩家看到一堆史蒂夫头。

开发者平台配置网络服务器 ​

认证代码配好后,去开发者平台配置游戏信息:

  1. 左侧 网络游戏管理 → 右上角 发布新游戏
  2. 填写各模块信息(概况与简介,启动器上对玩家直接可见,认真写)
  3. 发布客户端时分别填正式服地址与测试服地址(此项不对外可见):
    • 正式服 → 接 release 版 BC 认证,用正式版启动器进
    • 测试服 → 接 exp 版 BC 认证,用测试版启动器进
  4. 付费类型选 server commodity,填付费备注

上传客户端 ​

纯净版客户端 ​

不加载任何 mod/材质/自定义文件 → 纯净版选项选**"是"**,此步骤可跳过。

非纯净版客户端 ​

可自定义上传 4 个文件夹内容:

  • config
  • mods
  • resourcepacks
  • shaderpacks

压缩包格式

压缩包一级目录仅包含 .minecraft 文件夹,里面含上述 4 个文件夹。须保证纯净客户端能读取并使用。

图片(icon、宣传图等)格式与大小在开发者 launcher 内给出,可参考已上架服务器的显示效果。

提审、更新、上架流程 ​

  1. 确认信息完整 → 右上角保存
  2. 在未审核列表点提交审核
  3. 开启测试服,部署更新内容,联系工作人员审核
  4. 审核通过 → 在已审核列表点上架,正式更新
  5. 上架后玩家收到客户端更新提示,重新下载自定义部分组合新版客户端

更新客户端

已上架游戏点更新客户端 → 选需更新字段 → 重新上传包或替换图片 → 保存 → 再走"提交审核 → 后台通过 → 上架"流程。客户端上传完毕提交审核后,可在开发者平台下载测试版启动器自测。

常见问题 FAQ ​

Q:上传服务器提示"文件包路径不能超过 85 个字符"? A:某些文件夹目录层级过深(常见于小地图 mod、超长名字的材质/光影)。缩减目录路径即可。

Q:上传提示"文件包只能有一个目录"? A:压缩包格式不对。一级目录应只有 .minecraft 文件夹,参考官方提供的示例压缩包格式。

Q:root 密码怎么用? A:用 su - root 或 su - 切换 root,输入密码。不是 sudo。

Q:能改防火墙吗? A:不能。服主请勿直接改系统防火墙,会导致连接问题。需改联系工作人员。

Q:遇到权限问题怎么办? A:别直接 chown 改家目录属主(会导致登不进)。用 ls -l 查看属主,正常不会出权限问题。

Q:能做高危操作吗? A:禁止私自高危操作危害服务器及平台安全,属违反开发者协议行为,严肃处理。详见开发者平台"高危操作警告说明"。

其他问题请通过开发者平台或工作人员提供的官方渠道联系。


想深入认证源码细节、或了解 Velocity 接入?见认证接入实战:源码与 Velocity。

认证接入完成、客户端上架后,服务器就正式上线了。回到Java 网络游戏首页。