Skip to content

Commit 8dcf0e2

Browse files
committed
Document EventHunts background saves and current build 701
1 parent 04d463a commit 8dcf0e2

22 files changed

Lines changed: 415 additions & 375 deletions

‎project-docs/cmi-api/README.md‎

Lines changed: 76 additions & 76 deletions
Large diffs are not rendered by default.

‎project-docs/cmi-api/SYNCED_FROM.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This namespace is a public documentation-only copy from the source project regis
55
- Project: `1MB Library`
66
- Project id: `cmi-api`
77
- Source repository: `mrfdev/1MB-Library`
8-
- Source commit: `9d126546`
8+
- Source commit: `dd7f7b51`
99
- Source state: `clean`
1010
- Public README source: `README.md`
1111
- Copied files: public `README.md` and `docs/`
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Paper 26.3 transition, 25 September 2026
2+
3+
1MB Library **1.0.3 build 699** is the final Paper 26.2-focused snapshot. The annotated tag [`v1.0.3-paper-26.2`](https://github.com/mrfdev/1MB-Library/tree/v1.0.3-paper-26.2) points to commit `9d1265469ffbf2d805540b9988a7134b1b08aa14`. Its compile API is `26.2.build.129-stable` and its bytecode target is Java 25.
4+
5+
The owner reported that those JARs work on Paper 26.3. The existing local `test-1mb-3.14-mc-26.3` startup log independently records Paper 26.3 alpha build 40, Java 27 (`27+35-2325`), all 65 suite plugins loading as `1.0.3-699`, and server readiness without suite enable errors. All 65 JARs in that test instance have the same SHA-256 as the preserved build-699 set. This records startup compatibility; it is not a claim that every gameplay path was accepted on 26.3.
6+
7+
**1.0.4 build 700** begins the Paper 26.3 focus. All 65 managed JARs share that version/build, retain Java 25 bytecode, and declare Paper 26.3 in their generated plugin descriptors. Build and unit-test JDK: **25.0.4.1**. Live and maintained test runtime: **Java 27**, locally **27+35-2325**.
8+
9+
## Exact Paper baseline
10+
11+
- Target: `26.3`; explicitly selected channel: `ALPHA`.
12+
- Paper build: **41**, published 25 September 2026 at 03:26:20 UTC.
13+
- Compile/test coordinate: `io.papermc.paper:paper-api:26.3.build.41-alpha`.
14+
- Server JAR: `Paper-26.3-41.jar`.
15+
- SHA-256: `2b77166ee61886a9bc9ab33dc9e4847fa3538b36d9ba6e5f2fa7ed90973aa748`.
16+
17+
Reviewed the [Paper documentation index](https://docs.papermc.io/llms.txt), [updating guide](https://docs.papermc.io/paper/updating/), [roadmap and deprecation policy](https://docs.papermc.io/paper/dev/roadmap/), [project setup](https://docs.papermc.io/paper/dev/project-setup/), [26.3 Javadocs](https://jd.papermc.io/paper/26.3/), [official build metadata](https://fill.papermc.io/v3/projects/paper/versions/26.3/builds/41), and Maven publication metadata. The Javadocs identified themselves as build 41 alpha during review. The exact build's [global](https://github.com/PaperMC/Paper/blob/a15fed9c16a5cc93e4ff38d6e2135623e2dc9daa/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java) and [world](https://github.com/PaperMC/Paper/blob/a15fed9c16a5cc93e4ff38d6e2135623e2dc9daa/paper-server/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java) configuration sources retain safe exploit defaults. Piston duplication, unsafe end-portal teleportation, tripwire validation bypasses, and oversized-component sanitizer exclusions remain disabled in the cloned server.
18+
19+
The 26.3 change history includes Post Effect API additions and deprecations for PotionEffectTypeCategory, PlayerAnimationEvent, and the Bukkit/Server PotionBrewer accessor. This release does not adopt experimental gameplay APIs or change plugin identity/PDC/data namespaces.
20+
21+
## Local instances and dependencies
22+
23+
`servers/Paper-26.2/` is preserved in place with the complete build-699 JAR set. It is rollback material and is excluded from current build/sync/staging paths. Do not start it against worlds subsequently saved by 26.3; use its preserved world copy.
24+
25+
`servers/Paper-26.3/` is an independent copy of the stopped 26.2 instance. It uses loopback port **22333**, Bedrock loopback port **19233**, tmux session **onemblibrary263**, and `/Library/Java/JavaVirtualMachines/jdk-27.jdk/Contents/Home`. PaperScript selects ALPHA for both default downloads and latest-channel checks; the launcher selects the greatest numbered 26.3 JAR. Runtime directories remain Git-ignored.
26+
27+
The following owner-provided JARs were copied from the existing 26.3 test instance. Earlier LuckPerms, FAWE, and WorldGuard JARs in the clone were moved to `plugins-disabled/paper-26.3-upgrade/`; WorldEdit replaces FAWE for this test instance.
28+
29+
| Dependency | SHA-256 |
30+
| --- | --- |
31+
| LuckPerms-Bukkit-5.5.85.jar | `dc637ce18f48d3b75a7ffd1784b85be16a627359090dfe5adf15dab6d145dc7d` |
32+
| worldedit-bukkit-7.4.6-beta-02.jar | `166365c44bad4cd916200b288cf391d3770e3197d1eca84ff74f3914d933e289` |
33+
| worldguard-bukkit-7.0.19.jar | `396df065f1cf38bab9878a0f53a776d5a085ebbf3c41813938b73f95d4eaca03` |
34+
| Geyser-Spigot.jar (2.12.0-SNAPSHOT) | `a657cdd2120a6e19c6d996fb384f40c9d429add619c304bde4cf13c649afe151` |
35+
36+
The initial startup exposed a CraftItemStack reflection failure in the cloned Geyser 2.11.3 build. It was backed up and replaced with the owner’s local 2.12.0 build while Paper was stopped; the repeated smoke test passed.
37+
38+
StartupDoctor, UpdateSmoke, and PluginVersions checks in the new instance are aligned to 26.3; custom checks in other servers are preserved and should be reviewed during their upgrade. Compile-only DiscordSRV remains outside the active plugins folder, preventing local start/stop notifications to Discord.
39+
40+
## Verification
41+
42+
- Canonical `scripts/build-all.sh` passed on JDK 25.0.4.1: **2,875 tests**, **zero failures/errors**, **one existing optional skip**. The failed first attempt exposed a stable-only release-metadata test assumption; the retry reused build 700. No extra build number was consumed.
43+
- All **65** built/server JAR pairs have matching SHA-256, uniform `1.0.4-700` plugin versions, Paper API descriptors of `26.3`, and Java class major **69** (Java 25). The 65 original JARs plus launcher, PaperScript, and server configuration hashes in the preserved 26.2 instance are unchanged.
44+
- Build-workflow regression fixtures passed for explicit ALPHA/BETA, legacy STABLE defaults, channel/API/checksum/launcher mismatches, invalid staged state, rollback, and reuse of a pending number.
45+
- Paper **26.3-41** started on Java **27+35-2325**, enabled all **65** suite plugins, reached readiness, reported the intended compile/runtime metadata, disabled all 65 plugins on `stop`, saved every world, and exited **0**. The final run contains **zero ERROR log entries**.
46+
- UpdateSmoke: **pass**, **562 checks**, 10/10 required commands, 5/5 placeholders, 64 shared features. Read-only command dispatch reached the configured cap: **400 executed successfully**, with one cap notice (`400/401` report entries). StartupDoctor Paper Safety: **safe**, **15 passes**, zero failures/warnings/notes. PluginVersions gate: **ok**, zero issues/warnings.
47+
- Compilation emitted existing unchecked-operation notes and the Mockito/bootstrap class-sharing JVM warning; no Java deprecation warnings or Paper API source changes were required.
48+
49+
The final runtime retains non-fatal third-party notices: LuckPerms/Commodore final-field mutation on Java 27, ViaVersion’s lack of newer compatible client versions, an older ItemSoulBind configuration, and WorldGuardExtraFlags’ deprecated player-spawn event listener. Existing local hunt setup/debug warnings are not gameplay acceptance. These are recorded rather than suppressed by changing JVM or protection settings.
50+
51+
Detailed local evidence is retained under `.scratch/paper-26.3-upgrade/`, including `build.log`, `artifacts.json`, and `smoke-java27-updated-geyser.log`. Both repository-local server instances are left stopped. The public documentation mirror is refreshed locally; publishing it is separate from this source release.
52+
53+
## Acceptance boundary
54+
55+
Connected-player gameplay acceptance remains required before using `gradle stageTestedJarsForLive` for the manual live handoff. This task does not deploy to the live server. Forage remains behind its existing camp-integration and gameplay release gate; upgrading Paper alone does not activate it. WorthHelper's curated villager-trade dataset remains pinned to its audited 26.2 baseline and has not been certified as 26.3 trade data by this release.

‎project-docs/cmi-api/docs/compiling.md‎

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
## Shared Hunt feature
44

5-
Door Hunt is source inside the compatibility-named `:plugins:player-fun:coconuthunt` project, not another Gradle plugin and not another JavaPlugin. Run `gradle :plugins:player-fun:coconuthunt:test` for the Coconut/Ghost/Door focused suite, then use `scripts/build-all.sh` for the suite-wide local test build. The centralized Java 25 and `paperApiVersion=26.2.build.129-stable` settings apply to all three modules; do not import the standalone build-number mutation or its Paper coordinate. The output remains one `1MB-Lib-EventHunts-v<version>-<build>-j25-26.2.jar` plus the normal library dependency.
5+
Door Hunt is source inside the compatibility-named `:plugins:player-fun:coconuthunt` project, not another Gradle plugin and not another JavaPlugin. Run `gradle :plugins:player-fun:coconuthunt:test` for the Coconut/Ghost/Door focused suite, then use `scripts/build-all.sh` for the suite-wide local test build. The centralized Java 25 and `paperApiVersion=26.3.build.41-alpha` settings apply to all three modules; do not import the standalone build-number mutation or its Paper coordinate. The output remains one `1MB-Lib-EventHunts-v<version>-<build>-j25-26.3.jar` plus the normal library dependency.
66

77
The Gradle scaffold is present. The current baseline is:
88

99
- Java 25 bytecode, built and tested with JDK 25.0.4.1
10-
- Java 26 on the live server; local runtime compatibility smoke testing uses JDK 26.0.2.1
11-
- Paper 26.2 stable build 129 or newer
12-
- Paper API `26.2.build.129-stable`
10+
- Java 27 on the live server; local runtime compatibility smoke testing uses JDK 27
11+
- Paper 26.3 alpha build 41 or newer
12+
- Paper API `26.3.build.41-alpha`
1313
- separate jars for every feature
1414
- a separate shared library jar
1515

@@ -19,7 +19,7 @@ The canonical command for a new deployable local test build is:
1919
scripts/build-all.sh
2020
```
2121

22-
This command reserves the next shared build number, updates to the latest stable Paper build for the exact configured `paperTarget`, aligns the Paper API coordinate, refreshes generated documentation, runs the complete build and test gate, and synchronizes every active JAR (currently 65) into the maintained test server. It persists the build number and Paper API coordinate only after deployment verifies successfully. If an attempt fails, correct the problem and rerun the same command; the pending transaction reuses the same proposed build number.
22+
This command reserves the next shared build number, updates to the latest Paper build for the exact configured `paperTarget` and `paperChannel`, aligns the Paper API coordinate, refreshes generated documentation, runs the complete build and test gate, and synchronizes every active JAR (currently 65) into the maintained test server. It persists the build number and Paper API coordinate only after deployment verifies successfully. If an attempt fails, correct the problem and rerun the same command; the pending transaction reuses the same proposed build number.
2323

2424
Focused Gradle tasks are still appropriate during development. They do not create a new deployable build:
2525

@@ -28,7 +28,7 @@ gradle :plugins:player-fun:<feature>:test
2828
gradle :plugins:player-fun:<feature>:jar
2929
```
3030

31-
Direct `gradle build` is also a verification command, not a release-to-test handoff. `refreshBuildDocs` updates every documented 1MB jar name, semantic-version/build example, checklist metadata line, and Paper stable-build requirement from `gradle.properties`. `build` runs `verifyBuildMetadata`, which fails if docs or generated debug metadata are stale.
31+
Direct `gradle build` is also a verification command, not a release-to-test handoff. `refreshBuildDocs` updates every documented 1MB jar name, semantic-version/build example, checklist metadata line, and Paper build requirement from `gradle.properties`. `build` runs `verifyBuildMetadata`, which fails if docs or generated debug metadata are stale.
3232

3333
Build and test explicitly with JDK 25.0.4.1 even when the shell's default Java is newer. Older Java 25 installations have been removed. Run Gradle and the canonical build command with this environment:
3434

@@ -40,27 +40,29 @@ Build and test explicitly with JDK 25.0.4.1 even when the shell's default Java i
4040
)
4141
```
4242

43-
The Gradle Java toolchain and Java 25 compiler target keep the jars runnable on Java 25. A separate Paper startup using JDK 26.0.2.1 verifies compatibility with the live server's Java 26 runtime. Keep `javaTarget=25`.
43+
The Gradle Java toolchain and Java 25 compiler target keep the jars runnable on Java 25. A separate Paper startup using JDK 27 verifies compatibility with the live server's Java 27 runtime. Keep `javaTarget=25`.
4444

45-
## Paper Stable Alignment
45+
## Paper Channel Alignment
4646

47-
The canonical build command performs this check and update automatically without crossing the configured Paper version. For manual repair, request the latest stable build for the exact target:
47+
`gradle.properties` explicitly selects `paperTarget=26.3` and `paperChannel=ALPHA`. The default remains STABLE when the channel property is absent; experimental builds are never an automatic fallback. A later beta or stable transition requires changing the channel, matching API coordinate, and both PaperScript channel settings together.
48+
49+
The canonical build command performs this check and update automatically without crossing the configured Paper version. For manual repair, request the latest alpha build for the explicitly approved 26.3 target:
4850

4951
```bash
50-
cd servers/Paper-26.2
51-
./paperscript.sh --yes download --version 26.2 --channel STABLE
52+
cd servers/Paper-26.3
53+
./paperscript.sh --yes download --version 26.3 --channel ALPHA
5254
./paperscript.sh status
5355
```
5456

55-
The expected runtime is the staged `Paper-{version}-{build}.jar`, matching the maintained launcher's highest numbered JAR for that version. `verifyLocalPaperAlignment` and `scripts/build-all.sh` share a read-only validator for PaperScript identity, exact target/build, checksum, stable channel, and launcher selection. Complete `staged_*` state takes precedence over old `current_*` records; partial or invalid staged state is rejected. Legacy `Paper-{version}.jar` state remains supported only when no staged fields exist, and any numbered launcher selection must agree. The selected Paper build must match `paperApiVersion`.
57+
The expected runtime is the staged `Paper-{version}-{build}.jar`, matching the maintained launcher's highest numbered JAR for that version. `verifyLocalPaperAlignment` and `scripts/build-all.sh` share a read-only validator for PaperScript identity, exact target/build, checksum, configured channel, and launcher selection. Complete `staged_*` state takes precedence over old `current_*` records; partial or invalid staged state is rejected. Legacy `Paper-{version}.jar` state remains supported only when no staged fields exist, and any numbered launcher selection must agree. The selected Paper build must match `paperApiVersion`.
5658

5759
```bash
5860
gradle verifyLocalPaperAlignment printProjectMetadata
5961
```
6062

6163
`/1mblib version`, `/1mblib status`, inherited feature debug pages, PluginVersions debug output, and support bundles obtain the semantic version, build, Java target, Paper target, and exact compiled Paper API from generated `BuildConstants`.
6264

63-
Stop the Paper 26.2 test server before running `syncBuiltJarsToProjectServer`. The task checks the configured world's `session.lock` and refuses to replace loaded plugin jars while Paper is running; overwriting a live jar can leave Paper's lazy plugin classloader unable to load classes that were not used before the replacement. Run `gradle planProjectJarSync` first for the same complete-set and manifest preflight without server mutation.
65+
Stop the Paper 26.3 test server before running `syncBuiltJarsToProjectServer`. The task checks the configured world's `session.lock` and refuses to replace loaded plugin jars while Paper is running; overwriting a live jar can leave Paper's lazy plugin classloader unable to load classes that were not used before the replacement. Run `gradle planProjectJarSync` first for the same complete-set and manifest preflight without server mutation.
6466

6567
To check whether the public Starlight docs mirror is current, run:
6668

@@ -73,17 +75,17 @@ This is a read-only drift check against the public `1MB-Plugins-Docs` checkout.
7375
Expected jar naming:
7476

7577
```text
76-
1MB-Lib-Core-v1.0.3-699-j25-26.2.jar
77-
1MB-Lib-AntiFire-v1.0.3-699-j25-26.2.jar
78-
1MB-Lib-AFKShrine-v1.0.3-699-j25-26.2.jar
79-
1MB-Lib-StaffCenter-v1.0.3-699-j25-26.2.jar
80-
1MB-Lib-Profile-v1.0.3-699-j25-26.2.jar
78+
1MB-Lib-Core-v1.0.4-701-j25-26.3.jar
79+
1MB-Lib-AntiFire-v1.0.4-701-j25-26.3.jar
80+
1MB-Lib-AFKShrine-v1.0.4-701-j25-26.3.jar
81+
1MB-Lib-StaffCenter-v1.0.4-701-j25-26.3.jar
82+
1MB-Lib-Profile-v1.0.4-701-j25-26.3.jar
8183
```
8284

8385
Every new deployable build replaces the complete managed suite in:
8486

8587
```text
86-
servers/Paper-26.2/plugins/
88+
servers/Paper-26.3/plugins/
8789
```
8890

8991
`scripts/build-all.sh` is the normal entry point because it increments the suite build and updates Paper first. The Gradle task and retained copy helper are repair/redeployment paths for the already-persisted build:
@@ -95,15 +97,15 @@ scripts/copy-built-jars-to-local-server.sh
9597

9698
All paths recognize legacy `1MB-CMIAPI-*` and current `1MB-Lib-*` artifacts as one managed family. Synchronization depends on the complete project build gate and happens only after every active project build succeeds. Preflight requires the exact current count and suffix, Core, the expected source-project Paper identity set, and unique primary/provided identities. Candidates and prior active JARs are staged under `plugins-disabled/1mb-library-sync/transactions`; successful activation verifies names, manifests, identities, and bytes before removing the transaction. A normal activation or verification failure restores the exact prior active set. If the process is interrupted, later plan/sync attempts fail closed while the transaction remains: inspect its `rollback/`, `candidates/`, and active server set before recovery, and never delete that transaction blindly. GameTypes/BentoBox deployment remains separate from this repository-local sync flow.
9799

98-
Retired server instances are stored under the Git-ignored `archive/` directory. Gradle does not build against, sync to, stage from, or test against archived instances; `servers/Paper-26.2/` is the sole active repository-local target.
100+
The previous `servers/Paper-26.2/` instance remains in place as the 1.0.3 build-699 rollback snapshot. Other retired server instances are stored under the Git-ignored `archive/` directory. Gradle does not build against, sync to, stage from, or test against archived instances; `servers/Paper-26.3/` is the sole active repository-local target.
99101

100-
The project-local launch script requires Java 26 and discovers `java` through `PATH`. Run it with the installed JDK 26.0.2.1 for runtime compatibility smoke testing:
102+
The project-local launch script requires Java 27 and discovers `java` through `PATH`. Run it with the installed JDK 27 for runtime compatibility smoke testing:
101103

102104
```bash
103105
(
104-
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-26.0.2.1.jdk/Contents/Home
106+
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-27.jdk/Contents/Home
105107
export PATH="$JAVA_HOME/bin:$PATH"
106-
./servers/Paper-26.2/1MB-minecraft.sh
108+
./servers/Paper-26.3/1MB-minecraft.sh
107109
)
108110
```
109111

@@ -123,10 +125,10 @@ them. For example, the TeamMsg modules compile against DiscordSRV's API
123125
from:
124126

125127
```text
126-
servers/Paper-26.2/compile-support/DiscordSRV-Build-1.30.5.jar
128+
servers/Paper-26.3/compile-support/DiscordSRV-Build-1.30.5.jar
127129
```
128130

129-
Keep DiscordSRV disabled or absent from `servers/Paper-26.2/plugins/` during
131+
Keep DiscordSRV disabled or absent from `servers/Paper-26.3/plugins/` during
130132
normal local CMI-API testing so server start/stop events do not post to live
131133
Discord channels. Inspect actual JAR manifests, including Git-ignored files, before
132134
starting Paper. DiscordChat isolates its DiscordSRV-specific types in its optional

‎project-docs/cmi-api/docs/development-rules.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Runtime Baseline
44

55
- Java 25+
6-
- Paper 26.2+
6+
- Paper 26.3 (explicit ALPHA channel during the experimental release)
77
- CMI installed
88
- CMILib installed
99
- CMI-API used at compile time

0 commit comments

Comments
 (0)