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

I have made a mob which you can give an item and then the model will change a bit.

Everytime I log on to my world, that change is not shown on screen.

I create a simple println() to show if the item is stored in it and it does.

 

How can I make the World or Server render the change when starting the world.

Coding, Testing, Smiling, Publishing!

  • 2 weeks later...
  • Author

You will have to synchronize the data via Packets.

Try to do it, but how do I check if an item is added to an itemstack or removed.

Let me be more specific.

When you right click, a gui will open.

There is an slot that will need an item.

When this item is placed in there, there will be something added to the model.

This works fine, but when on a server, the added thing to the model does not show an other client.

 

Ho do I check this?

Coding, Testing, Smiling, Publishing!

  • Author

You need to check every tick if the value changed (in onUpdate of your Entity for example). If it did indeed change (you will need a 2nd field to track if the value has changed) you send a packet to all players tracking your entity (see EntityTracker#func_151247_a) which tells the client about the new value.

So, i'm sending stuf through packages with the Message stuff. (followed your thread on that)

But how do I tell the other clients that something has changed?

Coding, Testing, Smiling, Publishing!

  • Author

Show your code, if you followed what I posted it should update all players.

That is a bit of a problem.

I have no clue on how to do that thing.

Should I just check it and then send a package to the server telling the item is changed so the model can be changed on all clients.

Would that work, gonna test it right away

Coding, Testing, Smiling, Publishing!

  • Author

Nonono... the Server would send packets to all clients.

I mean when I checked if the itemstack and then use network.sendToServer() to change the itemstack again but then use by server so the server will change the itemstack.

 

Maybe I could also modify the Slot class, the OnSlotChanged methode. So it will send a package to the server.

Coding, Testing, Smiling, Publishing!

  • Author

How can I use the EntityTracker?

I'm now checking the change and it works. (checked by println())

 

What do I need to do when I call the sendToAll(Message)?

Coding, Testing, Smiling, Publishing!

  • Author

So it does not change a thing. for the way I does it.

 

if(message.code == 10){
			WorldServer worldserver = (WorldServer)ctx.getServerHandler().playerEntity.worldObj;
			EntityTracker track = worldserver.getEntityTracker();
			Entity entity = ctx.getServerHandler().playerEntity.worldObj.getEntityByID(message.entityID);
			EntityHireable hire = (EntityHireable)entity;
			hire.Backpack = -1;
			track.func_151247_a(entity, Core.network.getPacketFrom(message));
		}

 

I this is text from the console:

 

[19:43:28] [Client thread/ERROR] [FML]: Detected ongoing potential memory leak. 100 packets have leaked. Top offenders
[19:43:28] [Client thread/ERROR] [FML]: 	 comp101.channel : 100

Coding, Testing, Smiling, Publishing!

  • Author

So I did this in the Entity class in the OnUpdate methode.

But It still does not work and it still says it had a potentionel memory leak

Coding, Testing, Smiling, Publishing!

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.