bs-community / yggdrasil-api

Please refer to https://github.com/bs-community/blessing-skin-plugins .
MIT License
60 stars 7 forks source link

Enable Mojang offical auth forwarding. (#4) #6

Closed cqjjjzr closed 6 years ago

cqjjjzr commented 6 years ago

添加了一个配置项。皮肤问题暂时忽略

Signed-off-by: Charlie Jiang cqjjjzr@126.com

prinsss commented 6 years ago

请不要把 vendor 里的内容纳入版本管理,bs-community/blessing-skin-plugins 有 CI 自动构建的。

prinsss commented 6 years ago

另外,join 请求其实是可以不用转发的。

如果玩家是纯原版客户端,那么让他直接把 join 请求发到 Mojang 那边去,我们只需要转发 hasJoined 请求就可以了。

cqjjjzr commented 6 years ago

Updated.

cqjjjzr commented 6 years ago

测试本服务器优先模式,HMCL (正版登录)+1.7.10原版客户端+1.7.10原版服务器+authlib-injector 1.1.18测试通过。

prinsss commented 6 years ago

那个……请你使用 reset 后重新 commit 再 force push 好吗?你这样搞的话 vendor 里的内容就全部留在版本库里成垃圾了。

cqjjjzr commented 6 years ago

Force pushed.

cqjjjzr commented 6 years ago

All fixed.

prinsss commented 6 years ago

既然只有两种选择,不如将 ygg_mojang_forwarding 的值改为 true/false?

$form->checkbox('ygg_mojang_forwarding', '兼容正版验证')->label('用户进服验证失败时尝试使用 Mojang 官方验证服务器')->description('开启本选项后将允许正版用户直接进入服务器而无需通过 Blessing Skin 的验证。已知问题:正版用户将无法显示 BS 用户的皮肤,BS 用户也无法显示正版用户的皮肤(可以考虑使用皮肤 Mod 解决)。');
cqjjjzr commented 6 years ago

Fixed.

prinsss commented 6 years ago

Thanks for your contribution. 👍

cqjjjzr commented 6 years ago

存在一个问题,按名称批量查询角色非常容易导致问题,例如某用户同时在Blessing服务器与Mojang官方有注册,这时候就引出了问题了。我们不知道客户端进入服务器使用的是哪种方案,如果本服务器的结果优先则若正版登入就无法使用。因此我需要了解按名称查询角色这个API在服务器中的用途。

prinsss commented 6 years ago

所以你到底是个啥需求?是要让未经任何修改的官方客户端也能进入使用了本插件的服务器,还是让正版用户可以直接使用正版账号进服而无需注册皮肤站账号?

cqjjjzr commented 6 years ago

两者皆是。当然皮肤的问题可能的确需要用CSL等解决方案,但至少没有经过任何修改的客户端能进入服务器,

yushijinhun commented 6 years ago

我认为不应该合并有缺陷的功能进 yggdrasil-api。我建议将此 PR revert,然后在 yggdrasil-api 中添加接口用于拓展,再开一个新插件来实现你要求的功能。

cqjjjzr commented 6 years ago

我目前并没有了解第二个API使用的场合。第一个API的转发已经实现。如果整个过程能避免实现第二个API的转发则可以解决一些问题。

cqjjjzr commented 6 years ago

我认为如果给 yggdrasil-api 提供接口有过度设计的嫌疑。如果添加“插件的插件”实则是大幅提高了复杂度。

cqjjjzr commented 6 years ago

另一个 solution 是直接 fork 出一个新的 plugin,称之为 yggdrasil-api-forwarding 等。

prinsss commented 6 years ago

后续讨论请前往 https://github.com/bs-community/yggdrasil-api/issues/4