Jump to content

Recommended Posts

Posted

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.

Posted

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.

  • Like 1

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.