I have a block that let's you change it's texture by right clicking it with a block in your wand. I'm saving a boolean called "isPersonalized" (if the block was a custom texture, then is true) and an integer called "blockCamouflageID" (if the block was a custum texture, then is the block's ID you chosed) on the block's tile entity's NBT data.
Everything is getting saved, but when I call the tile entity and get the data from it, on my "getBlockTexture()" method, it returns "false" for the "isPersonalized" variable and "0" for the "blockCamouflageID" variable (I'm invoking the entity using "TileEntityIluminator tile = (TileEntityIluminator) world.getBlockTileEntity(x, y, z)" and getting the variables by using "tile.isPersonalized" and "tile.blockCamouflageID"). Now, if I output the "this.isPersonalized" and "this.blockCamouflageID" from the tile entity's "readFromNBT()" method, it is correct. Resuming: it is correct on the tile entity but not on the block.
I'm not sure if I need to use a packet, they are confusing to me.