Expand on entity serialization API #11807
Merged
+273
−75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Original: #8492.
Improves upon entity serialization API.
IllegalArgumentException
will now be thrown if something goes wrong instead of silently failing and producing invalid data (documented in javadocs).Added serialization flags
FORCE
- serializing entities that wouldn't normally be serialized.Entity#isPersistent
) and invalid (Entity#isValid
; i.e. dead, despawned) entities.MISC
- serializing misc non-saveable entities (lightning bolt, leash, fishing bobber).PASSENGERS
- if present, the serialized data will include serialized passengers as well.FORCE
if some passenger is currently non-serializable.PLAYER
- if anyone for whatever reason wants to save/look at serialized player's data.IllegalArgumentException
.Entity#getAsString
to not fail in cases described above (unlike serialization, I see no good reason to fail e.g. just because the entity is marked as non-persistent).Things to consider:
EntityType#isSaveable
be exposed in a separate PR?