前情提要

安装kubejs后,在游戏目录下的kubejs文件夹内添加脚本。

对于修改配方而言,脚本放在kubejs\server_scripts文件夹(你可以找到作者留下的范例),并按如下格式编写:


onEvent('recipes', event => {

//在此处编写代码

}

)


正文

工作台、熔炉、切石机……这些原版配方都可以通过kubeJS、CrT进行魔改,而CrT还能魔改模组所添加的配方类型,那么kubeJS在不添加附属的情况下就只能改原版配方吗?答案是否定的。

本教程将以TaC永恒枪械工坊的枪械工作台、农夫乐事的砧板为例子,讲解如何用kubeJS修改模组所添加的特殊配方。

修改TaC枪械工作台配方

打开枪械工作台GUI。

可以看到李-恩菲尔德步枪需要60铁锭、10云杉原木。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第1张图片

要修改掉配方,需要知道原本的配方在哪。

配方id一般可以在JEI内的产物处看到,如下。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第2张图片

不过TaC枪械工作台并不支持JEI。

所以我们需要采取别的直接些的方法。

可以看到,李-恩菲尔德的物品id为tac:smele_iii

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第3张图片

用解压缩软件(比如winrar)打开TaC的.jar文件,在data\tac\recipes下找到TaC的配方。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第4张图片

tac:因为是TaC。

recipes:因为是配方。

找到craft_smle_iii.json:因为是李-恩菲尔德的物品id。

打开查看:

(格式有点糟糕)

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第5张图片

将其复制下来:


{"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,再打开枪械工作台。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第6张图片

修改成功。

以此类推,可以添加新的材料,比如机械动力精密构件


       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,修改成功。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第7张图片

添加农夫乐事砧板配方

之前提到查找配方id时,举例时用了砧板配方。现在来添加一个新的砧板配方。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第8张图片

同样,打开农夫乐事的.jar文件,在data\farmersdelight\recipes\cutting内可以找到砧板配方。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第9张图片

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个骨头。

KubeJS如何修改模组特殊配方:以TaC枪械工作台、农夫乐事为例-第10张图片

总结

打开mod的.jar文件,在data\recipes内找到特殊配方的json文件,然后代入到event.custom()中进行修改或添加配方。