本篇教程由作者设定未经允许禁止转载。

前言

本教程将会使用KubeJS添加 流体转化为物品、流体转化、物品爆炸、方块爆炸、被闪电击中、铁砧粉碎 的配方。

游戏版本为1.16.5,KubeJS版本1605.3.19-build.299,Interactio版本3.1.1。


所有代码将保存为.js文件在.minecraft\kubejs\server_scripts\目录下。

所有代码前面空格是为了缩进,如不需要可自行删除。

如遇报错,请查看括号、逗号、中文或奇怪字符是否出现或未出现。

所有输出都禁止使用标签。

注意事项

所有代码中的//+//后的文字均可删除,但不能只出现文字不出现//,可以出现//不出现文字。

所有代码中的第二个输出、输入均为演示,有些人想要第二个输入、输出却不知如何做才会有,如不需要第二个输入、输出可以按照提示删除。

合成表热重载指令为:“/reload”。

几率

所有代码几率(empty_weight、weight)机制:求几率公式如下,其中a代表消耗普通输出几率或空输出几率,b、c、d、.......代表其他全部几率,一定要把全部几率加起来:

求a几率:100/(a+b+c+.........)*a

如输出①代码几率为7,输出②代码几率为10,空输出代码几率为83,那么输出①游戏几率计算公式为:100/(7+10+83)*7=7=7%

翻译

Output Chance:输出几率。

Return Chance:返还几率。

Consumption Chance:消耗几率。

监听recipes事件

在开始前,.js文件中需要有这样一段代码:

events.listen('recipes', event => {
  event.custom({
    //以下教程添加配方代码要在大括号{}中写
  
  })
})

流体转化为物品

普通

  "type": "interactio:item_fluid_transform",
  "inputs": [ //输入
    {
      "item": "minecraft:spruce_log", //输入物品:minecraft:spruce_log,云杉原木
      "count": 3, //数量:3
      "return_chance": 0.75 //返还几率:75%,意思是有75%的几率返还1个物品,而不是3个一起,0或没有本行为不返还
    }
    //如无需第二个输入请删除从本行到“删除①”的代码
    ,{
      "tag": "forge:ingots/gold", //输入标签:forge:ingots/gold,
      "count": 2 //数量:2
    }
    //删除①
  ],
  "fluid": { //流体
    "fluid": "minecraft:water" //流体ID:water,水
  },
  "output": { //输出
    "entries": [
      {
        "result": { //输出①
          "item": "minecraft:diamond", //输出物品:minecraft:diamond,钻石
          "count": 2 //数量:2
        },
        "weight": 7 //几率
      } 
      //如无需第二个输出请删除从本行到“删除②”的代码
      ,
      {
        "result": { //输出②
          "item": "minecraft:orange_wool", //输出物品:minecraft:orange_wool,橙色羊毛
          "count": 3 //数量:2
        },
        "weight": 10 //几率
      }
      //删除②
    ],
    "empty_weight": 83 //空输出的几率,删除本行为无空输出
  },
  "consume_fluid": 0.1//消耗流体的几率:10%

图:

使用KubeJS添加Interactio配方-第1张图片

NBT

    "type": "interactio:item_fluid_transform",
    "inputs": [ //输入
      {
        "item":  "minecraft:glass_bottle", //输入物品:minecraft:glass_bottle,玻璃瓶
        "count": 1 //数量:1
        //可以添加返还几率
      }//也可添加第二个输出
    ],
    "fluid": { //流体
      "fluid": "minecraft:water" //流体ID:water,水
    },
    "output": { //输出
      "item": "minecraft:potion", //输出ID:玻璃瓶
      "count": 1, //数量:1
      "nbt": { //NBT
        "Potion": "minecraft:water" //NBT为水,也就是输出物品为水瓶
      }
    },
    "consume_fluid": 0.33 //消耗流体几率:33%

注:带有NBT的输出不能有输出几率(weight),也不能有第二个输出。

图:

使用KubeJS添加Interactio配方-第2张图片

流体转化

  "type": "interactio:fluid_fluid_transform",
  "items": [{ //物品输入
      "item": "minecraft:iron_ingot", //输入物品:minecraft:iron_ingot,铁锭,也可换为标签,将item改为tag,后方改为标签即可
      "count": 1, //数量:1
      "return_chance": 0.1 //返回几率:10%
  }],
  "input": { //原先流体
    "fluid": "minecraft:water" //流体ID:water,水
  },
  "output": { //转换后流体
    "entries": [
      {
        "result": {
          "fluid": "minecraft:water" //流体ID:minecraft:water,水
        },
        "weight": 2 //转换几率
      }
      //如无转换后有2中可能请删除从本行到“删除③”的代码
      ,{
        "result": {
          "fluid": "minecraft:lava" //流体ID:minecraft:lava,熔岩
        },
        "weight": 4 //转换几率
      }
      //删除③
    ],
    "empty_weight": 5 //流体变为空气几率,删除本行为必定变为流体
  }

