diff --git a/README.md b/README.md index 6a754c0..a5deb4d 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,7 @@ Linking creates a bound Return Link to the exact source position and orientation according to the configured Return Link policy. Server owners can set `descriptive_books.return_link_mode` in Rivencraft's -server config to `ON_CREATION` (default), `ALWAYS`, or `DISABLED`. +server config to `DISABLED` (default), `ON_CREATION`, or `ALWAYS`. Age creation, persistence, lifecycle commands, configuration, backups, and administrator recovery are documented in [docs/AGES.md](docs/AGES.md). Data-pack runtime profiles are documented in diff --git a/docs/AGES.md b/docs/AGES.md index f04e75b..ed0f63e 100644 --- a/docs/AGES.md +++ b/docs/AGES.md @@ -69,10 +69,9 @@ definition. Rivencraft writes gameplay settings to the world/server configuration managed by NeoForge. `descriptive_books.return_link_mode` accepts: -- `ON_CREATION` (default): create one Return Link the first time a player - enters each Age. +- `DISABLED` (default): never create Return Links automatically. +- `ON_CREATION`: create one Return Link the first time a player enters each Age. - `ALWAYS`: create a Return Link after every successful Descriptive Book trip. -- `DISABLED`: never create Return Links automatically. Each client has a separate `rivencraft-client.toml`. Its `book_preview.mode` setting accepts `AUTO`, `IMMERSIVE_PORTALS`, `PONDER`, or `LEGACY`. This changes diff --git a/docs/LEGACY_M7_AUDIT.md b/docs/LEGACY_M7_AUDIT.md index 929b2de..3d447f9 100644 --- a/docs/LEGACY_M7_AUDIT.md +++ b/docs/LEGACY_M7_AUDIT.md @@ -46,7 +46,7 @@ For a manual check, create a fresh surface Age and run `/rivencraft library near Issue #75's comment calls this a despawning drop. The code differs subtly: [`EntityLinkbook`](https://github.com/Mystcraft/Mystcraft-Legacy/blob/9bc8ddc061845df0cd5ea47f4fdef773cff786ae/src/main/java/com/xcompwiz/mystcraft/entity/EntityLinkbook.java#L190-L224) explicitly cannot despawn, but takes one starvation damage every 10,000 ticks and damage while wet. It can eventually be destroyed if left unattended; a vanilla item entity's fixed five-minute timeout is not parity. A modern equivalent should retain the visible book and avoid silently deleting its Age identity at that timeout. -Legacy's travel path creates no automatic Return Link. Rivencraft currently defaults to `ON_CREATION` via `DescriptiveBookItem` and `descriptive_books.return_link_mode`. Per #75's comment, change the **new-config default** to `DISABLED` while retaining `ON_CREATION` and `ALWAYS` as opt-ins. Existing saved server configs must keep their explicit value. Handheld-book drop and Return Link default are tracked in [#85](https://truenas-scale.tail180fb1.ts.net:8443/dnorberg/rivencraft/issues/85), not portal-frame logic. +Legacy's travel path creates no automatic Return Link. Rivencraft now defaults to `DISABLED` in new server configs while retaining `ON_CREATION` and `ALWAYS` as opt-ins. Existing saved server configs keep their explicit value. Handheld-book drop is tracked in [#85](https://truenas-scale.tail180fb1.ts.net:8443/dnorberg/rivencraft/issues/85), not portal-frame logic. ## Crafting, sounds, and progression diff --git a/docs/MILESTONE_7_COMPATIBILITY_REVIEW.md b/docs/MILESTONE_7_COMPATIBILITY_REVIEW.md new file mode 100644 index 0000000..b881a85 --- /dev/null +++ b/docs/MILESTONE_7_COMPATIBILITY_REVIEW.md @@ -0,0 +1,58 @@ +# Milestone 7 compatibility review (#82) + +Reviewed 2026-10-19 for Minecraft 1.21.1. The project compiles against +NeoForge 21.1.251 and advertises that as its minimum. The official +[NeoForge Maven metadata](https://maven.neoforged.net/releases/net/neoforged/neoforge/maven-metadata.xml) +lists 21.1.264 as the newest 21.1 release. Its +[changelog](https://maven.neoforged.net/releases/net/neoforged/neoforge/21.1.264/neoforge-21.1.264-changelog.txt) +includes received split-packet size checks (21.1.260), network setup payload +direction/decoding limits (21.1.261), ad-hoc channel identifier limits +(21.1.262), and an initial attachment-sync fix (21.1.264). Those are concrete +reasons to evaluate an upgrade, but do not by themselves prove Rivencraft and +its optional integrations work on that loader. + +**Decision: keep 21.1.251 as the build target and minimum for now.** +`./gradlew build runGameTestServer -Pneo_version=21.1.264` compiled and built +successfully, but the GameTest server repeated its storage-progress display +without producing test results. The run was stopped; it is neither a pass nor +evidence of a NeoForge defect. Under the project's stalled-test rule, hand +the equivalent in-game validation to the player. No 21.1.264 client or +dedicated-server compatibility pass has been recorded, so do not claim a +supported upgrade or raise the required version yet. The earlier 21.1.251 +baseline passed 70 required GameTests for release V0.6.6.0. + +| Dependency | Project baseline | Newest checked 1.21.1 release | Follow-up | +| --- | --- | --- | --- | +| Dynamic Dimensions AR Edition (required) | 0.9.1 | 0.9.1 | No newer release found on [CurseForge](https://www.curseforge.com/minecraft/mc-mods/dynamicdimension-ar-edition/files/all). | +| Bad Packets (required) | neo-0.8.2 | neo-0.8.2 | No newer matching [Modrinth](https://modrinth.com/mod/badpackets/versions) release found. | +| JEI (optional) | 19.57.0.449 | 19.64.0.455 | Separate update issue; verify recipe categories and GUI discovery. | +| Create (optional) | 6.0.10 | 6.0.10 | No newer matching [Modrinth](https://modrinth.com/mod/create/versions) release found. Its jar bundles Ponder 1.0.82. | +| Ponder (bundled with Create) | 1.0.82 | 1.0.87 library artifact | [Maven](https://maven.createmod.net/net/createmod/ponder/ponder-neoforge/maven-metadata.xml) has a newer artifact, but Create 6.0.10 still bundles 1.0.82. Do not treat this as a separately installed Create update. | +| Immersive Portals (optional) | 6.0.7 | 6.0.7 | No newer matching [Modrinth](https://modrinth.com/mod/immersive-portals-neoforge/versions) release found. | +| TerraBlender (optional) | 4.1.0.8 | 4.1.0.8 | No newer matching [Modrinth](https://modrinth.com/mod/terrablender/versions) release found. | +| Serene Seasons (optional) | 10.1.0.8 compile target | 10.1.0.9 | Separate update issue; the user's Prism instance already contains 10.1.0.9, but that is not a recorded compatibility pass. | +| GlitchCore (Serene dependency) | 2.1.0.2 | 2.1.0.2 | No newer matching [Modrinth](https://modrinth.com/mod/glitchcore/versions) release found. | +| Biomes O' Plenty (TerraBlender test addon) | 21.1.0.14 in user's Prism instance | 21.1.0.14 | No newer matching [Modrinth](https://modrinth.com/mod/biomes-o-plenty/versions) release found. | + +The Modrinth version comparisons above were filtered to **NeoForge and +Minecraft 1.21.1** on 2026-10-19. Create's bundled Ponder version was read +from `META-INF/jarjar/metadata.json` in `create-1.21.1-6.0.10.jar`; the +separate library-artifact comparison came from Create's Maven. Dynamic +Dimensions was checked on CurseForge. Versions for other Minecraft lines and +similarly named mods were excluded. + +The player reported an in-game pass for the 0.6.6.1 slice on 2026-10-19. +That confirms the current gameplay change, not the untested 21.1.264 +dedicated-server and optional-mod matrix. The keep decision therefore remains +unchanged. [Issue #89](https://truenas-scale.tail180fb1.ts.net:8443/dnorberg/rivencraft/issues/89) +tracks the remaining loader qualification separately. + +Before raising the loader target, test a clean 21.1.264 client and dedicated +server with only the two required dependencies. Create and enter an Age, +restart and revisit it, and confirm the LEGACY book-preview fallback without +Create/Immersive Portals. Then test separate optional combinations: JEI; +Create/Ponder; Immersive Portals alone and with Create; TerraBlender with +Biomes O' Plenty; Serene Seasons with GlitchCore. In each combination, verify +startup, book/portal travel, relevant previews or recipe/biome/season behavior, +and restart. Repeat the baseline with each optional addon absent. Serene's +GameTest mock-player network limitation requires a real client/server check. diff --git a/gradle.properties b/gradle.properties index 459446b..2bdb09b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -36,7 +36,7 @@ mod_name=Rivencraft # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=LGPL-3.0-or-later # The mod version. Rivencraft uses the x.y.z.b policy documented in README.md. -mod_version=0.6.6.0 +mod_version=0.6.6.1 immersive_portals_version=6.0.7 terrablender_version=4.1.0.8 serene_seasons_version_id=B6nTjh4b diff --git a/src/main/java/net/dnorberg/rivencraft/config/RivencraftConfig.java b/src/main/java/net/dnorberg/rivencraft/config/RivencraftConfig.java index 895baf4..bd643b1 100644 --- a/src/main/java/net/dnorberg/rivencraft/config/RivencraftConfig.java +++ b/src/main/java/net/dnorberg/rivencraft/config/RivencraftConfig.java @@ -75,7 +75,7 @@ public final class RivencraftConfig { "Controls automatic Return Link creation for Descriptive Book travel.", "ON_CREATION creates one link when an Age is first reached; ALWAYS creates one on every arrival; DISABLED creates none." ) - .defineEnum("return_link_mode", ReturnLinkMode.ON_CREATION); + .defineEnum("return_link_mode", ReturnLinkMode.DISABLED); builder.pop(); builder.push("libraries"); LIBRARY_LOOT_MODE = builder.comment(