The bug
Sometimes the client is uninformed about a block's state because it's only necessary for the server. Example: hoppers
When F3+I is used to request server-side block data, it fetches NBT from the server, but still copies the client-side block state, which is not always accurate.
How to reproduce
These steps rely on the presence of MC-265458:
Place some sugar cane
Place an observer pointing at it
/gamerule random_tick_speed 50Wait for the observer to go off, indicating that the age has changed (but was not sent to the client)
Look at the sugar cane and press F3+I
→ ❌ The copied block state contains "age=0" from the client instead of "age=1" from the server
Linked issues
relates to 2
Attachments
Comments 7
This also affects droppers and dispensers
-this is the same issue that has been unresolved for years where a hopper/dropper/dispenser's state doesn't update the client until a player interacts with it or relogs. F3+A also does not update this info. (can't make a texture pack that changes a hopper/dropper/dispenser's texture when the block's state changes... :/ )
That's MC-60242. This report would still be an issue even if that one is intended.
Can confirm for 1.20.2. Cannot reproduce with hoppers as of 1.20.2 Pre-release 1, however, it can still be reproduced with sugar cane, cactus and sapling with the following steps:
Place a sugar cane and put an observer next to it, and wait for the sugar cane to update.
When an update is triggered, run F3+I on the sugar cane, and copy the state to an "execute if" command.
Notice how the test fails, meaning that current state doesn't match the state got from F3+I.
Confirmed for 1.13.2-pre2.