Feature Versions Page - bh679/dungeon-train-mc GitHub Wiki
Click the Dungeon Train v⦠label in the top-left of the title screen (or the pause menu) to open
the Versions page. It answers three questions the old label couldn't: how far behind am I, is the
version my launcher offers actually the newest, and what changed. It also opens by itself at the
title screen, once per session, when the launcher's listing says the build is behind.
| Element | Behaviour |
|---|---|
| Header | The Dungeon Train wordmark at 60 % of the menu size, with the newest version present on the page in the main menu's yellow splash slot (tilted, pulsing, 1.6Γ splash size). |
| Row 1 β installed | One line: You are on v0.800.0 β 54 versions behind (25 releases). The headline number is the MINOR-version gap (the number players see in version strings); the bracket is how many listed uploads sit between the two. Other states: up to date, ahead of every published release (dev builds), checking the latest releaseβ¦. |
| Row 2 β your launcher (60 %) |
CurseForge latest is v0.828.0 / CurseForge is 26 versions behind Modrinth (8 releases) β CurseForge is delaying Dungeon Train releases. On a launcher that is up to date the detail reads The newest release on your launcher. |
| Row 2 β companion mods (40 %) |
Companion mods / All 5 up to date or N updates available β AIN, AIS, PMOB, ECP, TE checked against their newest Modrinth build. Selecting it lists each mod's installed vs newest version with the notes a lagging one is missing. |
| Row 3 β other launcher | Shown only when it is ahead: Modrinth latest is v0.854.0 / Not yet available on CurseForge. |
| Notes box | The selected row's release notes. For a newer release it is cumulative β every version between the installed build and it, newest first, each under a vβ¦ heading. A β€’ button in the box's top-right opens the notes fullscreen with a tab per version (arrows scroll the tab strip when there are more than fit). |
| Tag chips (v0.861.0) | One row above the notes box: All, then a chip per tag that has at least one change in the notes shown β Editor (5), New Feature (4) β¦ β most to least, with < > arrows paging the row when they overflow. Click chips to filter (any selected tag matches; All clears); versions with nothing matching fold away. In fullscreen the chips describe only the selected tab's version, and a version the filter empties keeps its tab with Nothing with those tags in this version. |
| Get update on β¦ | Opens the launcher's Dungeon Train page (from LauncherDetector). |
The newest version present is selected on open, so the page answers "what did I miss" before a click.
Rows that could not be read say Listing unavailable β click to retry.
-
Modrinth β the modpack's version list (
/v2/project/bEFyz3ji/version, newest 200) and each companion mod's list, keyless. Modrinth receives every release including the auto-release cascade ticks, so it is the yardstick every count is measured against; its curatedchangelogfield is the release-notes text for every version on the page. -
CurseForge β the keyless
api.cfwidget.commirror of the modpack project (the official API needs a key that can't ship in a client jar). It lags the real listing by up to ~30 min, well inside CurseForge's own review lag, which is the thing the page reports. No changelog β CurseForge rows borrow Modrinth's text for the same version. -
Installed β the build-baked
VersionInfo.VERSION; companion versions fromModList. -
Changelog ledger (v0.861.0) β
.github/release-notes/changelog.jsonfrom rawmain, once per session (~180 KB gzipped). It is the source the release notes are rendered from and the only place the tags live; for every release it knows, the notes are built from it (title, tag line, summary, bullets) rather than from Modrinth's markdown. Auto-release cascade ticks have no curated entry and keep their Modrinth text (hidden while a filter is on β nothing to match). If the fetch fails the page behaves exactly as before: Modrinth text, no chips.
All fetches are anonymous GETs on a daemon thread, fired once per session from the title screen and retried on the next open after a failure. They run regardless of the network-consent toggle, the same precedent as the official-links overlay.
LauncherDetector (path components, then minecraftinstance.json β CurseForge /
modrinth.index.json β Modrinth; anything else counts as Modrinth). The page compares against the
modpack listings whichever way the mod was installed β pack versions share the mod's numbering.
./gradlew runClient -PmockInstalledVersion=0.800.0fakes only the installed version (nothing else in the mod reads it), so the behind state, counts,
cumulative notes, boot prompt and header can be seen against real listings on a dev build that is
otherwise ahead of everything published. Drop a minecraftinstance.json into run/ to see the
CurseForge layout.
./gradlew runClient -PchangelogUrl=https://raw.githubusercontent.com/bh679/dungeon-train-mc/<branch>/.github/release-notes/changelog.jsonpoints the ledger fetch at an unmerged branch β needed to see a ledger change (new tags, new entries)
on the page before it lands on main.
client/version/compare/ β VersionCompareScreen (page), VersionRowButton,
ChangelogFullscreenScreen, NotesSection, VersionCompareBootPrompt (auto-open),
VersionCompareState (session cache), PackVersionFetcher, VersionCatalogParser (unit-tested),
PlatformVersions / ReleaseEntry / FullSemver (counting), SiblingMod, ChangelogLines
(markdown β coloured lines), InstalledVersion (mock seam). The old VersionStatusButton now opens the
page instead of a bare launcher link.