本帖最后由 wshycaa 于 2019-4-10 21:07 编辑
1.7的ItemStack序列化时无法保存NBT数据
我尝试使用PowerNBT这个插件作为前置读取,可以拿到NBTCompound,
但是不知道如何能够把拿到NBTCompound的数据存储在yml中,并且在需要用的时候读取回来,然后写入ItemStack
关于读取和写入的方法可以使用PowerNBT的read(ItemStack)和write(ItemStack),但是我无法将它保存到yml中然后读取回来
可不可以给我一段代码作为参考呢?(关于将NBTCompound序列化存储在yml中,以及读取yml中的NBTCompound数据)
1.7的ItemStack序列化时无法保存NBT数据
我尝试使用PowerNBT这个插件作为前置读取,可以拿到NBTCompound,
但是不知道如何能够把拿到NBTCompound的数据存储在yml中,并且在需要用的时候读取回来,然后写入ItemStack
关于读取和写入的方法可以使用PowerNBT的read(ItemStack)和write(ItemStack),但是我无法将它保存到yml中然后读取回来
可不可以给我一段代码作为参考呢?(关于将NBTCompound序列化存储在yml中,以及读取yml中的NBTCompound数据)
1710里bukkit自带的ItemStack的yml序列化有问题
可以使用ProtocolLib:
public static ItemStack getItemStack(String data)
{
StreamSerializer ss=new StreamSerializer();
try
{
return ss.deserializeItemStack(data);
}catch(Exception e){e.printStackTrace();}
return null;
}
public static String toData(ItemStack item)
{
StreamSerializer ss=new StreamSerializer();
try
{
return ss.serializeItemStack(item);
}catch(Exception e){e.printStackTrace();}
return null;
}
config.set("item",toData(ItemStack));
可以使用ProtocolLib:
public static ItemStack getItemStack(String data)
{
StreamSerializer ss=new StreamSerializer();
try
{
return ss.deserializeItemStack(data);
}catch(Exception e){e.printStackTrace();}
return null;
}
public static String toData(ItemStack item)
{
StreamSerializer ss=new StreamSerializer();
try
{
return ss.serializeItemStack(item);
}catch(Exception e){e.printStackTrace();}
return null;
}
config.set("item",toData(ItemStack));
810587921 发表于 2019-4-11 02:26
1710里bukkit自带的ItemStack的yml序列化有问题
可以使用ProtocolLib:
public static ItemStack getItemSta ...
感谢!问题解决了
不知道=- =这个你可能要深渊一点了
调度的点点滴滴点点滴滴
sssssssssssssss
6666666666666666666666