Skip to content

Release 1.26.0#540

Merged
tastybento merged 5 commits into
masterfrom
develop
Jul 20, 2026
Merged

Release 1.26.0#540
tastybento merged 5 commits into
masterfrom
develop

Conversation

@tastybento

Copy link
Copy Markdown
Member

Release 1.26.0

Included changes since 1.25.2

  • Sulfur Caves phase for Minecraft 26.2 at the 15000 spot — wiki-accurate mob spawn weights (Sulfur Cube et al.), sulfur/cinnabar block mix, themed chests; the end-of-game loop moves to 15500. (#539)
  • Version-gated phase index (phases_index.yml) — controls phase order, length, enabled state, and required Minecraft version; read before any phase file is parsed so newer-version phases skip cleanly on older servers with no stack traces. Existing installs migrate automatically; per-item chest loading and per-entry block/mob version tags handle mixed-version content (e.g. DRIED_GHAST, harness items).
  • /oba phases phase order editor — admin GUI to pick up, reorder, insert, and toggle phases; changes save and apply immediately. New permission aoneblock.admin.phases.
  • Version bump to 1.26.0.

Draft release notes: release-notes-1.26.0.md (to be attached as the GitHub release).

🤖 Generated with Claude Code

https://claude.ai/code/session_01VahJUVuDRo5kRSDZKJHHjC

tastybento and others added 5 commits July 19, 2026 17:25
Adds a Sulfur Caves phase at the 15000 spot with wiki-accurate mob
spawn weights (Sulfur Cube 100, Creeper/Skeleton/Zombie 50 each,
Slime 25, Cave Spider 20, Enderman 10, Witch/Zombie Villager 5,
ambient Bat 10), sulfur and cinnabar blocks mixed with typical
underground blocks, and themed chests. The goto loop moves from
15000 to 15500.

Because the biome, blocks, mobs, and chest items only exist from
Minecraft 26.2, phases can now declare requiredMinecraftVersion and
are skipped with an info log on older servers:

- New phases_index.yml is read before any phase file, so gated
  phases are skipped without their files ever being parsed. This
  matters because YamlConfiguration eagerly deserializes ItemStacks
  during parsing, which threw errors for unknown items. The index
  also carries per-phase order, length, and enabled state (start
  blocks are the running sum of lengths), preparing for admin phase
  reordering. Legacy installs get an index generated automatically;
  a malformed index falls back to direct file loading.
- Chest files are now read with plain SnakeYAML and each item is
  built individually, so an item unknown to the server version is
  skipped with a log line instead of a stack trace.
- Block and mob entries accept an object form with a weight and
  requiredMinecraftVersion, used for DRIED_GHAST (1.21.6) in The
  Nether phase.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VahJUVuDRo5kRSDZKJHHjC
Turns the phase index into a first-class in-memory model to prepare
for admin phase reordering:

- New PhaseIndexEntry holds file, section, name, length, enabled,
  and requiredMinecraftVersion. OneBlocksManager keeps the live list
  (including disabled/version-skipped entries) plus gotoAtEnd, and
  exposes getPhaseIndex()/saveIndex() so tools can reorder entries,
  save, and reload. Start blocks are recomputed from the new order's
  lengths on reload.
- Loaded phases keep a reference to their index entry. Saving a
  phase now writes back to its stable file name and section key
  instead of deriving them from the computed start block, so
  /oba setchest keeps working after phases move.
- saveOneBlockConfig writes the index too and no longer writes a
  file for the synthetic end-goto phase, which gotoAtEnd covers.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VahJUVuDRo5kRSDZKJHHjC
New admin panel (permission aoneblock.admin.phases) showing every
phase index entry in order with its computed start block, length,
and state. Click a phase to pick it up - the rest shrink left to
fill the gap. Click a phase to shove it and everything after it
right and drop the held phase there, or use the drop-at-end slot.
Clicking anywhere else or closing the panel puts the phase back
without saving. Right-click toggles a phase on or off.

Drops and toggles save the phase index and reload the phases, so
the new order takes effect immediately. Disabled phases show as
gray glass and version-locked phases as barriers; both can still
be reordered.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VahJUVuDRo5kRSDZKJHHjC
Sulfur Caves phase (MC 26.2), version-gated phase index, and phase order GUI
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VahJUVuDRo5kRSDZKJHHjC
@sonarqubecloud

Copy link
Copy Markdown

@tastybento
tastybento merged commit 2f2b44b into master Jul 20, 2026
5 checks passed
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.

1 participant