perromercenary00 Posted May 7, 2017 Posted May 7, 2017 (edited) Good days im trying to fix something else exactly this post this time just a step at time actually i have a code that allow me to store a custom inventory in an item but using nbtTag's i made it coping code from the blockchest.class this is minecraft 11.2 i has been told its suppose you do this kind of things using capabilities i been reading things but really i don't get how to do this first steep ¿can someone lend mi a guide on how to read/store costume inventories in itemstack or a working mod code whit this feature to begin from o sea the code to do this same thing but with capabilities or i just Misunderstand the whole thing and this is done this way with nbttags // #########################################################################3 public static ArrayList<ItemStack> readInventariofromItem(ItemStack chestarmour) { // System.out.println("!leerInventarioItem!"); NBTTagCompound itemnbtcmp = chestarmour.getTagCompound(); int inventariosize = util.getInttag(chestarmour, "inventariosize"); ArrayList<ItemStack> chestInventory = new ArrayList<ItemStack>(inventariosize); // System.out.println("!inventariosize="+inventariosize); if (itemnbtcmp != null) { if (itemnbtcmp.hasKey("Inventario")) { NBTTagList nbttaglist = itemnbtcmp.getTagList("Inventario", 10); for (int i = 0; i < nbttaglist.tagCount(); ++i) { NBTTagCompound nbttagcompound = nbttaglist.getCompoundTagAt(i); int j = nbttagcompound.getByte("Slot") & 255; ItemStack itemstack = new ItemStack(nbttagcompound); itemstack = (itemstack == null) ? itemstack.EMPTY : itemstack; // System.out.println(i+"!itemstack="+itemstack.getUnlocalizedName()+" // j="+j); if (j >= 0 && j < inventariosize) { // chestInventory.set(j, itemstack); chestInventory.add(itemstack); } } } } return chestInventory; } // #########################################################################3 public static ItemStack writeInventariotoItem(ItemStack chestarmour, ArrayList<ItemStack> inv) { // System.out.println("!escribirInventarioItem!"); int inventariosize = inv.size(); NBTTagCompound itemnbtcmp = chestarmour.getTagCompound(); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i < inventariosize; ++i) { ItemStack itemstack = (ItemStack) inv.get(i); itemstack = (itemstack == null) ? itemstack.EMPTY : itemstack; NBTTagCompound nbttagcompound = new NBTTagCompound(); nbttagcompound.setByte("Slot", (byte) i); itemstack.writeToNBT(nbttagcompound); nbttaglist.appendTag(nbttagcompound); } if (itemnbtcmp == null) { itemnbtcmp = new NBTTagCompound(); } itemnbtcmp.setTag("Inventario", nbttaglist); chestarmour.setTagCompound(itemnbtcmp); util.setInttag(chestarmour, "inventariosize", inventariosize); return chestarmour; } // #########################################################################3 public static void showInventariocontens(ArrayList<ItemStack> inv) { int invsize = inv.size(); ItemStack stack = ItemStack.EMPTY; for (int i = 0; i < invsize; ++i) { stack = inv.get(i); System.out.println("SLOT[" + i + "]=" + stack.getUnlocalizedName() + " > " + stack.getCount()); } } // #########################################################################3 public static void setInttag(ItemStack item, String tag, int value) { NBTTagCompound etiquetas = item.getTagCompound(); if (etiquetas == null) { etiquetas = new NBTTagCompound(); } etiquetas.setInteger(tag, value); item.setTagCompound(etiquetas); } // #########################################################################3 Edited May 7, 2017 by perromercenary00 uncomplete save Quote
tommyte Posted May 7, 2017 Posted May 7, 2017 Alright, your code seems pretty messy, so you might want to try to clean it up a bit. It really makes things easier Regarding the capabilities. You should override getCapability and hasCapability in your item class. (Might be itemstack, ill look it up for you later). You can initialize an instance of the itemstackhandler capability and return that instance in getcapability. You can look it up in the documentation. Good luck, and let me know if you need more help. Quote
perromercenary00 Posted May 8, 2017 Author Posted May 8, 2017 (edited) https://mcforge.readthedocs.io/en/latest/datastorage/capabilities/ its that documentation that i don't get they explain what its the capability and more or less what it needs to work but actually has no examples of how do the things or at least i don't understand it coze is write in English. Anyway i think this capability thing came whit the idea of not use in excess NBT to write and read info, but create and object to store temporally the data and just use it read/write the data fast and only read write the nbt one time at load the world and write one time ad close/save world first thing i don't understand, have I to create a class whit the code to store, in this case an inventory an some other nbt's variables, where i create this class, what classes have i to implement, where i must declare it for minecrafts to be aware how i attach it to the item class looking in the vainilla code for the entity player i made this https://gist.github.com/anonymous/1edf37742d0b4be02ba9b6574cdb5709 i suppose this class must have gets and sets to access all the data i need, well again now how i declare the existence of this class in the common proxy how i attach this capability class to mi costume item chestPlate/Backpack class ?? is something like tile-entities but whit getCapability and hasCapability well how i retrieve mi data whit this methods ?? for what i read this capability thing only works for server side and is not synced with the client side, i must rearrange mi package system to send to client side the data changes (serialize up and down everything ) anyway at least this guide is missing a working example whit that i could just see how everything is declare and where, what classes are using and what classes/interfaces are extended/implemented and avoid post must of this bobby question in the forum thanks for reading no en serio im little mad here to see how complex has become a single item in 1.11 Edited May 8, 2017 by perromercenary00 Quote
tommyte Posted May 8, 2017 Posted May 8, 2017 (edited) 6 hours ago, perromercenary00 said: first thing i don't understand, have I to create a class whit the code to store, in this case an inventory an some other nbt's variables, where i create this class, what classes have i to implement, where i must declare it for minecrafts to be aware how i attach it to the item class You will have to ready and write to nbt yourself, in your capability provider class. For what you made, you don't have to inject an existing capability, and you should instead extends the ItemStackHandler class there. It seems like you did a great job of making your own implementation. You don't have to register that class. You can instantiate it in your item class. Like below. Mind you, this class I made very quickly and without much experience with capabilities for items. It seems quite different from tile entities but still. I hope i'll give you a rough idea of what you should do. public class ItemExample extends Item{ ItemStackHandler inventory; public ItemExample() { } public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack stackToSaveTo = playerIn.getHeldItem(handIn); //Do add a check to see if this really is your item. //You probably wont need the capability until you open the inventory for the first time. So.. if(inventory == null) { inventory = (ItemStackHandler) initCapabilities(stackToSaveTo, null).getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); } //Then here you can open the inventory and things, and, load data from nbt. NBTTagCompound nbt = new NBTTagCompound(); inventory.deserializeNBT(nbt); //Now the nbt has all the information you need. Granted you gave what you wanted in the method below. //Now you can open inventory and things, and let the player do stuff. return new ActionResult(EnumActionResult.PASS, playerIn.getHeldItem(handIn)); } public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityLivingBase entityLiving, int timeLeft) { //This should do what it says, so now you can save the data that has changed. inventory.serializeNBT(); } @Override public ICapabilityProvider initCapabilities(ItemStack item, NBTTagCompound nbt) { if(item.getItem() instanceof ItemExample) { return new ExampleProvider(); } return null; } public static class ExampleProvider implements ICapabilityProvider, ICapabilitySerializable { @Override public NBTBase serializeNBT() { //Retrieve data here return null; } @Override public void deserializeNBT(NBTBase nbt) { //Do your saving here } @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return true; } return false; } @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return (T) new ItemStackHandler(2/**the amount of slots you want*/); //This is the default implementation by forge, but you'll likely want to make your own by overriding. } return null; } } } 6 hours ago, perromercenary00 said: for what i read this capability thing only works for server side and is not synced with the client side, i must rearrange mi package system to send to client side the data changes (serialize up and down everything ) Just try without and see what happens. If there is information missing on the client side, you can send packages to sync up. But only when needed. Edited May 8, 2017 by tommyte forgot to remove an unused method.. again Quote
perromercenary00 Posted May 17, 2017 Author Posted May 17, 2017 good days guys really dont get what i doing m been just like here shooting in the dark lets make it more simple make aside for a while the chestplate/backpackk item inventory this pueba01 item has only an int Nbt tag named redstone storing the amoung of redstone "" how i get/set the value from the nbt ?? https://gist.github.com/anonymous/1db0b20c50fe1e6dca557a48a29e23be //############################################################################################# public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack itemstack = playerIn.getHeldItem(handIn); playerIn.setActiveHand(handIn); //int redstone = util.getInttag(itemstack, "redstone"); //util.setInttag(itemstack, "redstone", redstone); //but how the heck i get the value from the capability ?? int redstone = capabilitywhath?? System.out.print("redstone="+redstone); if( redstone < 1 ){ capabilitywhath??.setRedstonetoneto(1100); } return new ActionResult(EnumActionResult.SUCCESS, itemstack); } //################################################################### [!code] a working example could be a very valuable aid Thanks for reading Quote
Jay Avery Posted May 17, 2017 Posted May 17, 2017 27 minutes ago, perromercenary00 said: how i get/set the value from the nbt ?? Getting a value from NBT is different to getting a value from a capability. Which do you want to do? For NBT, you can call stack#getTagCompound. For the capability, you call stack#getCapability and pass your capability instance. Quote
perromercenary00 Posted May 19, 2017 Author Posted May 19, 2017 well i guest i need the two, the first the nbt is not to bother, is the same way im doing it from 1.8 is the capability workaround i don't get coze involve a lot of new code if i found i working example i could realize the whole thing by analyze the code Quote
perromercenary00 Posted May 19, 2017 Author Posted May 19, 2017 some more shoots in the dark https://gist.github.com/anonymous/b261636775b9d168454f864bf75d35cb Itemside code // ############################################################################################# public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack itemstack = playerIn.getHeldItem(handIn); Capability<?> capacidaddealmacenamiento = null; if (itemstack.hasCapability(capacidaddealmacenamiento, EnumFacing.UP)) { capacidaddealmacenamiento xt = (capacidaddealmacenamiento) itemstack.getCapability(capacidaddealmacenamiento, EnumFacing.UP); int redstone = xt.getRedstone(); if (redstone < 1) { xt.setRedstone(1100); } } playerIn.setActiveHand(handIn); return new ActionResult(EnumActionResult.FAIL, itemstack); } // ################################################################### Quote
tommyte Posted May 19, 2017 Posted May 19, 2017 capacidaddealmacenamiento xt = (capacidaddealmacenamiento) itemstack.getCapability(capacidaddealmacenamiento, EnumFacing.UP); should be: capacidaddealmacenamiento xt = (capacidaddealmacenamiento) itemstack.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, EnumFacing.UP); Furthermore, you'd need a capabilityprovider for this item: public static class ExampleProvider implements ICapabilityProvider, ICapabilitySerializable { @Override public NBTBase serializeNBT() { //Retrieve data here return null; } @Override public void deserializeNBT(NBTBase nbt) { //Do your saving here } @Override public boolean hasCapability(Capability<?> capability, EnumFacing facing) { if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return true; } return false; } @Override public <T> T getCapability(Capability<T> capability, EnumFacing facing) { if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return (T) new ItemStackHandler(2/**the amount of slots you want*/); //This is the default implementation by forge, but you'll likely want to make your own by overriding. } return null; } } Serialize and deserialize nbt will be called for you when the world respectively starts or closes. You can save your stored items here using the ItemStackHelper class. I don't quite get the purpose of this either: playerIn.setActiveHand(handIn); But, if you'd try explaining us a little more what exactly it is you want to achieve, I'm sure we could help you out a little better (: Quote
perromercenary00 Posted May 20, 2017 Author Posted May 20, 2017 thanks for reply i been playing whit mods from 1.7 and i m a little complicated whit the results i like mi items has animations and sounds and lights and things until now i been controlling the animations making Excessive use of nbttags values in the long run i wanna update all mi items and entities to 1.11.2 but i siting here still stuck in the basic becoze i don't get how to use the new capability system and trying to make this items animations old nbttag style is not working ################## going back to the original question where i get the item nbtdata from the item in this part @Override public NBTBase serializeNBT() { //Retrieve data here return null; } Thanks for reading Quote
tommyte Posted May 20, 2017 Posted May 20, 2017 This is an example with the energy capability: public NBTBase serializeNBT() { NBTTagCompound nbt = new NBTTagCompound(); nbt.setInteger("energy", energy.getEnergyStored()); return nbt; } public void deserializeNBT(NBTBase nbt) { if(((NBTTagCompound) nbt).hasKey("energy")) { energy.setEnergy(((NBTTagCompound) nbt).getInteger("energy")); } } Notice that you can only store the info from the capability here. So in your case you'd save the items in the inventory of your item here. If, however, you want to store more info on the nbt of the itemstack, you should use ItemStack::getTagCompound() to retrieve and alter the nbt tag compound of your item. Call this where ever you find it useful. Maybe you want to update the nbt every tick? Then call it in the update method. If you want to update it every time the item is right-clicked? Use the onItemRightClick method. Quote
perromercenary00 Posted May 22, 2017 Author Posted May 22, 2017 !Por fin¡ Thanks to the forums i now have a funtional capabilitie class that allow me to store data and inventories and the data is synced whit client side whitout having to mess whith custom packets https://gist.github.com/anonymous/df2656774483a6f335c1fa4be4d1fff4 https://youtu.be/zi5hZE8K204 now i have another doub i set some system.out's in the code to understand when it reads and when it writtes i have an old little quarry whith the unequip animation and i like to have some control over when minecraft writes back the data to the nbt and to the item [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Client thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() [19:21:16] [Server thread/INFO]: [STDOUT]: ### >>> serializeNBT() Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.