Jump to content

[1.12.2] [UNSOLVED] TileEntity out of sync, cannot figure out the reason.


Recommended Posts

Posted (edited)

Good afternoon, modders.

 

I am in the process of creating a simple furnace-like block. This means I currently have the following classes, copied directly from the vanilla furnace: 

 

I am stuck. After a bit of debugging, I found out that the container holds the correct values, but somehow they are not correctly synchronized to the tileentity in WorldClient. The GUI displays different values from those held by the container. The thing that weirds me out the most is the fact that my code is copied directly from vanilla code, except for a few tweaks here and there.

 

The GUI opens without any problems and the inventory seems to be persistent, as far as NBT values being handled.

The weird things start happening when I try smelting ONE single 'Dust' item with my furnace: at first, fuelRemaining and fuelInitial are displayed on the GUI as whatever burn time the fuel item holds (it uses vanilla fuel), so let's say 1600 for a single coal item, and this value starts decreasing by 1 each tick. fuelInitial should NOT be decreasing at all, it should stay at 1600 until other fuel items are used. 

In the meantime, both smeltingProgress and smeltingDuration go from zero to 200 (again, smeltingDuration should be a fixed number!), and when they hit 200 their values are matched to those held by fuelRemaining and fuelInitial at the time. 

 

I find myself with a GUI displaying only one correct value, which is fuelRemaining, while the other three fields are the exact same.

I really cannot figure out why for the love of God this is happening.

 

Thanks for your precious time, I will now further investigate the possible issues of my code.

Cheers!

Edited by -fr0st-
Posted (edited)

Good morning.

I have taken your advice, and am currently upgrading my setup. One question quickly arose in my head, though: without implementing the IInventory interface, I no longer have access to getField() and setField().

 

How am I going to access my tileentity's data on the client? Should I simply create my own version of getField() and setField() that simply returns/sets the value of my fields?

For instance, take a look at this snippet of code from the tileentity class:

@SideOnly(Side.CLIENT)
public static boolean isSmelting(ITileInventory tile) {
	return ((TileAlloySmelter) tile).getField(0) > 0;
}

 

Furthermore, all my container methods are now broken for the same exact reason - IContainerLister#sendAllWindowProperties needs an IInventory argument; Container#updateProgressBar and Container#detectAndSendChanges both need getField() or setField().

 

How do I make my container properly compatible with the new system? 

Thanks for your time!

Edited by -fr0st-
Posted
6 minutes ago, -fr0st- said:

IContainerLister#sendAllWindowProperties

Just don't use it. This is for initial sync when the window is opened but you will sync all your data on the first tick anyway.

 

6 minutes ago, -fr0st- said:

Container#updateProgressBar and Container#detectAndSendChanges both need getField() or setField().

Just get and set your variables directly. get/setField are wrappers for variable access anyway. For example instead of getField(0) you would use tile.progress and instead of setField(0, value) you would use tile.progress = value. I have an example in one of my projects here.

Posted (edited)

I have finished porting my code. The behaviour reported in the original post has not ceased, wrong values are still displayed in the GUI.

 

EDIT: I have put a breakpoint in the GUI class and in the tileentity class, here are the variables at the same exact tick: GUI and TileEntity. As you can see, the tileentityes have two different ids, so there are two instances for each block, one on WorldServer with correct values, and one on WorldClient with wrong values. Is this how minecraft handles tileentities? Genuinely curious.

Edited by -fr0st-
Posted

Greetings, modders.

I have decided to completely rewrite my whole system from scratch, removing unneeded code such as ITileInventory.

At the moment I am on mobile, but as soon as I get home I will finish rewriting everything and - in case my issue persists - I will update the OP accordingly.

