# 🎁 What's new
This is a bug-fix release for the 1.26.0 phase index, driven directly by admin feedback. In 1.26.0, upgrading servers received the *stock* `phases_index.yml`, which references the current jar's file names — but existing `phases/` folders hold older or customized layouts. Phases silently failed to load, Sulfur Caves never appeared on upgraded servers, and the `/oba phases` panel showed a preset instead of the server's reality.
**The phases folder is now the source of truth.** On every start (and every panel save), the index is reconciled with the files actually on disk, so what you see in `/oba phases` is what your server really runs. This release also adds **phase length editing** to the admin panel and makes **numeric file names/keys optional** for custom phases.
# ✨ Highlights
### 🔺 Self-healing phase index ([PR #541](https://github.com/BentoBoxWorld/AOneBlock/pull/541))
The index is reconciled with the `phases/` folder on every load:
- An index entry whose file was **renamed across addon versions** (e.g. your `11000_deep_dark.yml` vs. the jar's `10500_deep_dark`) is re-pointed at your file by phase name — the phase loads again.
- An entry whose file is **missing but shipped in the jar** (e.g. `15000_sulfur_caves.yml`, which is never copied into an existing folder) is restored automatically. Sulfur Caves now appears on upgraded 26.2 servers.
- **Custom phase files** dropped into the folder are added to the index automatically — numeric keys slot in at their legacy start block, anything else is appended at the end for you to arrange in the GUI.
- Entries whose files are gone for good are removed with a warning, so the panel never shows phases that don't exist.
- When repair was needed, phase **lengths are recomputed from your files' legacy start-block keys**, preserving the layout your server actually ran before the index existed (e.g. a 7000→8000 Desert stays 1000 blocks, not the preset's 500).
### 🔡 Set phase lengths in `/oba phases` ([PR #541](https://github.com/BentoBoxWorld/AOneBlock/pull/541))
- **Shift-left-click** a phase to set its length: the panel closes and a chat prompt shows the current length. Type a whole number to apply it (starts recompute immediately and the panel reopens), or `cancel` to keep it. Invalid input re-prompts; the prompt times out after 60 seconds.
- ⚙️ The first length edit writes `adminLengths: true` into `phases_index.yml`. From then on, reconciliation never recomputes lengths, so your values survive later file additions, renames, or upgrades.
### 📄 Numbers in phase files are now optional ([PR #541](https://github.com/BentoBoxWorld/AOneBlock/pull/541))
- Custom phase files no longer need a numeric start block in the file name or as the YAML section key — `desert.yml` with a `desert:` section works. Chest files pair by file name (`<file>_chests.yml`), so they work unchanged.
- The numbers in the shipped files are historical: with the index in charge, the panel's start/length values are the truth. Numeric keys remain useful as they tell reconciliation where a file belongs and how long it was.
### 🖱️ Panel polish from your feedback
- Phase icons fall back to the phase's **first block** instead of showing stone when no icon is configured.
- 🔡 The "How to use" book wraps onto four lines instead of one screen-wide line, and the per-phase lore is shorter for small monitors.
# ⚙️ Compatibility
✔️ BentoBox API 3.15.0+
✔️ Minecraft 1.21.5 or later — the Sulfur Caves phase itself activates on Minecraft 26.2+
✔️ Java 21
# 🔺 Updating — important notes
🔺 **Your `phases_index.yml` will likely be rewritten on the first boot** to match the files in your phases folder. Watch the log for lines starting with `Phase index:` — they tell you exactly what was re-pointed, restored, added, or removed, followed by `Updated phases_index.yml to match the files in the phases folder.` Phases that vanished after the 1.26.0 upgrade come back on their own, including Sulfur Caves on 26.2+ servers.
🔺 **To remove a phase permanently, delete its files** (or toggle it off in `/oba phases`). Deleting only its index entry no longer works — reconciliation will re-add any phase file it finds in the folder.
🔡 **New and changed locale keys** for the length prompt and the reworked panel text — regenerate or update translated locale files.
# 📥 How to update
1. Stop the server. Make a backup just in case.
2. Copy this jar over the old one.
3. Restart the server.
4. Check the startup log for the `Phase index:` lines and confirm `/oba phases` shows your real phase order, starts, and lengths.
5. You should be good to go!
# Legend
* 🔡 locale files may need to be regenerated or updated
* ⚙️ config options have been removed, renamed, or added
* 🔺 special attention needed
# What's Changed
* 🔺 fix: reconcile the phase index with the phases folder on load by @tastybento in https://github.com/BentoBoxWorld/AOneBlock/pull/541
**Full Changelog**: https://github.com/BentoBoxWorld/AOneBlock/compare/1.26.0...1.26.1
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }