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.

Featured Replies

Posted

Hi, as I understand a container/menu class is used for the syncing of data between the client and the server. I have a value in my BlockEntity class that will change and update that I want to show on my GUI screen on the client.

However I don't understand why I have to use addDataSlot() so the client can get the value from the BlockEntity, why can't the client just call a method in the container class that returns a value from the BlockEntity?

I also don't understand how I would go about implementing the getters and setters that are required when instantiating a new DataSlot() for the addDataSlot method.

For example, how would I sync an integer from a BlockEntity Class and display that number as a label on the GUI on the client?

Thanks.

 

https://forums.minecraftforge.net/topic/117477-119-how-to-access-blockentity-data-from-containerscreen/

for sending data and accessing block entity data in a container menu/screen for the client.

It is not done by default as it would be useless work if it wasn't used.

 

You can only use DataSlots for integers. e.g. the furnace does this for burn/cook time progress and duration, or the lectern does it for the page number.

This only sends the data to the client if you open a container so it is more efficient, but less flexible.

See those vanilla examples for how to do it. e.g. look at how LecternBlockEntity.dataAccess and LecternMenu.lecternData are used.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

  • Author

Thanks for the quick reply.

From what I have gathered is, you just add an extra paremeter for your container constructor for the ContainerData. Then you just add the container data using addDataSlots.
I was trying to use addDataSlot() but using addDataSlots() is much easier.

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.