前情提要
安装kubejs后,在游戏目录下的kubejs文件夹内添加脚本。
对于修改配方而言,脚本放在kubejs\server_scripts文件夹(你可以找到作者留下的范例),并按如下格式编写:
onEvent('recipes', event => {
//在此处编写代码
}
)
正文
工作台、熔炉、切石机……这些原版配方都可以通过kubeJS、CrT进行魔改,而CrT还能魔改模组所添加的配方类型,那么kubeJS在不添加附属的情况下就只能改原版配方吗?答案是否定的。
本教程将以TaC永恒枪械工坊的枪械工作台、农夫乐事的砧板为例子,讲解如何用kubeJS修改模组所添加的特殊配方。
修改TaC枪械工作台配方
打开枪械工作台GUI。
可以看到李-恩菲尔德步枪需要60铁锭、10云杉原木。
要修改掉配方,需要知道原本的配方在哪。
配方id一般可以在JEI内的产物处看到,如下。
不过TaC枪械工作台并不支持JEI。
所以我们需要采取别的直接些的方法。
可以看到,李-恩菲尔德的物品id为tac:smele_iii
用解压缩软件(比如winrar)打开TaC的.jar文件,在data\tac\recipes下找到TaC的配方。
tac:因为是TaC。
recipes:因为是配方。
找到craft_smle_iii.json:因为是李-恩菲尔德的物品id。
打开查看:
(格式有点糟糕)
将其复制下来:
{"type":"tac:workbench","result":{"item":"tac:smle_iii"},"materials":[{"item":"minecraft:iron_ingot","count":60},{"item":"minecraft:spruce_log","count":10}]}
配方类型为tac:workbench,即TaC的枪械工作台,合成物品为李-恩菲尔德步枪,需要60铁锭,10个云杉原木。
现在让它需要64个而不是60个铁锭合成,即将60改成64。
同时在前面加上 event.remove({ id: 'tac:craft_smle_iii' }) 来移除原有配方:
event.remove({ id: 'tac:craft_smle_iii' })
event.custom(
{"type":"tac:workbench","result":{"item":"tac:smle_iii"},"materials":[{"item":"minecraft:iron_ingot","count":64},{"item":"minecraft:spruce_log","count":10}]}
)
注意:请把这些event放在onEvent内!
重载/reload,再打开枪械工作台。
修改成功。
event.remove({ id: 'tac:craft_smle_iii' })
event.custom(
{
"type":"tac:workbench",
"result":{"item":"tac:smle_iii"},
"materials":[
{"item":"minecraft:iron_ingot","count":64},
{"item":"minecraft:spruce_log","count":10},
{"item":"create:precision_mechanism","count":10}
]
}
)
顺便调整了格式。
再次/reload,修改成功。
添加农夫乐事砧板配方
之前提到查找配方id时,举例时用了砧板配方。现在来添加一个新的砧板配方。
同样,打开农夫乐事的.jar文件,在data\farmersdelight\recipes\cutting内可以找到砧板配方。
farmersdelight:因为是农夫乐事。
recipes:因为是配方。
cutting:因为砧板用的是“切”。
接着随意点开一个:
{
"type": "farmersdelight:cutting",
"ingredients": [
{
"item": "minecraft:wither_rose"
}
],
"tool": {
"tag": "forge:tools/knives"
},
"result": [
{
"item": "minecraft:black_dye",
"count": 2
}
]
}
用任意标签为forge:tools/knives的工具(tools)在砧板上切凋零玫瑰,得到两个黑色染料。
以此类推,在event.custom()内写入砧板配方,就有:
event.custom(
{
"type": "farmersdelight:cutting",
"ingredients": [
{
"item": "iceandfire:dragon_skull_fire"
}
],
"tool": {
"tag": "forge:tools/wrench"
},
"result": [
{
"item": "minecraft:bone",
"count": 8
}
]
}
)
用任意标签为forge:tools/wrench的工具(比如RS的扳手、热力的新月锤)在砧板上“切”冰火传说的飞龙颅骨(火龙)得到8个骨头。
总结
打开mod的.jar文件,在data\recipes内找到特殊配方的json文件,然后代入到event.custom()中进行修改或添加配方。