修改Minecraft mod中的.class文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改Minecraft mod中的.class文件相关的知识,希望对你有一定的参考价值。

我使用JD-Gui来反编译.class文件,这要归功于我在一个不相关的问题上找到的建议,我用Eclipse编辑了.java代码。

当我使用Eclipse的构建函数将其重新编译为.class文件时,问题就出现了。它不是用.class的所有代码创建一个.java,而是创建一个.class,用输出来替换每个函数,说明错误是什么。我想当你告诉编译器使用错误进行编译时,它会按原样使用代码,而不是用错误替换代码。

我想要做的就是修改.class文件,我似乎无法找到解决问题的方法。有没有办法实际编译代码而不是代码生成的错误?

答案

对于Minecraft modding,不建议手动反编译和修改.class文件!

您的偏好顺序选项:

  1. 找到mod的来源并分叉它。
  2. 请求mod作者为要更改的内容添加API。
  3. 在运行时修补mods代码。
  4. 使用BON2或MCP / ForgeGradle反编译mod(可能破坏它的许可证)以获得类似于原始反混淆源的源。

也就是说,如果你开始做4,你将需要找到它用来再次编译的所有库。

它创建一个.class,用一个输出来替换每个函数,说明错误是什么。我想当你告诉编译器使用错误进行编译时,它会按原样使用代码,而不是用错误替换代码。

这是预期的行为。编译错误主要用于hotswappable代码,因此您可以快速原型而不必担心源是100%可编译的,它不可能链接到它没有的依赖项。

是否有任何方法可以实际编译代码而不是替换为代码生成的错误?

直接修改字节码,或者按照上面的选项之一进行操作。

以上是关于修改Minecraft mod中的.class文件的主要内容,如果未能解决你的问题,请参考以下文章

Minecraft Fabric Client 教程 #2 修改文件和目录名添加run和stop

[minecraft]mcCoder制作有感

Minecraft 1.64 的 Bukkit 服务器 怎么安装Mod ? 我在客户端里安装了,

Minecraft Fabric模组开发踩坑:缺失Fabric API

Minecraft Fabric模组开发踩坑:缺失Fabric API

Minecraft Fabric模组开发踩坑:缺失Fabric API