Default automatic Return Links to disabled and review compatibility
Build / build (push) Canceled after 0s

This commit is contained in:
dnorberg committed 2026-10-19 05:21:00 -04:00
1 parent c39ebd78ba
commit 54c10cca6c
6 files changed
+64 -7

No files matched your search

+1 -1
View File
@@ -198,7 +198,7 @@ Linking creates a bound Return Link to the exact source position and orientation
according to the configured Return Link policy. according to the configured Return Link policy.
Server owners can set `descriptive_books.return_link_mode` in Rivencraft's 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 Age creation, persistence, lifecycle commands, configuration, backups, and
administrator recovery are documented in [docs/AGES.md](docs/AGES.md). administrator recovery are documented in [docs/AGES.md](docs/AGES.md).
Data-pack runtime profiles are documented in Data-pack runtime profiles are documented in
+2 -3
View File
@@ -69,10 +69,9 @@ definition.
Rivencraft writes gameplay settings to the world/server configuration managed Rivencraft writes gameplay settings to the world/server configuration managed
by NeoForge. `descriptive_books.return_link_mode` accepts: by NeoForge. `descriptive_books.return_link_mode` accepts:
- `ON_CREATION` (default): create one Return Link the first time a player - `DISABLED` (default): never create Return Links automatically.
enters each Age. - `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. - `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` Each client has a separate `rivencraft-client.toml`. Its `book_preview.mode`
setting accepts `AUTO`, `IMMERSIVE_PORTALS`, `PONDER`, or `LEGACY`. This changes setting accepts `AUTO`, `IMMERSIVE_PORTALS`, `PONDER`, or `LEGACY`. This changes
+1 -1
View File
@@ -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. 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 ## Crafting, sounds, and progression
+58
View File
@@ -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.
+1 -1
View File
@@ -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. # 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 mod_license=LGPL-3.0-or-later
# The mod version. Rivencraft uses the x.y.z.b policy documented in README.md. # 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 immersive_portals_version=6.0.7
terrablender_version=4.1.0.8 terrablender_version=4.1.0.8
serene_seasons_version_id=B6nTjh4b serene_seasons_version_id=B6nTjh4b
@@ -75,7 +75,7 @@ public final class RivencraftConfig {
"Controls automatic Return Link creation for Descriptive Book travel.", "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." "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.pop();
builder.push("libraries"); builder.push("libraries");
LIBRARY_LOOT_MODE = builder.comment( LIBRARY_LOOT_MODE = builder.comment(