Luminol 26.1.2 + EkaiiMC custom patches and plugins (ported from ver/1.21.11). Monorepo: Luminol fork + EkaiiAFK + EkaiiAPI + local test rig.
  • Java 99.3%
  • Shell 0.7%
Find a file
exo c56c775a7d
Some checks failed
Build luminol-ekaii (paperclip) / build (push) Failing after 9m37s
fix: correct patch format for 0072 (real index hashes, diff stats, line counts)
The original patch had zeroed-out index hashes and missing diff stats
separator, causing git am to fail with "corrupt patch at line 47".
Regenerated using git format-patch from the actual runLuminolSetup repo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-12 01:41:25 +02:00
.forgejo/workflows ci: fix plugbench.yml YAML parse error on line 10 2026-05-06 14:36:56 +02:00
luminol fix: correct patch format for 0072 (real index hashes, diff stats, line counts) 2026-05-12 01:41:25 +02:00
scripts fix: rewrite summarize-commits.sh with jq JSON construction 2026-05-06 12:18:24 +02:00
test-server Initial monorepo: Luminol 26.1.2 + ekaii copper-golem patches + EkaiiAFK + EkaiiAPI 2026-05-01 19:35:03 +02:00
.gitignore Split plugins into separate repos; add upstream watcher + tag release 2026-05-01 19:55:46 +02:00
.plugbench.toml config: set plugbench JVM to 4G (was 8G default, caused OOM on chunkstorm r3) 2026-05-06 15:36:27 +02:00
EKAII_PORT.md Initial monorepo: Luminol 26.1.2 + ekaii copper-golem patches + EkaiiAFK + EkaiiAPI 2026-05-01 19:35:03 +02:00
LUMINOL_UPSTREAM_SHA Update Luminol 26.1.x upstream to b5cb63e (15 new commits) 2026-05-06 13:52:55 +02:00
README.md Split plugins into separate repos; add upstream watcher + tag release 2026-05-01 19:55:46 +02:00

luminol-ekaii

Luminol 26.1.2 fork with the EkaiiMC custom patches ported from ver/1.21.11. Companion plugins live in their own repos.

Component Repo Latest jar
Luminol fork (luminol/) forgejo.ekaii.fr/exo/luminol-ekaii (this repo) luminol-paperclip-26.1.2.local-SNAPSHOT.jar
EkaiiAFK plugin exo/EkaiiAFK EkaiiAFK-1.1.0-ekaii26.jar
EkaiiAPI plugin exo/EkaiiAPI EkaiiAPI-1.3.0-ekaii26.jar
Local test rig test-server/ (this repo) runs on 127.0.0.1:25599

What changed from upstream

The entire EkaiiMC custom delta on ver/1.21.11 was a single feature, ported as two patches:

  • luminol/luminol-server/minecraft-patches/features/0068-Add-distinct-activation-range-for-copper-golems.patch (NMS — ActivationRange.java)
  • luminol/luminol-server/paper-patches/features/0015-Add-distinct-activation-range-for-copper-golems.patch (Paper API — ActivationType enum + SpigotWorldConfig)

Both are additive. The pinned upstream baseline is in LUMINOL_UPSTREAM_SHA.

Build (locally)

Requires JDK 25 (brew install openjdk).

export JAVA_HOME=/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home

# 1. Hyacinthusweight (paperweight fork) + Hyacinthusclip (paperclip fork) → mavenLocal
git clone https://github.com/LuminolMC/Hyacinthusweight.git /tmp/hw && (cd /tmp/hw && ./gradlew publishToMavenLocal)
git clone https://github.com/LuminolMC/Hyacinthusclip.git    /tmp/hc && (cd /tmp/hc && ./gradlew publishToMavenLocal)

# 2. Luminol fork (paperweight needs git user.email + user.name set GLOBALLY)
(cd luminol && ./gradlew applyAllPatches \
              && ./gradlew --no-configuration-cache createPaperclipJar)
# Output: luminol/luminol-server/build/libs/luminol-paperclip-26.1.2.local-SNAPSHOT.jar (~61 MB)

For the plugins, see exo/EkaiiAFK and exo/EkaiiAPI.

Test it locally

cp luminol/luminol-server/build/libs/luminol-paperclip-*.jar test-server/
# grab plugins from their release pages or build them yourself:
curl -L -o test-server/plugins/EkaiiAFK.jar https://forgejo.ekaii.fr/exo/EkaiiAFK/releases/download/v1.1.0-ekaii26/EkaiiAFK-1.1.0-ekaii26.jar
curl -L -o test-server/plugins/EkaiiAPI.jar https://forgejo.ekaii.fr/exo/EkaiiAPI/releases/download/v1.3.0-ekaii26/EkaiiAPI-1.3.0-ekaii26.jar
test-server/run.sh

Boots in ~7 s on M-series, MOTD luminol-ekaii smoke test, port 25599.

CI

  • .forgejo/workflows/build.yml — every push to main builds the paperclip jar and uploads it as an artifact. Push a v* tag → also creates a Forgejo release with the jar attached.
  • .forgejo/workflows/upstream-watch.yml — every Monday 06:00 UTC (and on manual dispatch) it diffs LUMINOL_UPSTREAM_SHA against git ls-remote LuminolMC/Luminol@dev/26.1.x. If they differ, opens (or updates) a Upstream Luminol drift: <sha7> issue with the new commits + diff stat.

To bump after the watcher fires: re-clone upstream, replay the 2 patches on top, write the new SHA to LUMINOL_UPSTREAM_SHA, push.

Releases

Releases are manual, triggered by pushing a tag (not on every CI run). Tag format: v<mc-version>-ekaii-<port-version> (e.g. v26.1.2-ekaii-0.1.0).

Tag Forgejo GitHub
v26.1.2-ekaii-0.1.0 release release

Why these defaults

  • Group me.earthme.luminol kept so any plugin compiled against upstream luminol-api still resolves.
  • Version suffixed -ekaii so artifacts are distinguishable from upstream.
  • paper-api:26.1.2.build.53-stable for plugins (Folia API stops at 1.21.11; merged into Paper for 26.x).
  • Hyacinthusweight + Hyacinthusclip published locally because LuminolMC's snapshots repo (repo.menthamc.org) was DNS-unreachable at port time.