[MC-99914] DataWatcher / EntityMetadata ID is based on the class load order ! Can cause many issues ! Created: 22/Mar/16 Updated: 14/Jun/16 Resolved: 11/Jun/16
|Project:||Minecraft: Java Edition|
|Affects Version/s:||Minecraft 1.9, Minecraft 1.9.1 Pre-Release 3, Minecraft 1.9.2, Minecraft 16w14a, Minecraft 16w15a|
|Fix Version/s:||Minecraft 1.10.1|
|Reporter:||Nathan Poirier||Assignee:||[Mojang] Grum (Erik Broes)|
OS: Windows 10 and Debian Jessie
|Confirmation Status:||Community Consensus|
Then, go on a Minecraft Server (Vanilla, Spigot 1.9 or servers with 1.8/1.9 support) and drop an item on ground or throw a potion.
In logs you will see:
Code is from Spigot 1.9, but it's the same on 1.9 client :
This two codes call 'DataWatcher.a(EntityItem.class, DataWatcherRegistry.f);':
As you can see, variable i (the datawatcher index) is based on previous oclass value + 1.
And when the inverse occurs the datawatcher ID was inverse and can't be synchronized with Minecraft servers.
|Comment by Brian McNamara [ 22/Mar/16 ]|
This sounds like the cause of
|Comment by Jeuv [ 10/Apr/16 ]|
Reproduced in 1.9.2. This is honestly one of the most absurd bugs I have seen so far.
|Comment by Danny N [ 14/Jun/16 ]|
This is a odd bug, well found (and isolated from the sea of other Minecraft weirdness)