注:此配方类型无法显示在JEI中,所以没图,不过游戏内还是可以正常使用的。大概意思是:将铁锭丢入水中,有10%的几率返还铁,并有大约14.29%的几率会转换为水,大约28.57%的几率转换为熔岩,大约35.71%转换为空气(不知如何算几率的看注意事项里的几率)。

物品爆炸

顾名思义,就是将物品丢在地上然后爆炸转换物品。

  "type": "interactio:item_explode",
  "inputs": [{ //输入
      "item": "minecraft:redstone", //输入物品:minecraft:redstone,红石
      "count": 1 //数量:1
     } //如无需输入第二个物品请删除从本行到“删除④”的代码
    ,{
      "tag": "forge:stone", //输入标签
      "count": 2
    }
    //删除④
  ],
  "output": { //输出
    "entries": [
      {
        "result": { //输出①
          "item": "minecraft:gold_nugget", //输出物品:minecraft:gold_nugget,金粒
          "count": 3 //数量:3
        },
        "weight": 2 //几率
      } //如无需输出第二个物品请删除从本行到“删除⑤”的代码
      ,{
        "result": {
          "item": "minecraft:redstone_block",
          "count": 1
        },
        "weight": 1
      }
      //删除⑤
    ],
    "empty_weight": 1, //空输出,删除本行为无空输出
  }

图:

使用KubeJS添加Interactio配方-第3张图片

方块爆炸

顾名思义,就是将放置的方块炸毁产生新的方块。

以下代码中的输入表示放置的方块,输出表示掉落的方块。

  "type": "interactio:block_explode",
  "input": { //输入
    "block": "minecraft:netherrack" //输入方块:minecraft:netherrack,下界岩
  },
  "output": { //输出
    "type": "block",
    "entries": [
      {
        "result": {
          "block": "minecraft:gold_ore" //输出方块:minecraft:gold_ore,金矿石
        },
        "weight": 3 //几率
      }
      //如无需输出第二物品,请删除从本行到“删除⑥”的代码
      ,{
        "result": {
          "block": "minecraft:obsidian" //输出方块:minecraft:obsidian,黑曜石
        },
        "weight": 2 //几率:2
      }
      //删除⑥
    ],
    "empty_weight": 5 //空输出几率
  }

图:

使用KubeJS添加Interactio配方-第4张图片

被闪电击中

顾名思义就是用闪电劈它/它们(输出着火不会消失)。

以下代码输入代表丢弃,输出代表掉落。

  "type": "interactio:item_lightning",
  "inputs": [ //输入
    {
      "item": "minecraft:dirt", //输入物品:minecraft:dirt,泥土
      "count": 1 //数量:1
    } 
    //如无需第二个输入请删除从本行到“删除⑦”的代码
    ,{
      "tag": "forge:stone", //输入标签
      "count": 2
    }
    //删除⑦
  ],
  "output": { //输出
    "entries": [
      {
        "result": {
          "item": "minecraft:grass_block", //输出物品:minecraft:grass_block,草方块
          "count": 1 //数量:1
        },
        "weight": 2 //几率
      }
      //如无需第二个输出物品请删除从本行到“删除⑧”的代码
      ,{
        "result": {
          "item": "minecraft:grass", //输出
          "count": 1
        },
        "weight": 2
      }
      //删除⑧
    ],
    "empty_weight": 1 //空输出几率
  }

图:

使用KubeJS添加Interactio配方-第5张图片铁砧粉碎

以下代码输入表示丢弃,输出表示掉落。

  "type": "interactio:item_anvil_smashing",
  "inputs": [ //输入
    {
      "item": "minecraft:gold_nugget", //输入物品minecraft:gold_nugget,金粒
      "count": 9 //数量:9
    }
    //如无需输入第二个物品请删除从本行到“删除⑨”的代码
    ,{
      "tag": "forge:stone",
      "count": 1
    }
    //删除⑨
  ],
  "output": { //输出
    "entries": [
      {
        "result": {
          "item": "minecraft:gold_ingot" //输出物品:minecraft:gold_ingot,金锭
        },
        "weight": 20 //几率
      }
      //如无需第二个输出请删除从本行到“删除⑩”的代码
      ,{
        "result": {
          "item": "minecraft:iron_nugget"
        },
        "weight": 10
      }
      //删除⑩
    ],
    "empty_weight": 1 //空输出几率
  },
  "damage": 1 //铁砧损坏程度

图:

使用KubeJS添加Interactio配方-第6张图片