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

Hello, guys. I have simple question. How to catch the event connection player to server?

  • Author

Thank you. Can you give an example?

(How to register a class implements IPlayerTracker in Forge?)

  • Author

Thank you very much. I have one more question. I want to bind to the player some information to have quick access to it. I understand that I can use an associative array, but I want to receive information in O (1). Tell me please what i need to use for this.

  • Author

Thank you so much for helping me. Can you tell me when call saveNBTData and loadNBTData? When i call  registerExtendedProperties and getExtendedProperties?

  • Author

I would be very grateful if you also give an example how to use it all right.

  • Author

As I understand it, these functions are called when a player enters or leaves the server or moved to another world. So if I keep information about player on the database, I can leave these functions are empty?

  • Author
]Yes. But why would you want to do that? :)

Most likely, I'm just confused. I have a simple task:

The player is playing on my server can earn coins that are tied to their account in my site. When player connects to the server, I need to install their number. But each time send request to database as their number is render for a long time.

  • Author

If I understand you correctly you probably just want to cache the value in the player data.

Yes.

  • Author

Make access to the data as quickly as possible. To do this, should I use ExtendedProperties?

Aaaa, I'm confused

  • Author

Repeat once more. If I load the data from database when the player connects, and write them a change, I can leave empty read and loadNBT functions?

  • Author

Hello again. I have a new question. How to change the ExtendedProperties anywhere in code?

  • Author

You didn't understand me. I understand how to get the value. I cann't understand how to update this value, because #registerExtendedProperties only works when calling the entity's constructor, and #getExtendedProperties only get the new instance.

P.S.  If you write code example, I would be very grateful)

  • Author

Okey.

I register onEntityConstruct like this:

 

public void onEntityConstruct(EntityConstructing event) {

        if (event.entity instanceof EntityPlayer) {

    ClientInformation properties = new ClientInformation();

        properties.setMoney(100);

            event.entity.registerExtendedProperties(ClientInformation.IDENTIFICATION, properties);

        }

}

 

I update somewhere ExtendedProperties like this:

 

((ClientInformation)player.getExtendedProperties(ClientInformation.IDENTIFICATION)).setMoney(200);

 

However, the value of which I render does not change:

 

@ForgeSubscribe(priority = EventPriority.NORMAL)

public void onRenderHUD(RenderGameOverlayEvent event) {

if (event.isCancelable() || event.type != ElementType.EXPERIENCE) {

return;

}

 

GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

GL11.glDisable(GL11.GL_LIGHTING);

 

ClientInformation clientInfo = ClientInformation.getInformation(this.mc.thePlayer);

String money  = "$" + ((ClientInformation)(this.mc.thePlayer).getExtendedProperties(ClientInformation.IDENTIFICATION)).getMoney();

                //some code...

}

 

P.S. For some reason i can't to use the formatting tools =(

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.