Java 如何在Minecraft Forge for Minecraft 1.15中将对象转换为INBT类型的nbt

Java 如何在Minecraft Forge for Minecraft 1.15中将对象转换为INBT类型的nbt,java,object,minecraft-forge,Java,Object,Minecraft Forge,我最近在处理我的Minecraft mod,在处理函数的return语句时,我发现它需要一个INBT实例作为返回类型。我有一个自定义对象,需要将其转换为INBT? 以下是函数: public INBT writeNBT(Capability<IAllergies> capability, IAllergies instance, Direction side) { return null; } public-INBT-writeNBT(功能、IAller

我最近在处理我的Minecraft mod,在处理函数的return语句时,我发现它需要一个INBT实例作为返回类型。我有一个自定义对象,需要将其转换为
INBT
? 以下是函数:

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

        return null;

    }
public-INBT-writeNBT(功能、IAllergies实例、方向侧){
返回null;
}
我查看了
INBT
的类型层次结构,没有发现任何有用的东西

提前感谢,, Kid Koder

我知道怎么做了。 我所做的是创建了一个
ObjectNBT
类,实现了
INBT
,并编写了一些方法来获取/设置
对象
,下面是我最后一个类的外观:

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);
    }
}
公共类ObjectNBT实现INBT{
公共客体;
公共对象NBT(对象){
this.object=对象;
}
@凌驾
公共无效写入(数据输出)引发IOException{
}
@凌驾
公共字节getId(){
返回0;
}
@凌驾
公共INBTType func_225647_b_u(){
返回null;
}
@凌驾
公开输入副本(){
返回null;
}
@凌驾
公共ITextComponent到FormattedComponent(字符串缩进、整数缩进深度){
返回新的StringTextComponent(缩进+缩进深度);
}
}

请随意复制和粘贴。

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