Loading...
注册 登录
勋章功能:官方勋章中心 - 交易市场 - 交易管理 - 勋章仓库 - 勋章排序 |  帖子背景 论坛背景 自定义表情
自定义设置备份
返回列表 发帖
转到Guru!看帖

[没人看][盗版皮肤相关]或许1.8.9(和1.8.8)的皮肤还能再抢救一下

本帖最后由 DoraJDJ 于 2016-1-30 23:24 编辑

诸君,这里是DoraJDJ

最近自己想玩下1.8.9单机,顺便想办法解决盗版皮肤问题,于是有了这个post

实际上这个post应该得发到MCBBS的,然而编程开发版发帖要审核到现在都还没过,于是发到这里先做个任务,反正技术向文章没人看(:3JZ


众所周知,从Minecraft 1.7.10开始,盗版用户的皮肤成了一个大问题,曾经通过AbstractClientPlayer类里面的部分方法获取皮肤的方法已经失效,改用Mojang自带的验证API获取皮肤,不过这些问题都得到了解决——UniSkinMod和CustomSkinLoader提供了解决方案。不过好景不长,由于国外某些技术系玩家找到了通过自定义NBT获取自定义头颅的方法,Mojang于1.8.4时期添加了皮肤域名白名单系统,只能接受来自mojang.com和minecraft.net的皮肤,于是大家懂得。

最终,即使MinecraftForge升级到1.8.8甚至是1.8.9版还是没有兼容这些版本的皮肤Mod(或许是本人太心急的原因?)。

实际上,1.8.9的皮肤或许还能再抢救一下。

发现祸根

由于个人原因,想玩玩1.8.9,于是开始找各种Mod,顺便解决一下皮肤问题。

就在准备解决皮肤问题的时候,突然想到1.8.4开始不能使用外站皮肤的“BUG”,于是开始寻找该功能的来源。

很快,本人在验证API的YggdrasilMinecraftSessionService类里找到了这些东西:<<(别问我怎么弄来的源代码,IDEA大法好,如果违规请通知我删除)

找到万恶之源就很简单了,接下来便是使用Forge的Coremod技术把这个方法给黑掉。

大修大补

在这里使用的模组源代码是UniSkinMod,使用GPL v2协议,特别感谢模组原作者RecursiveG  。

首先在Transformers添加修改这些方法的代码,于是有样学样地弄了一下:<通常情况下,这样做就算可以了,但是后来发现在运行的时候出现了错误<经过各种自学,发现疑似是try-catch block和exceptions的问题,在mn.instructions.clear();后面再添加两行代码,问题解决:<(若有错误欢迎指出)

至此,1.8.9的皮肤问题完美解决。

最后,好奇的孩子可以看下源码了解下:https://github.com/DoraJDJ/UniSkinMod

初投稿,若有任何意见欢迎指出(:3JZ


顺便MCBBS的at功能好敏感,代码块里面有个Javadoc标签((at)author)都能at到...

DoraJDJ
2015年1月30日

1

评分人数

听说没人看

TOP

完全看不懂。。。

TOP

看不懂x

TOP

看不懂

TOP

所以写了那么多还是没人看得懂( ´_ゝ`)
帖内回复
DoraJDJ在 2016-2-2 15:34 回复:
( ´_ゝ`)习惯就好

TOP

我都不会用Transformers
帖内回复
xfl03在 2016-8-3 00:22 回复:
1.9以下的版本都会被强制更新至authlib21,也就是含有验证的版本,那USM1.7.10 1.8岂不是不能用了?
xfl03在 2016-8-3 00:25 回复:
(借楼)以及CSL从1.7.10(mc加入authlib)以来都是直接操作SkinManager的,USM也在1.9开始操作SkinManager,所以可以避开这个问题

TOP

返回列表