You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/architecture/target-matrix.md
+61-7Lines changed: 61 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,19 @@ An adapter is the unit of support and release; a Git branch is not.
7
7
8
8
| Target | Loader | Java | State | Notes |
9
9
|---|---|---:|---|---|
10
-
| Minecraft 1.20.1 | Forge 47.4.10 | 17 | Active | Implemented in `platform/forge-1.20.1`; local Mojang login/UUID/name/skin run passed on 2026-07-12 with JDK 17. Yggdrasil, denial/timeout/grace, and migration rollback runs remain pending. |
11
-
| Minecraft 1.21.1 | Forge 52.1.0 | 21 | Planned | Implemented independently in `platform/forge-1.21.1`; a local premium client/server login passed, but the full acceptance matrix remains incomplete. |
12
-
| Minecraft 1.21.1 | NeoForge 21.1.213 | 21 | Planned | Implemented in `platform/neoforge-1.21.1`; the preserved `archive/neoforge-1.21.1-pre-monorepo` branch was API/lifecycle evidence only. Its JDK 21 build, shared fixtures, and codec/lifecycle tests pass, but no modded client/server matrix has run. |
10
+
| Minecraft 1.20.1 | Forge 47.4.10 | 17 | Active | Implemented in `platform/forge-1.20.1` (independent pre-configuration-phase island). Local Mojang login/UUID/name/skin run passed on 2026-07-12 with JDK 17. Yggdrasil, denial/timeout/grace, and migration rollback runs remain pending. |
11
+
| Minecraft 1.21.1 | Forge 52.1.0 | 21 | Planned |`platform/forge-1.21.1`; shares `platform/forge-common`. A local premium client/server login passed, but the full acceptance matrix remains incomplete. |
| Minecraft 1.21.8 | Forge 58.1.0 | 21 | Planned |`platform/forge-1.21.8`; shares `platform/forge-common`. Uses the EventBus 7 seam. Build + mixin refmap + tests pass (2026-07-15). No login run yet. Candidate to cover 1.21.6/1.21.7 once those login runs pass. |
16
+
| Minecraft 1.21.1 | NeoForge 21.1.213 | 21 | Planned | Implemented in `platform/neoforge-1.21.1`; the preserved `archive/neoforge-1.21.1-pre-monorepo` branch was API/lifecycle evidence only. Its JDK 21 build, shared fixtures, and codec/lifecycle tests pass, but no modded client/server matrix has run. NeoForge is deferred until the Forge line is login-validated. |
An empty folder, version range in metadata, or successful compilation alone is
16
20
not a support claim. Every supported target needs a real two-sided login run.
21
+
The five modern Forge modules build and pass unit tests, but all remain Planned
22
+
until each has its own login run.
17
23
18
24
## Recorded runtime evidence
19
25
@@ -32,9 +38,13 @@ required before a release claim.
32
38
|---|---|---|---|---|
33
39
| 2026-07-12 | NeoForge 1.21.1 | NeoForge 21.1.213 / OpenJDK 21.0.11 |`platform/neoforge-1.21.1/build/libs/trueuuid-1.1.0-neoforge1.21.1.jar`|`:shared:protocol:test :platform:neoforge-1.21.1:build` passed. The adapter codec and lifecycle tests passed; safe endpoint verification is wired, but the real login acceptance matrix is pending. |
34
40
| 2026-07-15 | Forge 1.21.1 | Forge 52.1.0 / OpenJDK 21.0.11 |`platform/forge-1.21.1/build/libs/trueuuid-1.1.0-forge1.21.1.jar`| JDK 21 build, shared fixtures, codec/lifecycle tests, and one real premium client/server login passed. The full matrix is still pending. |
41
+
| 2026-07-15 | Forge 1.21.3 | Forge 53.1.0 / OpenJDK 21.0.11 |`platform/forge-1.21.3/build/libs/trueuuid-1.1.0-forge1.21.3.jar`|`:platform:forge-1.21.3:build` passed (shared `platform/forge-common` recompiled against 1.21.3 mappings; mixin refmap generated; unit tests passed). No login run. |
42
+
| 2026-07-15 | Forge 1.21.4 | Forge 54.1.14 / OpenJDK 21.0.11 |`platform/forge-1.21.4/build/libs/trueuuid-1.1.0-forge1.21.4.jar`|`:platform:forge-1.21.4:build` passed (shared source recompiled against 1.21.4 mappings; refmap generated; unit tests passed). No login run. |
43
+
| 2026-07-15 | Forge 1.21.5 | Forge 55.1.10 / OpenJDK 21.0.11 |`platform/forge-1.21.5/build/libs/trueuuid-1.1.0-forge1.21.5.jar`|`:platform:forge-1.21.5:build` passed (shared source recompiled against 1.21.5 mappings; refmap generated; unit tests passed). No login run. |
44
+
| 2026-07-15 | Forge 1.21.8 | Forge 58.1.0 / OpenJDK 21.0.11 |`platform/forge-1.21.8/build/libs/trueuuid-1.1.0-forge1.21.8.jar`|`:platform:forge-1.21.8:build` passed against the EventBus 7 API (shared source + the `.listener``@SubscribeEvent` seam; refmap generated; unit tests passed). No login run. |
35
45
36
46
These build artifacts are validation outputs, not release artifacts or runtime
37
-
support claims. Both rows remain Planned until the complete acceptance matrix
47
+
support claims. Every row remains Planned until the complete acceptance matrix
38
48
in `docs/development/adding-adapter.md` passes, including migration rollback.
39
49
40
50
## Target axes
@@ -48,15 +58,59 @@ Use one module per declared target:
48
58
49
59
```text
50
60
platform/
51
-
forge-1.20.1/
52
-
forge-1.21.1/
61
+
forge-common/ # shared SOURCE root for the modern Forge line (not a module)
62
+
forge-1.20.1/ # independent pre-configuration-phase island
63
+
forge-1.21.1/ # \
64
+
forge-1.21.3/ # } each recompiles forge-common against its own Forge/mappings
65
+
forge-1.21.4/ # } and adds only its version-divergent shims
66
+
forge-1.21.5/ # /
67
+
forge-1.21.8/ # / (EventBus 7)
53
68
neoforge-1.21.1/
54
-
fabric-1.20.1/
55
69
```
56
70
57
71
Directories are added only when they contain a compiling adapter. Shared code
58
72
does not make an untested loader or Minecraft version supported.
59
73
74
+
## Modern Forge code sharing
75
+
76
+
The 1.20.2+ payload-based login protocol is one family. Rather than duplicate the
77
+
adapter across every 1.21.x patch, the version-independent code lives once in
78
+
`platform/forge-common/src/main` (a **source** root, not a Gradle module) and each
79
+
per-version module compiles it against its own Forge version and Minecraft
Copy file name to clipboardExpand all lines: gradle.properties
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -47,6 +47,6 @@ mod_version=1.1.0
47
47
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
48
48
mod_group_id=cn.alini
49
49
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
50
-
mod_authors=_YuWan
50
+
mod_authors=YuWan-030, wish131400, F1xGOD
51
51
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
52
-
mod_description=
52
+
mod_description=A Minecraft authentication mod for offline-mode servers. It securely verifies premium accounts during login while keeping each player's access token on their own client.
0 commit comments