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.

Custom item private fields are not initialised when using CompassItemPropertyFunction

Featured Replies

Posted

Hello!

I am new to modding in Minecraft.

I have created a custom compass item which basically points towards a target player, along with other logic.
More or less, I have copied the vanilla implementation, apart from the class Item derived class, which contains several private non-static fields.
Crucially however, those fields are not initialised when I register the Item using a DeferredRegister.

For the client rendering I have attempted to use the vanilla CompassItemPropertyFunction, in which I have passed a lambda function which is supposed to get data from the custom compass item stored in its fields.
The lambda function looks like this: (clientLevel, itemStack, entity) -> GlobalPos
The compass has its private non-static fields initialised when the compass is given to the player via a game command.

The problem: those fields are not initialised when attempting to return the target player's position in the getPos() function found in CompassItemPropertyFunction, even though they are in fact initialised as part of an ItemStack stored in a player's inventory.

My question: why is the additional data I added in my custom compass item class all null, but the ItemStack instance might still contain tags for example?

  • 2 weeks later...
  • 5 months later...
  • Author

Doesn't matter anymore I was bein dumb.

I didn't know I had to use item tags : P

Issue closed.

Edited by Bezeram

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.