我如何在 Minecraft Forge for Minecraft 1.15 中将 object 转换为 INBT 类型的 nbt

How do I convert an object to a nbt of type INBT in Minecraft Forge for Minecraft 1.15

我最近在开发我的 Minecraft mod,在开发函数的 return 语句时,我发现它需要 return 类型的 INBT 实例。我有一个自定义 object,我需要将其转换为 INBT 类型的 NBT? 这是函数:

public INBT writeNBT(Capability<IAllergies> capability, IAllergies instance, Direction side) {

        return null;

    }

我查看了 INBT 的类型层次结构,没有发现任何有用的东西。

提前致谢, 孩子科德

我知道怎么做了。 我所做的是创建一个 ObjectNBT class 实现的 INBT,并写了一些方法 get/set Object 这是我最后的 class 看起来像:

public class ObjectNBT implements INBT {

    public Object object;

    public ObjectNBT(Object object) {
        this.object = object;
    }

    @Override
    public void write(DataOutput output) throws IOException {

    }

    @Override
    public byte getId() {
        return 0;
    }

    @Override
    public INBTType<?> func_225647_b_() {
        return null;
    }

    @Override
    public INBT copy() {
        return null;
    }

    @Override
    public ITextComponent toFormattedComponent(String indentation, int indentDepth) {
        return new StringTextComponent(indentation + indentDepth);
    }
}

随意复制和粘贴。

不,您不应该创建自己的 class。 这取决于你想要什么,但是有很多 classes,从 CompountNBT(有点像 Map),ListNBT(INBT 列表),到 BooleanNBT,StringNBT,IntegerNBT 等。 查看 INBT 的类型层次结构并选择您需要的。