ZenCaster 表示一个可以用 as 令牌调用的方法。
ZenCaster 可用于转换类型(如String 转 IData

java
Copy
@ZenExpansion("crafttweaker.item.IItemStack")
@ZenRegister
public class Expansion {
    @ZenMethod
    public static void print(IItemStack stack) {
        CraftTweakerAPI.logInfo("STACKKKKK: " + stack.getDisplayName());
    }

    @ZenCaster
    public static IOreDictEntry asOreDict(IItemStack stack) {
        return stack.getOres().get(0);
    }
}

如果现在有人调用这个方法,他们就会获得一个 oreDictEntry:

ZenScript
Copy
val oreDict = <minecraft:iron_ingot> as IOreDictEntry;

什么方法可以被注解 || 额外信息

Link to 什么方法可以被注解--额外信息

  • 你可以注解所有的非静态方法(除非它在 ZenExpansion 中,因为它们仅有静态组成)
  • 当被注解的方法在 ZenExpansion 中时需要一个参数,如果它在 ZenClass 中则不需要。
  • 不要在 ZenClasses 中依赖 ZenCasters,它们只能在 ZenExpansions 中可靠地工作。