添加物品阶段

1.1.0

最新版本,如果模组有更新本教程会同步更新。

数据包:

{
  "type": "emc_stage:stage_limit",
  "limit_item": {
    "item":"minecraft:iron_ingot"
  },
  "stages": ["two","three"],
  "require": true
}

给铁锭添加 two 和 three 的转化阶段,并且需要同时达成。

如果将 require 字段改为 false,则 two 和 three 阶段达成任一即可。

CraftTweaker:

<recipetype:emc_stage:stage_limit>.add(stack as IItemStack, stages as string[], require as boolean);

这里的 require 字段含义与上方相同。

1.0.0

数据包:

{
  "type": "emc_stage:stage_limit",
  "limit_item": {
    "item":"minecraft:bedrock"
  },
  "stage": "two"
}

给基岩添加 two 的转化阶段,该版本仅限添加一个阶段。

CraftTweaker:

<recipetype:emc_stage:stage_limit>.add(item as IItemStack, stage as string);

CrT玩家拓展

CrT 玩家类名:

crafttweaker.api.player.MCPlayerEntity;


方法名返回值解释
getEMC()
long获取玩家EMC
getBigIntegerPlayerEMC()
java.math.BigInteger如果玩家EMC超过long上限用这个(可能会有问题)
setEMC(long value)void设置玩家EMC
hasKnowledge(IItemStack stack)boolean判断玩家是否存在某个物品转化桌知识
addKnowledge(IItemStack stack)boolean给玩家增加一个物品转化桌知识,返回是否成功添加
removeKnowledge(IItemStack stack)boolean给玩家删除一个物品转化桌知识,返回是否成功删除

例子:

当玩家捡起物品的时候:

  • 输出玩家的EMC值;

  • 将玩家的 EMC 设置为 114,514;

  • 输出玩家是否有基岩的转化知识;

  • 给玩家添加铁锭的转化知识,忽略返回值。


import crafttweaker.api.events.CTEventManager;
import crafttweaker.api.event.entity.player.MCItemPickupEvent;

CTEventManager.register<MCItemPickupEvent>(event => {
    var player = event.player;
    println(player.getEMC());
    player.setEMC(114514);
    println(player.hasKnowledge(<item:minecraft:bedrock>));
    player.addKnowledge(<item:minecraft:iron_ingot>);
});