verify pass: resolve VERIFY flags (corrections + citations + honest UNCONFIRMED)

Corrected real errors: several 1.7.x release dates, resource_pack_send version,
config packet ordering, structured-component count (56), PLAYER_LOADED (1.21.4),
entity_sound_effect field order. Confirmed+cited the rest; remaining ~19 items
re-marked UNCONFIRMED (third-party/ViaLegacy/26.2 internals unreachable from refs).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
claude-timemachine
2026-06-19 15:03:44 +02:00
parent d73c1c9537
commit a3d5f64ef5
25 changed files with 179 additions and 119 deletions
+5 -5
View File
@@ -91,9 +91,9 @@ Forge appends a NUL-delimited marker to signal that the connecting client has Fo
| Era | Marker (literal) | Forge versions |
|-----|-----------------|----------------|
| FML (1.71.12.2) | `\0FML\0` | Forge for MC 1.7.x 1.12.x |
| FML2 (1.13+) | `\0FML2\0` | Forge for MC 1.13 1.19.x <!-- VERIFY: exact cutoff --> |
| FML3 (Forge 36+) | `\0FML3\0` | NeoForge / recent Forge <!-- VERIFY: exact version range --> |
| FML / Legacy (1.71.12.2) | `\0FML\0` | Forge for MC 1.7.x 1.12.x |
| FML2 (1.13+) | `\0FML2\0` | Forge for MC 1.13+ <!-- UNCONFIRMED: "\0FML2\0" token name comes from Forge internals; neither BungeeCord nor Velocity source in /tmp/mcproto-refs uses or defines this string. Velocity notes "1.13+ uses a slightly different token" (HandshakeSessionHandler.java:176) but does not handle it. --> |
| Modern (1.20.2+) | `\0FORGE` or `\0FORGEn` | NeoForge / Forge 1.20.2+ <!-- UNCONFIRMED: version number suffix `n` observed in Velocity ModernForgeConnectionType.getModernToken(); exact token for NeoForge-only (FML3) not confirmed from available sources. Velocity ModernForgeConstants.java defines MODERN_FORGE_TOKEN = "FORGE" and gates it on protocol ≥ 1.20.2 (HandshakeSessionHandler.java:166167). --> |
BungeeCord source defines only `\0FML\0` as `FML_HANDSHAKE_TOKEN` (`ForgeConstants.java:20`). The comment in `InitialHandler.java:351-354` reads:
@@ -176,7 +176,7 @@ Backend servers (e.g. Paper with `settings.bungeecord: true`) re-parse this fiel
}
```
This means: **with BungeeCord ip_forward enabled, Forge mod detection via the handshake tag is broken at the backend.** <!-- VERIFY: still true in current BungeeCord HEAD -->
This means: **with BungeeCord ip_forward enabled, Forge mod detection via the handshake tag is broken at the backend.** Confirmed in BungeeCord HEAD (commit f56d37f, 2026-06-18): `ServerConnector.java:124128` still has the `TODO: Add support for this data with IP forwarding` comment and the `else if` branch is unchanged.
---
@@ -209,7 +209,7 @@ flowchart LR
| 1.7.2 | Handshake packet introduced in this form; fields stable since |
| 1.71.12.2 | Forge appends `\0FML\0` for modded clients |
| 1.8+ | BungeeCord ip_forward writes `host\0ip\0uuid[\0props]` to backends |
| 1.13+ | Forge marker changes to `\0FML2\0` <!-- VERIFY --> |
| 1.13+ | Forge marker changes to a different token (exact string unconfirmed from proxy sources; see table above) |
| 1.20.5 (protocol 766) | Intent value `3` (Transfer) added |
---