Closed cqjjjzr closed 6 years ago
请不要把 vendor
里的内容纳入版本管理,bs-community/blessing-skin-plugins 有 CI 自动构建的。
另外,join
请求其实是可以不用转发的。
如果玩家是纯原版客户端,那么让他直接把 join
请求发到 Mojang 那边去,我们只需要转发 hasJoined
请求就可以了。
Updated.
测试本服务器优先模式,HMCL (正版登录)+1.7.10原版客户端+1.7.10原版服务器+authlib-injector 1.1.18测试通过。
那个……请你使用 reset 后重新 commit 再 force push 好吗?你这样搞的话 vendor
里的内容就全部留在版本库里成垃圾了。
Force pushed.
All fixed.
既然只有两种选择,不如将 ygg_mojang_forwarding
的值改为 true/false?
$form->checkbox('ygg_mojang_forwarding', '兼容正版验证')->label('用户进服验证失败时尝试使用 Mojang 官方验证服务器')->description('开启本选项后将允许正版用户直接进入服务器而无需通过 Blessing Skin 的验证。已知问题:正版用户将无法显示 BS 用户的皮肤,BS 用户也无法显示正版用户的皮肤(可以考虑使用皮肤 Mod 解决)。');
Fixed.
Thanks for your contribution. 👍
存在一个问题,按名称批量查询角色非常容易导致问题,例如某用户同时在Blessing服务器与Mojang官方有注册,这时候就引出了问题了。我们不知道客户端进入服务器使用的是哪种方案,如果本服务器的结果优先则若正版登入就无法使用。因此我需要了解按名称查询角色这个API在服务器中的用途。
所以你到底是个啥需求?是要让未经任何修改的官方客户端也能进入使用了本插件的服务器,还是让正版用户可以直接使用正版账号进服而无需注册皮肤站账号?
两者皆是。当然皮肤的问题可能的确需要用CSL等解决方案,但至少没有经过任何修改的客户端能进入服务器,
我认为不应该合并有缺陷的功能进 yggdrasil-api。我建议将此 PR revert,然后在 yggdrasil-api 中添加接口用于拓展,再开一个新插件来实现你要求的功能。
我目前并没有了解第二个API使用的场合。第一个API的转发已经实现。如果整个过程能避免实现第二个API的转发则可以解决一些问题。
我认为如果给 yggdrasil-api 提供接口有过度设计的嫌疑。如果添加“插件的插件”实则是大幅提高了复杂度。
另一个 solution 是直接 fork 出一个新的 plugin,称之为 yggdrasil-api-forwarding
等。
添加了一个配置项。皮肤问题暂时忽略
Signed-off-by: Charlie Jiang cqjjjzr@126.com