Minecraft version
1.21.1
Hex Casting version
0.12.0
Issue description
All Iotas are supposed to be immutable (which is necessary for them to work properly as item component values) but the changes introduced in #1208 mean this is no longer true for EntityIotas. Specifically, the isPlayer field can be mutated by the validate() method when updating an entity iota that was created before this change, or when validating an iota for an offline player.
It's worth noting that the first scenario there will only ever happen once per iota, and in the second scenario the validation will fail and thus the EntityIota will be discarded in favor of a NullIota, but the fact remains that this does still break the immutability contract for data components.
Minecraft version
1.21.1
Hex Casting version
0.12.0
Issue description
All
Iotas are supposed to be immutable (which is necessary for them to work properly as item component values) but the changes introduced in #1208 mean this is no longer true forEntityIotas. Specifically, theisPlayerfield can be mutated by thevalidate()method when updating an entity iota that was created before this change, or when validating an iota for an offline player.It's worth noting that the first scenario there will only ever happen once per iota, and in the second scenario the validation will fail and thus the
EntityIotawill be discarded in favor of aNullIota, but the fact remains that this does still break the immutability contract for data components.