让1.12.2的CraftTweaker合成可以热加载。它只支持原版合成,是作者研究forge注册表的副产物。其实就是合成注册表备份还原。
实现热加载并不复杂,只是步骤繁多。
新建一个class,里面放个static List<Runnable>
通过反编译和重编译修改MoT和CrT的代码,在调用ModTweaker和CrT每个合成修改方法时,以下三条任选其一:
add:往list加入remove(recipe),remove:记录被remove的内容。
提供一个“合成表快照”。
暴露一个“重置方法”。
简而言之:消除它们作用效果的“反代码”。然后重载时把它们还原,再按照CTRL里的代码让CrT重载脚本。
对某些人:这完全做得到,只是作者没这么多时间,很多人也没这个时间。
而玩家就认为:这是不可能的,只因为作者在代码里留的几句话。起码,“合成”这一个方面是绝对可以的。
使用方法
/refresh_recipe
注意:JEI内的合成不会刷新,如果要刷新,使用下面的指令:
/texture_reload
先执行 /refresh_recipe 再执行 /texture_reload。这个指令会重新加载资源包,会发生几秒钟的卡顿。
此外还有一个指令:
/itemdata [NBT]
修改手上物品的NBT。