Closed zml2008 closed 6 months ago
So, my current thought for handling version differences is, we should have a 'feature flag' system, where things like 'emit legacy hover event' or 'emit uuid as ints' vs 'emit uuid as string' are toggleable options. We'd need to produce presets for compatibility with different game versions, plus probably a 'latest' and 'most compatible' levels.
Should this be game versions? Then how do we handle snapshots?
Alternately, we could mark these revisions by:
Thoughts on what makes most sense?
So, my current thought for handling version differences is, we should have a 'feature flag' system, where things like 'emit legacy hover event' or 'emit uuid as ints' vs 'emit uuid as string' are toggleable options. We'd need to produce presets for compatibility with different game versions, plus probably a 'latest' and 'most compatible' levels.
Should this be game versions? Then how do we handle snapshots?
Alternately, we could mark these revisions by:
- datapack versions
- protocol versions
- data versions
Thoughts on what makes most sense?
I think using the protocol version is a good idea, seems like the most precise number and easiest to map to any point in releases/snapshots etc.. To my knowledge Bedrock uses the same system right(for protocol versions)? In case the bedrock serialiser or other bedrock specific stuff ever makes it in here
We still need to implement:
type
fieldbut I think it's worth merging this as-is just to have published snapshots that others can depend on.
This is a branch to gather work on supporting features and representation changes from Minecraft 1.20.3.
Relevant changelogs: