最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【技術(shù)向】Minecraft1.16.5離線 多人游戲已禁用Bug 修復(fù)與分析

2023-06-20 13:36 作者:-幻夢(mèng)眠藥-  | 我要投稿

首先劇透一下,這個(gè)Bug的本質(zhì)是,游戲不小心把離線用戶當(dāng)作了正版用戶……

似乎從6月8日開始,許多離線模式玩家在游玩1.16.5時(shí)都遇到了圖上這一Bug,無(wú)法進(jìn)入多人游戲。也有很多人提出了解決辦法,比如打開游戲時(shí)先斷網(wǎng),或者加裝繞過(guò)限制的Mod。這里咱在深入分析問(wèn)題原因確認(rèn)這是一個(gè)Bug后,向大家提供一個(gè)從根源上解決這一Bug的方法。

那就是買個(gè)正版!

開個(gè)玩笑,我相信大家都是愿意支持正版的,只是暫時(shí)沒(méi)有條件所以才玩的離線模式,那么廢話不多說(shuō),開始介紹修復(fù)Bug的方法吧。

為什么上一張圖是PCL這里卻變成了HMCL?

首先,打開.minecraft/versions/你的游戲版本/目錄下的json文件,有些人可能玩的是整合包所以目錄名并不是1.16.5,總之進(jìn)去用你喜歡的文本編輯器打開那個(gè)json文件就行了。

打開文件后,搜索authlib,刪除大括號(hào)里的size和sha1兩行

選中的兩行都要?jiǎng)h掉

注意,如果刪完這兩行后大括號(hào)內(nèi)最后一個(gè)字符是逗號(hào),那么也要把那個(gè)逗號(hào)刪除,否則啟動(dòng)器會(huì)無(wú)法識(shí)別。

這個(gè)逗號(hào)一定要?jiǎng)h掉

繼續(xù)搜索,如果還有別的authlib包含了size和sha1,也要?jiǎng)h掉,不然無(wú)法生效。(我這邊PCL的只有一個(gè)需要?jiǎng)h,而HMCL有兩個(gè))

然后,將所有的2.1.28替換為2.3.31

全部替換即可

保存文件,重新打開啟動(dòng)器,開始游戲,即可發(fā)現(xiàn)已經(jīng)可以正常進(jìn)入多人游戲了。

所以為什么上面用PCL下面用HMCL???

這一方法應(yīng)該對(duì)任何啟動(dòng)器都有效,無(wú)需斷網(wǎng),適配原版和任何Mod端,雖然改東西不太方便吧……適合喜歡折騰的人。

下面是關(guān)于這一Bug的分析。

在1.16.5版本所使用的認(rèn)證組件Authlib 2.1.28中,認(rèn)證是使用網(wǎng)頁(yè)接口返回的error字段來(lái)判斷是否認(rèn)證失敗,并且會(huì)無(wú)視網(wǎng)頁(yè)接口的HTTP 401狀態(tài)碼

使用error字段判斷是否認(rèn)證失敗
即使服務(wù)器返回HTTP 401,依然正常讀取json并返回
正常情況,離線模式會(huì)因?yàn)檎J(rèn)證失敗而獲取一個(gè)離線專用配置,并不會(huì)屏蔽多人游戲

但是,現(xiàn)在的Mojang認(rèn)證接口就算認(rèn)證失敗也不會(huì)設(shè)置error字段,只會(huì)返回HTTP 401

這就導(dǎo)致認(rèn)證組件因?yàn)闆](méi)有發(fā)現(xiàn)錯(cuò)誤,所以將離線玩家也視為正版用戶,正常返回了解析出的社交配置;又因?yàn)榻涌趯?shí)際上并沒(méi)有返回相關(guān)配置,所以多人游戲、realms、聯(lián)機(jī)交流功能的啟用權(quán)限全被Gson解析成false了。

正版用戶應(yīng)該獲取到這樣的配置信息,但離線沒(méi)有,所以直接設(shè)為了false

在1.17版所使用的認(rèn)證組件Authlib 2.3.31中,認(rèn)證組件會(huì)在獲取到HTTP 401狀態(tài)碼后直接拋出異常,游戲返回離線配置,所以不會(huì)有這個(gè)問(wèn)題。

無(wú)論如何都會(huì)拋出異常,所以不會(huì)出現(xiàn)這一bug

1.16.5和1.17的Authlib 2.+使用的是同樣的認(rèn)證接口,只是部分代碼邏輯不同,可以直接通用,1.18之后版本使用的是Authlib 3.+,接口和代碼都有很大改動(dòng),所以不能在1.16.5上使用。

所以這就只是一個(gè)因?yàn)楣俜胶笈_(tái)更新導(dǎo)致的Bug而已,別再說(shuō)什么官方要封離線啦!

我的方法原理上很簡(jiǎn)單,讓啟動(dòng)器加載1.17使用的authlib 2.3.31來(lái)代替1.16.5的有bug的authlib 2.1.28,這個(gè)方法在代碼層面完全可行,并且我自己成功很多次了。
我不知道為什么會(huì)有人用我的方法失敗,我只能建議你們找別的辦法,B站上至少能找到三個(gè)解決方法的,用不著在我這里死磕。

如果想質(zhì)疑我的方法的可行度的話,你們需要證明你們的游戲確實(shí)是在離線模式下加載了SHA1為bbd00ca33b052f73a6312254780fc580d2da3535的authlib-2.3.31.jar,并且依然會(huì)有文中提到的多人模式禁用問(wèn)題,否則,請(qǐng)從自己身上找原因。

【技術(shù)向】Minecraft1.16.5離線 多人游戲已禁用Bug 修復(fù)與分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
金昌市| 齐齐哈尔市| 农安县| 泽州县| 柳林县| 聂荣县| 乌兰察布市| 子洲县| 岗巴县| 眉山市| 阳朔县| 虞城县| 固镇县| 柳江县| 论坛| 隆回县| 东方市| 汽车| 尼木县| 兴化市| 珲春市| 乐平市| 洪江市| 孝义市| 壤塘县| 怀来县| 商都县| 关岭| 太和县| 大安市| 寿光市| 赤壁市| 含山县| 马鞍山市| 尤溪县| 阜阳市| 曲靖市| 义马市| 泰和县| 长寿区| 驻马店市|