Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

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

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

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/

  • Author
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

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/

  • Author
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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.