xfl03 / MCCustomSkinLoader

Customize Skin, Cape and Elytra in Minecraft 1.8-1.21
GNU General Public License v3.0
495 stars 34 forks source link

[Bug] CSL在24w21b中崩溃 #295

Closed TorkenLaber closed 2 months ago

TorkenLaber commented 3 months ago

描述问题

CSL在1.21快照版本24w21b中不可用,使用模组加入服务器或是进入一个世界会导致客户端崩溃 在上一个快照24w20a中仍然可用

复现步骤

1. 加入一个服务器或者一个单人世界存档
2. 游戏崩溃

崩溃报告查看地址

https://mclo.gs/zbBoVhP

CustomSkinLoader.log 查看地址

https://mclo.gs/FfDcpku

latest.log 查看地址

https://mclo.gs/aUUw7JD

[仅Forge用户] Forge Log 查看地址

No response

模组版本

CustomSkinLoader_Fabric-14.19.1

Minecraft游戏版本

24w21b

Minecraft启动器 名称 及 版本

PCL

模组加载器

Fabric

操作系统

Windows

在提交错误报告之前,有没有做到...

paulzzh commented 2 months ago

从24w21a开始,net/minecraft/util/Identifier的Constructor变成private了,因此不能用new ResourceLocation(java.lang.String) https://github.com/xfl03/MCCustomSkinLoader/blob/cd1922844c735bad55f488a2059ccd0b05c9c806/Common/src/main/java/customskinloader/fake/FakeCapeBuffer.java#L15 24w20a 24w21a 1.21

可以改用Identifier.tryParse(String id)(Lnet/minecraft/class_2960;method_12829(Ljava/lang/String;)Lnet/minecraft/class_2960;),大概能解决24w21a开始到1.21存在的这个崩溃问题 但是我不太会修。。本人水平低看不太懂这个项目

paulzzh commented 2 months ago

通过一些Bytecode编辑确定只需把 private static final ResourceLocation TEXTURE_ELYTRA = new ResourceLocation("textures/entity/elytra.png"); 改成 private static final ResourceLocation TEXTURE_ELYTRA = ResourceLocation.tryParse("textures/entity/elytra.png"); 就能解决1.21上的NoSuchMethodError崩溃问题并正常工作 在有人来修之前,可以尝试自行用Recaf编辑\<clinit>解决 image 因为LICENSE限制我无法分发修改后的文件

Deniz1433 commented 2 months ago

通过一些Bytecode编辑确定只需把 private static final ResourceLocation TEXTURE_ELYTRA = new ResourceLocation("textures/entity/elytra.png"); 改成 private static final ResourceLocation TEXTURE_ELYTRA = ResourceLocation.tryParse("textures/entity/elytra.png"); 就能解决1.21上的NoSuchMethodError崩溃问题并正常工作 在有人来修之前,可以尝试自行用Recaf编辑解决 image 因为LICENSE限制我无法分发修改后的文件

Thanks, this works. However, since we modify the bytecode of the class, I had to re-sign the jar file, or else I'd get a SHA-256 Digest Error

谢谢,这可行。但是,由于我们修改了类的字节码,我必须重新签名 jar 文件,否则我会收到 SHA-256 摘要错误

yuji521 commented 2 months ago

能不能手把手教我啊