TheUnlocked Posted May 15, 2017 Posted May 15, 2017 My client refused to sync with my server with loaded TileEntity NBT data, and so after I couldn't find anything new to try online, I eventually added some world.isRemote breakpoints in my TileEntity's readFromNBT method. I found that none of my code was wrong, it was just that the client and server were being fed different NBTTagCompounds. Now this can of course be fixed using packets to synchronize the client and server, but there has to be a better way than that. It seems like such a common thing to want to synchronize a TileEntity that you shouldn't need to explicitly make a packet and packet handler to sync them. If I do need to, that's fine, but I want to see if there's a better way first. Quote
Abastro Posted May 15, 2017 Posted May 15, 2017 Yes, there is a way. Override TileEntity::getUpdatePacket to write the sync packet, and override TileEntity::onDataPacket to read and apply the sync packet. You may want to override TileEntity::getUpdateTag and TileEntity::handleUpdateTag as well. Besides, TileEntity::readFromNBT won't be called by default. 1 Quote I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP) II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.
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.