Jump to content

[1.12.1] Any elegant way to notify Client side that some player needs to render an item from a custom inv?


Recommended Posts

Posted

Hi.

I have a custom inventory for a player and render players for it, ricently i noticed that I'm a retard and forgot to notify the other clients that the entity has some stuff in there side inv.

Any good ways to do this?

The inv is made via the Capability system and works pretty good, but I'm a confused on how to make the detection of a player nearby and not overwhelm them with update packets.

Did not find any best practices to do so. Please advice  :c

Posted

This piece of the official documentation, including the links, might help you: http://mcforge.readthedocs.io/en/latest/datastorage/capabilities/#synchronizing-data-with-clients

  • Like 1

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Posted (edited)
30 minutes ago, larsgerrits said:

This piece of the official documentation, including the links, might help you: http://mcforge.readthedocs.io/en/latest/datastorage/capabilities/#synchronizing-data-with-clients

I'm actually good with it and already using it, with syncing and etc. My problem is more of, how to sync slots that i need to render more effectively.

I can serialize just a portion of the capability and just send it to Client side ,and we have sendNear for the messages, but I'm thinking on how to do this more optimized.

More of in global perspective

if (entity is in sight){sync}

 

but without raytracing - because of obvious reasons

or constant range scanning on tick - also because of obvious reasons

Edited by Hoijima
Posted

On the server side, you can get the WorldServer (cast to it if needed) from the player and get the EntityTracker (WorldServer#getEntityTracker) from it. The EntityTracker has a method to get a Set of all other players tracking an Entity (EntityTracker#getTrackingPlayers), which you can supply with your player. You can iterate over those and send a packet to each of them whenever the content of your inventory  changes.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Posted
19 hours ago, larsgerrits said:

On the server side, you can get the WorldServer (cast to it if needed) from the player and get the EntityTracker (WorldServer#getEntityTracker) from it. The EntityTracker has a method to get a Set of all other players tracking an Entity (EntityTracker#getTrackingPlayers), which you can supply with your player. You can iterate over those and send a packet to each of them whenever the content of your inventory  changes.

That might be actually what I was looking for, thanks.

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.