需要在mcbbs中文论坛发布的开源库authlib-injector

目前我们在开发阶段还没有遇到令人兴奋的特性(,欢迎大家指出!

如果您想给我们反馈更多的建议(其实是因为我不太常上MCBBS,您可以加入我们的启动器用户反馈群!群号:

}

在左侧信息栏中的下方您可以看见设置和下载中心的按钮。您可以点击设置进行更多详细的启动设置


在此为上述作者表示感谢

主机屋提供一段时间的下载服务

当您在使用该启动器遇到任何问题或者BUG

请及时联系我。联系QQ:

官方产品QQ用户群:,启动器有更新时会在这里公告


2.完善ini配置文件读写功能,自动保存用户名等用户信息

4.完善服务器直连系统

5.缩小体积,内嵌dll


1.紧急修复目标环境无JAVA时闪退

v1.5.0:(大型更新)

爆炸性优化,重写配置读写,启动代码

减去启动时不必要的封面

自动计算最佳运行内存,独家算法

修复用户无java环境打开设置时闪退(吐槽)

windows各版本兼容测试通过(windows7及windows7以上版本系统在Framework 4.0运行兼容多可能测试均通过。未发现漏洞)

稳定版本。将不会进行大改

程序增强稳定性,多处try catch

增加启动器记录日志功能,记录发生的错误

启动器增加欢迎界面!图片将放在前面

启动器目前可以自主选择java路径

自动记录最近一次的启动记录,并在下一次自动选择

第一次使用时自动环境检测

使用windows8或者更高的系统时能自动提取您的系统用户名称

启动器现在支持游戏启动中提示

自动检测libraries文件夹是否完整并自动补全

第一次版本下载会自动将游戏语言设置为中文

支持开启服务器直连功能时显示服务器状态与信息

支持在游戏启动时强行关闭游戏进程

支持游戏启动报告,自动写入文件(需要手动开启)

启动器遇到故障时能出现较友好的界面提示

主界面背景改为pogo的绘画作品(已经授权)

不用开启服务器直连也支持查看服务器状态和信息

V4.2.(重大更新)

更新太大型了,已经写不完了

修复FORGE版本启动无资源的问题

统一通行证更新全局设置,支持一个ID实现:强制使用统一通行证,主界面显示服务器头像信息,服务器直连。需要手动勾选

将默认下载地址改为Mojang官方

修复资源文件读取BUG

支持SRV服务器直连/显示服务器信息

4.5.(目前版本)(稳定版本)

希望您能支持我们无偿的开发。给予我们一点人气或赞助就是对我们的支持。

请将该启动器放入您客户端中.minecraft文件夹相同的目录下,启动器自动匹配

如果您没有下载Minecraft,也没关系,支持全版本下载。

如果您没有下载JAVA,更没关系,支持自动下载

}

本项目的原理如果用一句话概括,就是:把Mojang的正版登录API劫持成自己的,从而实现游戏外登录。 众所周知,如果MC服务端不开启online-mode,那么就无法对入服玩家进行认证(任何人都可以用任何身份进入服务器),但并不是所有服主都愿意开启online-mode(如果开启,你的玩家都必须是正版用户),这就催生了不少非Mojng官方的登录系统的产生。

这些登录系统大体可以分为以下两类:

  • 游戏内登录(如Authme)
它们的确解决了非正版服的验证问题,但无论在功能上还是在安全性上,都是不及Mojang的正版验证系统的。
那么有没有什么办法可以实现与正版相媲美的验证系统呢。答案是有的,就是劫持Mojang的正版验证API(也叫Yggdrasil),让它为我所用。

这便是authlib-injector所做的事情:将MC服务端/客户端中Mojang的正版验证API,替换成自己的。这样你便得到了一个功能和正版验证近乎一样的验证系统。

事实上,这样的技术早在前几年就已经被我开发出来(也就是authlib-agent项目)。


但是问题也随之而来:如果每一个服务器都要自己开发一个Yggdrasil服务端、一个服务器专用的启动器,那么不但服主会有很大的工作量,而且玩家也会有许多不便。

在开发authlib-agent时,我仅仅是抱着玩玩的心态,而未曾想过它会被众多服务器所用。当时做出的许多不合理设计(如随意命名的API Endpoint、配置文件内置于JAR中),现在也逐步暴露了出来。而先前我开发authlib-agent的目的,也只是证明实现Yggdrasil私服的可行性。但现在看来,这已毋庸置疑。现在所需要的,是对这一技术的推广。
由于不完备和缺少文档,许多服主和开发者对authlib-agent望而却步。确实,authlib-agent项目真正能帮助到开发者的也只有javaagent部分。要将这个技术投入实际使用中,还需要开发一个完善的Yggdrasil服务端,和一个支持authlib-agent的启动器,这样的任务绝不是凭一人之力能够完成的。 因此,我萌生了一个想法:

能否制定一个民间规范,只要启动器和Yggdrasil服务端的开发者共同遵守它,就能使它们两个能够一起工作? 如果这能够实现的话,试想:


一个服主在GitHub上找到了一个实现该规范的验证服务端,然后在服务器上部署了它;
而玩家在该MC服务器注册之后,打开他平时使用的(实现上文所述规范的)MC启动器,输入该服务器的URL,以及他自己的用户名和密码,便能像正版一般进行游戏。
  •   直接从验证服务端获取相关配置信息(),不需要像authlib-agent一样自己编译和生成JAR


  • 该项目依然处于早期阶段,这个规范也并没有多少实现。
    如果你读过前言部分,就不难意识到这个项目绝不是能凭我一己之力完成的。而要实现上文我所试想的,也绝不是一朝一日。
    我希望广大启动器和验证服务端的开发者能够支持我这个规范,并对其不足之处提出建议。

    如果你对本规范有修改建议,或是想反馈mod部分的问题,。

    如果你想对本项目作出贡献,欢迎你对本项目的mod部分。


    如果你是一个验证服务端或启动器开发者,你并不一定需要在GitHub上开PR,只要在你的程序中实现本规范,也算是对本项目的支持。

    如果启动器不支持本规范,玩家需要将authlib-injector放入mods目录(或是添加javaagent参数,这适用于原版),然后在启动器里选择离线验证。
    当authlib-injector检测到启动器没有提供登录信息时,便挂起启动进程,要求用户登录,之后将登录信息注入到MC启动参数中。
    这就相当于把原来属于启动器的验证任务,转移到了authlib-injector。

    自动化测试和Yggdrasil服务端mock 提供一套自动化的API集成测试(依照规范编写),能够让验证服务端开发者对自己的服务端进行测试。


    提供一个最简可用Yggdrasil服务端,能够让启动器开发者mock Yggdrasil服务端,从而对启动器进行测试。
    • ci010主导开发的启动器
    • Indexyz开发的验证服务端

      • 和其他许多支持本项目的人
}

我要回帖

更多关于 mcbbs 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信