事情原委是这样:
我本来打算在服务器中加强核电,于是在ic2.ini中将核电的发电量倍数设为10倍。
然而实际测试发现核电站即使显示的发电量超过8192,但实际的输出会被限制到8192,无论接多少条导线,所有导线的运输量总和一定不会超过8192eu/t。
于是我考虑魔改ic2,很悲伤的是ic2没有开源。
于是我反编译了ic2代码,发现问题可能出在ic2.core.block.reactor.tileentity的TileEntityNuclearReactorElectric.java的getSourceTier函数中:
复制代码也就是说核电站的能量级别为5,而这个能量级别的输出最大为8192eu/t。
于是我修改了代码,但是发现发布版本的ic2做了混淆(或者类似于混淆的奇奇怪怪的东西),导致编译时会出现各种函数名“找不到符号”的报错。
经过一番搜索,我发现dev版本的ic2中的源码的函数名是没有经过混淆的,但是dev版本的ic2无法在forge中正常运行,会在net.minecraft.xxx出现NoSuchMethodError。
因此,我想要知道如何使ic2的dev版本像发布版本一样在forge中运行?
或者如果你有其他的解决方案也可以!
感谢~
我本来打算在服务器中加强核电,于是在ic2.ini中将核电的发电量倍数设为10倍。
然而实际测试发现核电站即使显示的发电量超过8192,但实际的输出会被限制到8192,无论接多少条导线,所有导线的运输量总和一定不会超过8192eu/t。
于是我考虑魔改ic2,很悲伤的是ic2没有开源。
于是我反编译了ic2代码,发现问题可能出在ic2.core.block.reactor.tileentity的TileEntityNuclearReactorElectric.java的getSourceTier函数中:
- public int getSourceTier() {
- return 5;
- }
于是我修改了代码,但是发现发布版本的ic2做了混淆(或者类似于混淆的奇奇怪怪的东西),导致编译时会出现各种函数名“找不到符号”的报错。
经过一番搜索,我发现dev版本的ic2中的源码的函数名是没有经过混淆的,但是dev版本的ic2无法在forge中正常运行,会在net.minecraft.xxx出现NoSuchMethodError。
因此,我想要知道如何使ic2的dev版本像发布版本一样在forge中运行?
或者如果你有其他的解决方案也可以!
感谢~
你说的混淆,应该是 forge 的混淆,混淆的是 mojang 的类,方法等等。
如果你要通过修改源码的方式,建议你简单看看开发 forge 的教程,然后弄个 mdk,再用 dev 反编译后的代码,修改后编译就行。
不过其实只是修改一个返回值的话,可以更简单的。
下载一个 https://github.com/Col-E/Recaf
然后
如果你要通过修改源码的方式,建议你简单看看开发 forge 的教程,然后弄个 mdk,再用 dev 反编译后的代码,修改后编译就行。
不过其实只是修改一个返回值的话,可以更简单的。
下载一个 https://github.com/Col-E/Recaf
然后

