NBTBase in 1.7??

Discussion in 'Plugin Development' started by 200dvd, Dec 1, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    200dvd

    Is NBTBase removed in 1.7.2???

    Code:java
    1. NBTTagList itemList = new NBTTagList();


    I cant't write the List
    Code:java
    1. NBTBase.a(itemList, out);


    or Load
    Code:java
    1. NBTTagList itemList = (NBTTagList) NBTBase.a(in);
     
  2. Offline

    BungeeTheCookie

  3. Offline

    200dvd

    in?
     
  4. Offline

    CaLxCyMru

    Code:java
    1. net.minecraft.server.v1_7_R1.


    Is that what you are after?
     
  5. Offline

    200dvd

    no ;)

    in NBTBase is the method removed to save a NBTTagList in DataOutputStream


    Code:java
    1. public static InputStream serialize(Collection<ItemStack> items, boolean gzip) throws IOException {
    2. if (!items.isEmpty()) {
    3. out.writeBoolean(gzip);
    4. if (gzip) {
    5. out.flush();
    6. out = new DataOutputStream(new GZIPOutputStream(out, true));
    7. }
    8. NBTTagList itemList = new NBTTagList();
    9.  
    10. // Save every element in the list
    11. for (ItemStack item : items) {
    12. net.minecraft.server.v1_7_R1.ItemStack nmsis = CraftItemStack.asNMSCopy(item);
    13. if (nmsis != null) {
    14. NBTTagCompound outputObject = new NBTTagCompound();
    15. nmsis.save(outputObject);
    16. itemList.add(outputObject);
    17. }
    18. }
    19. // Now save the list !ERROR HERE!
    20. NBTBase.a(itemList, out);
    21. out.flush();
    22. ret = new ByteArrayInputStream(bos.toByteArray());
    23. }
    24. return ret;
    25. }
     
  6. Offline

    Milkywayz

    Code:
    NBTCompressedStreamTools 
    Appears to be the best bet, however I haven't been able to figure out how to correctly utilize it.

    Hopefully someone can help more.
     
  7. Offline

    200dvd

    Code:java
    1. public static InputStream serialize(Collection<ItemStack> items, boolean gzip) throws IOException {
    2. if (!items.isEmpty()) {
    3. /*ByteArrayOutputStream bos = new ByteArrayOutputStream();
    4.   DataOutputStream out = new DataOutputStream(bos);
    5.   out.writeBoolean(gzip);
    6.   if (gzip) {
    7.   out.flush();
    8.   out = new DataOutputStream(new GZIPOutputStream(out, true));
    9.   }
    10.   NBTTagList itemList = new NBTTagList();
    11.  
    12.   // Save every element in the list
    13.   for (ItemStack item : items) {
    14.   net.minecraft.server.v1_7_R1.ItemStack nmsis = CraftItemStack.asNMSCopy(item);
    15.   if (nmsis != null) {
    16.   NBTTagCompound outputObject = new NBTTagCompound();
    17.   nmsis.save(outputObject);
    18.   itemList.add(outputObject);
    19.   }
    20.   }
    21.   // Now save the list
    22.   NBTBase.a(itemList, out);
    23.  
    24.   out.flush();
    25.   */
    26. ByteBuf buf = Unpooled.EMPTY_BUFFER;
    27. PacketDataSerializer serializer = new PacketDataSerializer(buf);
    28.  
    29. buf.writeInt(items.size());
    30.  
    31. for(ItemStack item : items)
    32. serializer.a(CraftItemStack.asNMSCopy(item));
    33.  
    34. ret = new ByteArrayInputStream(serializer.array());
    35. }
    36. return ret;
    37. }
    38.  
    39. public static List<ItemStack> deserialize(InputStream input) throws IOException {
    40. List<ItemStack> items = new ArrayList<>();
    41. //new GZIPInputStream(input)
    42. if (in.readBoolean())
    43. in = new DataInputStream(new GZIPInputStream(input));
    44.  
    45. ByteBuf buf = Unpooled.EMPTY_BUFFER;
    46. buf.writeBytes(IOUtils.toByteArray(in));
    47. PacketDataSerializer serializer = new PacketDataSerializer(buf);
    48.  
    49. int count = serializer.readInt();
    50. for(int i = 0; i < count; i++) {
    51. net.minecraft.server.v1_7_R1.ItemStack item = serializer.c();
    52. if(item != null)
    53. items.add(CraftItemStack.asCraftMirror(item));
    54. }
    55.  
    56.  
    57. /*NBTTagList itemList = (NBTTagList) NBTBase.a(in);
    58.   for (int i = 0; i < itemList.size(); i++) {
    59.   NBTTagCompound inputObject = (NBTTagCompound) itemList.get(i);
    60.  
    61.   if (!inputObject.isEmpty()) {
    62.   items.add(CraftItemStack.asCraftMirror(net.minecraft.server.v1_7_R1.ItemStack.createStack(inputObject)));
    63.   }
    64.   }*/
    65. return items;
    66. }
     
  8. Offline

    TrenTech

    Anyone figure this out yet?
     
  9. Offline

    200dvd

    Code:java
    1. public static InputStream serialize(Collection<ItemStack> items, boolean gzip) throws IOException {
    2. if (!items.isEmpty()) {
    3. /*ByteArrayOutputStream bos = new ByteArrayOutputStream();
    4.   DataOutputStream out = new DataOutputStream(bos);
    5.   out.writeBoolean(gzip);
    6.   if (gzip) {
    7.   out.flush();
    8.   out = new DataOutputStream(new GZIPOutputStream(out, true));
    9.   }
    10.   NBTTagList itemList = new NBTTagList();
    11.  
    12.   // Save every element in the list
    13.   for (ItemStack item : items) {
    14.   net.minecraft.server.v1_5_R3.ItemStack nmsis = CraftItemStack.asNMSCopy(item);
    15.   if (nmsis != null) {
    16.   NBTTagCompound outputObject = new NBTTagCompound();
    17.   nmsis.save(outputObject);
    18.   itemList.add(outputObject);
    19.   }
    20.   }
    21.   // Now save the list
    22.   NBTBase.a(itemList, out);
    23.  
    24.   out.flush();
    25.   */
    26. ByteBuf buf = Unpooled.buffer();
    27. PacketDataSerializer serializer = new PacketDataSerializer(buf);
    28.  
    29. buf.writeInt(items.size());
    30.  
    31. for (ItemStack item : items)
    32. serializer.a(CraftItemStack.asNMSCopy(item));
    33.  
    34. ret = new ByteArrayInputStream(serializer.array());
    35. }
    36. return ret;
    37. }
    38.  
    39. public static List<ItemStack> deserialize(InputStream input) throws IOException {
    40. List<ItemStack> items = new ArrayList<>();
    41. //new GZIPInputStream(input)
    42.  
    43.  
    44. ByteBuf buf = Unpooled.buffer();
    45. buf.writeBytes(IOUtils.toByteArray(in));
    46. PacketDataSerializer serializer = new PacketDataSerializer(buf);
    47. try {
    48. int count = buf.readInt();
    49. for (int i = 0; i <= count; i++) {
    50. net.minecraft.server.v1_5_R3.ItemStack item = serializer.c();
    51. if (item != null) {
    52. items.add(CraftItemStack.asCraftMirror(item));
    53. }
    54. }
    55. } catch (Exception e) {
    56. }
    57. if (items.size() == 0)
    58. items.add(new ItemStack(Material.AIR));
    59. /*NBTTagList itemList = (NBTTagList) NBTBase.a(in);
    60.   for (int i = 0; i < itemList.size(); i++) {
    61.   NBTTagCompound inputObject = (NBTTagCompound) itemList.get(i);
    62.  
    63.   if (!inputObject.isEmpty()) {
    64.   items.add(CraftItemStack.asCraftMirror(net.minecraft.server.v1_5_R3.ItemStack.createStack(inputObject)));
    65.   }
    66.   }*/
    67. return items;
    68. }
     
Thread Status:
Not open for further replies.

Share This Page