Skip to content

Adventure 5.0#1253

Open
kezz wants to merge 110 commits intomain/4from
main/5
Open

Adventure 5.0#1253
kezz wants to merge 110 commits intomain/4from
main/5

Conversation

@kezz
Copy link
Member

@kezz kezz commented Jun 27, 2025

Introduction

This PR exists to track the progress on Adventure 5.0. It only exists as a PR for review purposes, once Adventure 5.0 is complete, the main branch of the repo will be changed to main/5.

Discussion in this PR will be limited to reviews of the PR itself. For discussion about broader changes in Adventure 5.0, please see #1202.

To-do list:

The list below tracks remaining tasks. For reference, "refactor" means removal of all deprecations and refactoring of code to use modern Java language features.

  • Bump Java version to 21.
  • Refactor annotation-processors module.
  • Refactor api module.
  • Remove extra-kotlin module.
  • Refactor key module.
  • Refactor nbt module.
  • Refactor serializer-configurate-4 module.
  • Refactor text-logger-slf4j module.
  • Refactor text-minimessage module.
  • Refactor text-serializer-ansi module.
  • Refactor text-serializer-commons module.
  • Refactor text-serializer-gson module.
  • Refactor text-serializer-gson-legacy-impl module.
  • Refactor text-serializer-json module.
  • Refactor text-serializer-json-legacy module.
  • Refactor text-serializer-legacy module.
  • Refactor text-serializer-plain module.
  • Fix GitHub actions builds.
  • Check all Javadocs, IJ's reformatting changes JD references to impl classes and fucks up spacing for no reason.
  • Migrate to jspecify.
  • Double check jspecify everywhere, some weirdness remaining.
  • Make TextFormat sealed.
  • Modularize!
  • Find some sort of abi/api break checker just to double check we've not removed anything important.
  • Check if there's any libraries we can/should update
  • Add a note on Component, Payload, Action that new types may be added at any time
  • Synthetic-ise all old component construction methods that aren't simple data, SBA...
  • Add new sba only methods for construction

4.0 changes required

Deprecate:

  • BuildableComponent
  • The "enumness" of ClickEvent$Action
  • ClickEvent$Action#payloadType

Add ApiStatus.NonExtendible to:

  • Title.Times
  • Sound.Builder
  • ResourcePackRequest (and Builder)
  • ResourcePackInfo (and Builder)
  • PointersSupplier (and Builder)
  • Pointers (and Builder)
  • Pointer
  • Identity
  • ComponentFlattener (and Builder)
  • Basically everything in adventure-nbt

Remaining discussion points

  • Do we bump to Java 25 upon release?
    i dont think so, doesn't seem like mc is bumping any time soon?
  • Look at other features targeted for 5.0 release or tagged with "needs discussion".
  • Do we want to type click event? yes
  • Decide if we want Examinable to be public API or not yeeted completely
    atm it's literally just used for toString, but is sometimes in the API classes and sometimes impl only - we should be consistent here
  • Do we want to yeet all component constructors to be simply data, data, style, data, sba...? yes, with old methods left as synthetic

kezz and others added 30 commits November 14, 2025 17:51
Resource bundles are UTF-8 by default since Java 9.
chore(deps): Update gradle and github actions
chore(deps): Update dependency com.google.errorprone:error_prone_core to v2.45.0
…cy-changes

chore(deps): Update dependency com.diffplug.gradle:goomph to v4.4.1
chore(deps): Update dependency com.puppycrawl.tools:checkstyle to v12.3.0
Add femboy flag to pride tag
…cy-changes

chore(deps): Update patch-release dependency changes
…b-actions

chore(deps): Update KyoriPowered/ci-cookbook action to v2026
chore(deps): Update dependency com.google.errorprone:error_prone_core to v2.47.0
fix(text-minimessage): support all uuid versions in head tag
chore: add back dropped toString implementations
feat(api): Add toString implementation for StyleImpl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants