Java 如何在Minecraft Forge for Minecraft 1.15中将对象转换为INBT类型的nbt
我最近在处理我的Minecraft mod,在处理函数的return语句时,我发现它需要一个INBT实例作为返回类型。我有一个自定义对象,需要将其转换为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
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的类型层次结构,并选择您需要的类型层次结构