KyoriPowered / adventure

A user-interface library, formerly known as text, for Minecraft: Java Edition
https://docs.advntr.dev/
MIT License
679 stars 104 forks source link

1.20.3 #986

Closed zml2008 closed 6 months ago

zml2008 commented 8 months ago

This is a branch to gather work on supporting features and representation changes from Minecraft 1.20.3.

Relevant changelogs:

zml2008 commented 8 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?

KingOfSquares commented 8 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?

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

zml2008 commented 6 months ago

We still need to implement:

but I think it's worth merging this as-is just to have published snapshots that others can depend on.