Union联合认证是建立在MUA皮肤站上的玩家数据同步系统,可以允许来自多个成员皮肤站的玩家登录同一个Minecraft服务器,并且可以互相看见皮肤和披风。
Union联合认证不依赖MultiLogin插件,提供了绑定机制用于处理UUID/角色名称冲突的情况。
Union允许Minecraft服务器指定成员皮肤站黑/白名单(即指定来自哪些成员皮肤站的玩家可以进入)。
对于玩家,当所属高校皮肤站加入Union系统后,便可使用自己高校的皮肤站或MUA皮肤站登录,进入其他Union高校的服务器游玩。
你需要拥有修改Minecraft服务器配置的权限。
允许全部MUA成员皮肤站用户加入
https://skin.mualliance.ltd/api/union/yggdrasil
白名单皮肤站模式
https://skin.mualliance.ltd/api/union/yggdrasil/only/{code}
黑名单皮肤站模式
https://skin.mualliance.ltd/api/union/yggdrasil/excludes/{code}
其中,{code}
是服务器名称缩写,多个服务器使用_
分隔,例如SJMC_FDC_MUA
服务器名称缩写可以从皮肤站Yggdrasil API插件配置页面或https://skin.mualliance.ltd/api/union
获取。
如果你需要同时允许正版或者其他非Union成员皮肤站加入服务器,你仍然需要使用MultiLogin,将Union皮肤站作为一个单一的Yggdrasil提供方,然后添加其他服务器。
需要注意的是,上述情况下第三方皮肤站、Union成员皮肤站之间只能看到皮肤,正版皮肤和披风可以被所有玩家看到。
皮肤站名称 | 域名 | 所属高校 |
---|---|---|
SJMC 用户中心 | skin.mc.sjtu.cn | 上海交通大学 |
MUA User Center | skin.mualliance.ltd | MC高校联盟 |
XJTUMC | skin.xjtumc.com | 西安交通大学 |
This is XDUCraft! | skin.xducraft.com | 西安电子科技大学 |
Minecraft•同济 | lq11g.xyz | 同济大学 |
XAUATcraft | skin.xauatcraft.com | 西安建筑科技大学 |
TaruCraft方块创作社 | skin.tarucraft.club | 塔里木大学 |
NWUcraft | skin.nwucraft.com | 西北大学 |
FDCraft 用户中心 | auth.fdc.jingyijun.xyz | 复旦大学 |
NPUskin | skin.npucraft.com | 西北工业大学 |
Bobby Skin | bobbyskin.com | 大连交通大学 |
燕山大学官方MC皮肤站 | skin.ysumc.club | 燕山大学 |
PKU MC | mc.lcpu.net | 北京大学 |
CSU-MC | csu-mc.magicalsheep.cn | 中南大学 |
Minecraft of 大车埋土 | mcweb.unsafe.top | 大连理工大学 |
NMO Skin | skin.nmo.net.cn | 南京大学 |
山商Minecraft煤炭社 | skin.sdtbu.com.cn | 山东工商学院 |
IMUcraft-方块内大 | skin.imucraft.cn | 内蒙古大学 |
NUISTCraft 皮肤站 | skin.dustella.net | 南京信息工程大学 |
SIT-Minecraft | skin.sitmc.club | 上海应用技术大学 |
SUESMC | user.suesmc.ltd | 上海工程技术大学 |
和瑛联合验证 | skin.heryin.net | 云南大学 |
LightZone | LNU | mcskin.mevisual.top | 辽宁大学 |
青岛科技大学皮肤站 | skin.qustmc.cn | 青岛科技大学 |
䙶大皮肤站 | skin.nwafu.com.cn | 西北农林科技大学 |
ZJUTMC皮肤站 | skin.zjutmc.club | 浙江工业大学 |
FZUcraft | 103.43.10.189 | 福州大学 |
SDUST MC社 | sdust.mualliance.ltd | 山东科技大学 |
SCMCU | skin.scmcu.cn | 川高联 |
*表格按加入顺序排序。表格内容随时可能过期,最新列表可以从皮肤站Yggdrasil API插件配置页面或https://skin.mualliance.ltd/api/union
获取。
联系人:@ff98sha 或 @ART1st
你需要是皮肤站管理员,且皮肤站是基于Blessking Skin的。Union目前接受MUA成员高校MC组织申请加入。
接入Union的皮肤站需满足以下条件:
接入Union的步骤如下:
SJMC, FDC, TJU
)。https://skin.mualliance.ltd/api/union
,Union Member Key由联系人告知。皮肤站接入Union完成后,将组织内Minecraft的服务器Yggdrasil API修改为Union地址(见上一节),即可将服务器接入Union。
Union允许一名玩家拥有多个成员皮肤站的角色。如果这些角色都是你的,你可以将不同成员皮肤站的角色进行绑定。绑定不要求角色名一致。
一个角色的绑定状态包括:
一个角色如果在Union中有重名/相同UUID的角色,会分配一个不产生重复的名称(在原角色名后加上皮肤站代码)和UUID。
假设一名玩家使用角色A进入了使用Union API验证的Minecraft服务器,且服务器仅允许在皮肤站列表C中的玩家进入:
对于1.19及以上的Minecraft服务器,需要保持UUID一致性(即要求登录时客户端获取的UUID和进入服务器时服务器获取的UUID一致),需要额外绑定相同的UUID。
根据角色名:https://skin.mualliance.ltd/api/union/profile/mapped/byname/{name}
根据UUID:https://skin.mualliance.ltd/api/union/profile/mapped/byuuid/{uuid}
返回值均为:{"internal_id":{内部id},"uuid":"{uuid}","name":"{name}","backend_scopes":{"bind":"{主皮肤站}","all":["{绑定的皮肤站1}","{绑定的皮肤站2},"{绑定的皮肤站N}"]}}
以下内容涉及到的名词:
加入服务器时,玩家向自己所属的成员皮肤站发送join请求。
当Minecraft服务器请求hasJoined时,向Union服务器发送hasJoined请求,Union服务器将请求转发到该玩家所属的成员皮肤站,并将数据返回给Minecraft服务器。
Union服务器和成员皮肤站会定期进行数据同步。
每一个成员皮肤站持有一个Key,Union服务器通过Key验证发送请求的成员皮肤站。成员皮肤站通过IP地址验证请求来自Union服务器。
客户端的Authlib Injector在启动时会向成员皮肤站请求签名公钥和允许域名列表,用于验证Minecraft服务器返回的玩家数据签名和材质URL,签名不匹配或材质域名不在允许列表则不会在游戏内显示皮肤。
在新服务器加入Union后,Union服务器会向成员皮肤站同步签名私钥。
成员皮肤站使用Union的私钥对玩家数据进行签名,所有使用Union私钥签名的玩家数据都可以被登录到任意成员皮肤站的客户端接受,可以显示皮肤和披风。
MUA皮肤站的隐私声明请见其注册页。
加入Union的皮肤站的数据中,仅有角色名和对应uuid作为必要数据会被传输到MUA皮肤站,不涉及个人信息的传输。
GitHub: bs-community/blessing-skin-plugins(MIT,Union成员插件修改自Yggdrasil API插件源码)
GitHub: bs-community/blessing-skin-server(MIT)
Union服务器安装的Union插件是原创插件。