Skip to main content
FORGEJO ERA / ISSUE #621

Cloud status has no codec for Minecraft 1.17 through 1.20.1

closedOpened by MelanX on

Original description​

By MelanX · October 24, 2026

Crate: ephervex-options (generated data) and tools/minecraft-options

Commit: f844b107

Behavior

The bundled dataset has a cloudStatus codec for 1.12.2 through 1.16.5 (unquoted enum_token true/fast/false) and from 1.20.2 (quoted enum_token), but none for 1.17 through 1.20.1. The setting is neither supported nor unsupported there, so it stays unknown.

  • 1.17 through 1.18.2 (field access persistence): the analyzer records renderClouds as custom_codec with file_encoding "enum, codec unresolved".
  • 1.19 through 1.20.1 (OptionInstance definition): the codec xmap is reported with transform_resolved: false.

The JARs still prove the token set statically. In 1.17 (root class dvs, enum dvc) the visitor call for renderClouds binds two synthetic lambdas through invokedynamic: a string switch comparing true, fast and false to the enum constants, and an ordinal switch returning true, fast or false. This is the same raw token set proven for 1.12.2 through 1.16.5.

Expected behavior

The analyzer follows the invokedynamic bootstrap to these synthetic methods, requires that the reader accepts every token the writer returns, and emits an enum_token codec for 1.17 through 1.20.1, with the quoting each release actually writes (to be checked for the OptionInstance releases 1.19 through 1.20.1). Without that proof the setting stays unknown.

Impact

Cloud status cannot be managed for 1.17 through 1.20.1. This is safe, but leaves a gap between 1.16.5 and 1.20.2.

Locations

  • tools/minecraft-options/analyze_options.py custom codec visitor path, enum_string_lambda, token_bindings
  • tools/minecraft-options/dataset.py _enum_codec

Validation and limitations

Checked against the committed minecraft-options.json: cloudStatus is absent from the supported settings of exactly 1.17 through 1.20.1. Related: #582 (1.12.2 through 1.13.2 token codec) and #607 (enum extraction).