Jump to content

[1.8]Tile Entity storage not synced server side?[SOLVED]


Recommended Posts

Posted

When using player.worldObj.getTileEntity(pos), it returns null.  is that because not all te's are loaded upon start?

 

I need to sync a boolean value on both Te's.  The first te has a blockpos to the second te and vice versa.  They are linked.

On the client side, I check if the first blockpos contains a tile entity (it does)

It then checks if if the second tile entity is pointing back at the first tile entity (it does)

 

So isLinked = true;

 

It then attempts to find a tile entity on the server side, but it finds nothing.

 

I'm in the process of writing a packet to the server, but am unsure if this'll work if the server can't find a tile entity.

Posted

Nothing is synced Client->Server you should ALWAYS sync Server->Client.

You should re-write your logic so that it only runs on the server and you tell the client what to do.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

For this instance, it was an item in my gui that needed syncing when the game reloaded.  Syncing to the server solved this one, but you're definitely right about running mostly everything on the server.  Thanks!

Posted

For this instance, it was an item in my gui that needed syncing when the game reloaded.

That's a prime example of when you need to send data from the server (which is responsible for loading and maintaining the game state) to the client, not the other way around. Client side stuff like GUIs is only for displaying information, not setting it.

Posted

Would there be a reason #worldObj.getTileEntity(pos) would return null, even though there is for a fact, a te at pos.

 

I have null checks and all, but removed them to show my example

// Extends TileEntity implements IInventory, ITickable
@Override
public void update() {
            ItemStack stack = getStackInSlot(1);
            CordeCacheItem item = (CordeCacheItem)stack.getItem();
            item.getPos(cacheStack);
            BlockPos pos = new BlockPos();
            this.worldObj.getTileEntity(pos);
            //There is, for a fact, a te here, but returns null only on server side.
}

Posted

            BlockPos pos = new BlockPos();
            this.worldObj.getTileEntity(pos);

 

Umm... great, let's take "unknown" x/y/z and ask for TE. I belive not defined BlockPos has x/y/z = 0/0/0 so yeah...

1.7.10 is no longer supported by forge, you are on your own.

Posted

            BlockPos pos = new BlockPos();
            this.worldObj.getTileEntity(pos);

 

Umm... great, let's take "unknown" x/y/z and ask for TE. I belive not defined BlockPos has x/y/z = 0/0/0 so yeah...

 

Obviously my second question was not heard.  Will create new topic so it's easy to follow.  Also, you don't know at all whether or not i have a tile entity at 0, 0, 0.  That was not the point I was trying to make.  I said the location definitely has a te, so lets go with that?  It was obviously a typo, I did not copy and paste, but if you'd like, I will.  I was merely trying to make it more simple and direct to the question at hand.

 

Thanks for the help.  I really should have just created another topic...

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

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