Thanks for your patience!

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I am playing a modpack with the web displays mod and I tried it out and when I logged back into my world i decided to get rid of the display i placed to move it and it started playing the video from last session and crashed my game, when i tried to start the game again it said it could not start becasue it could not delete a debug file that has the link in it that is no longer being displayed but is trying to, here is the debug folder.   [0201/091808.660:WARNING:chrome_browser_cloud_management_controller.cc(88)] Could not create policy manager as CBCM is not enabled. [0201/091930.426:INFO:CONSOLE(0)] "Error with Permissions-Policy header: Unrecognized feature: 'ch-ua-form-factors'.", source:  (0) [0201/091932.869:WARNING:browser_info.cc(309)] Returning a speculative frame for 25769803781 [6,5] [0201/091933.290:INFO:CONSOLE(5047)] "LegacyDataMixin will be applied to all legacy elements. Set `_legacyUndefinedCheck: true` on element class to enable.", source:  [0201/091933.529:WARNING:browser_info.cc(309)] Returning a speculative frame for 25769803781 [6,5] [0201/091933.529:WARNING:browser_info.cc(309)] Returning a speculative frame for 25769803781 [6,5] [0201/091933.530:WARNING:browser_info.cc(309)] Returning a speculative frame for 25769803781 [6,5] [0201/091933.530:WARNING:browser_info.cc(309)] Returning a speculative frame for 25769803781 [6,5] [0201/091933.557:INFO:CONSOLE(0)] "Error with Permissions-Policy header: Unrecognized feature: 'ch-ua-form-factors'.", source:  (0) [0201/091934.376:WARNING:obfuscated_file_util.cc(1410)] Failed to get origin+type directory: { uri: filesystem:https://www.youtube.com/temporary/, storage key: { origin: https://www.youtube.com, top-level site: https://youtube.com, nonce: <null>, ancestor chain bit: Same-Site }, bucket id: 1 } error:-4 [0201/091935.216:INFO:CONSOLE(0)] "Error with Permissions-Policy header: Unrecognized feature: 'ch-ua-form-factors'.", source:  (0) [0201/091935.241:INFO:CONSOLE(7990)] "Blocked script execution in 'about:blank' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.", source: https://www.youtube.com/s/desktop/3df27587/jsbin/desktop_polymer.vflset/desktop_polymer.js (7990) [0201/091936.766:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0201/091936.767:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0201/091936.767:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0201/091936.767:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0201/091937.243:INFO:CONSOLE(5047)] "LegacyDataMixin will be applied to all legacy elements. Set `_legacyUndefinedCheck: true` on element class to enable.", source: https://www.youtube.com/s/desktop/3df27587/jsbin/desktop_polymer.vflset/desktop_polymer.js (5047) [0201/091938.283:INFO:CONSOLE(7990)] "Blocked script execution in 'about:blank' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.", source: https://www.youtube.com/s/desktop/3df27587/jsbin/desktop_polymer.vflset/desktop_polymer.js (7990) [0201/091939.496:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705669 [9,5] [0201/091953.165:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705676 [9,12] [0201/091953.165:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705676 [9,12] [0201/091953.166:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705676 [9,12] [0201/091953.166:WARNING:browser_info.cc(309)] Returning a speculative frame for 38654705676 [9,12] [0201/091959.119:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/091959.119:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/091959.119:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092014.122:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092014.122:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092014.122:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092019.126:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092019.126:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092019.126:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092024.512:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092024.512:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092024.512:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092029.812:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092029.812:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092029.812:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092036.154:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092036.165:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092036.165:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092041.464:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092041.464:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092041.464:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092051.842:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092051.843:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092051.843:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092055.373:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204?conn2 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092055.373:INFO:CONSOLE(0)] "The resource https://i.ytimg.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0) [0201/092055.373:INFO:CONSOLE(0)] "The resource https://rr5---sn-o097znsr.googlevideo.com/generate_204 was preloaded using link preload but not used within a few seconds from the window's load event. Please make sure it has an appropriate `as` value and it is preloaded intentionally.", source: https://www.youtube.com/watch?v=gaRSMacERUQ (0)
    • If you are searching for mods, I would not search here, this is more of a support forum for using/creating mods with minecraft Forge. Try https://www.curseforge.com/minecraft if you are looking for mods/modpacks to use.
    • I was trying to find a mod that added something specific, and was unable to find it with what limited memory I had of seeing it. I don't know why there isn't an option to include words in overviews of mods. I could see it being in the sort tab near filters on the app in my opinion. It might help someone trying to find something specific, only based off something from the overview tab, but idk
    • Please read the FAQ and post logs as described there.   Also, do not just add a post onto someone else's thread with your issue, create a new one please.
  • Topics

×
×
  • Create New...

Important Information

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