From c29e517c4e1f3a2a26cc4fc39c7d38b2b5b3d8ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B8=D1=80=D0=B8=D0=BB=D0=BB=20=D0=93=D1=80=D0=B8?= =?UTF-8?q?=D0=BD=D0=B5=D0=B2?= Date: Tue, 8 Sep 2026 17:59:37 +0500 Subject: [PATCH] chore: fix MCEF resolution, refresh deps, drop beta status for MC 26 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MCEF [Keksuccino's Fork] was renamed to Rinku and the old `mcef-keksuccino` slug no longer resolves on Modrinth's maven — clean clones and CI fail at dependency resolution. The 2.2.x artifacts are still served under the new slug, so only the artifact id changes; the 1.20.1-neoforge coordinate additionally moves to the `-forge` variant because the plain `2.2.0-1.20.1` one is gone. Minecraft 26.2 is Mojang's current release and NeoForge dropped the -beta suffix on the 26.2 line at build 26.2.0.57, so the beta markers in the README and the workflows are stale: 26.x now gates the required build check and publishes as `release` rather than `beta`. Dependency refresh: NeoForge 26.2.0.32-beta → 26.2.0.82 26.1.2.86 → 26.1.2.107 21.11.44 → 21.11.45 21.1.233 → 21.1.250 fabric-loader 0.19.2 → 0.19.5 yarn 1.21.11 build.4 → build.6 fabric-api 0.141.3/0.116.12/0.92.9 → 0.141.6/0.116.17/0.92.12 stonecutter 0.9.4 → 0.9.8 Verified on all seven targets: build + unit tests, dev client (reaches `Chromium Embedded Framework initialized` and `WebGUI bridge ready`), launchTest on Fabric, and a real dedicated server. The 26.x dedicated server does not start, but that is pre-existing and dev-only — see the tracking issue. Closes #27 Refs #29 --- .github/workflows/build.yml | 4 -- .github/workflows/release.yml | 53 +++++++-------------- README.md | 10 ++-- build.gradle | 7 ++- settings.gradle | 5 +- versions/1.20.1-fabric/gradle.properties | 4 +- versions/1.20.1-neoforge/gradle.properties | 2 +- versions/1.21.1-fabric/gradle.properties | 4 +- versions/1.21.1-neoforge/gradle.properties | 2 +- versions/1.21.11-fabric/gradle.properties | 6 +-- versions/1.21.11-neoforge/gradle.properties | 2 +- versions/26.1.2-neoforge/gradle.properties | 2 +- versions/26.2-neoforge/gradle.properties | 2 +- 13 files changed, 43 insertions(+), 60 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0e59a2c..f02c478 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,6 @@ jobs: build: name: build (${{ matrix.version }}) runs-on: ubuntu-latest - # Beta targets (Minecraft 26) build in CI but don't gate the required check. - continue-on-error: ${{ matrix.beta || false }} strategy: fail-fast: false matrix: @@ -30,10 +28,8 @@ jobs: smoke: true - version: 26.2-neoforge java: '25' - beta: true - version: 26.1.2-neoforge java: '25' - beta: true steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ed4ecf5..cc4a18c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -70,27 +70,15 @@ jobs: distribution: temurin cache: gradle - # Stable targets gate the release; a beta build failure must never block them. - - name: Build stable versions + # Every target gates the release — Minecraft 26 is a stable line now, so + # a 26.x build failure must stop the release like any other. + - name: Build all versions if: steps.check.outputs.release == 'true' run: | chmod +x gradlew ./gradlew :1.20.1-fabric:build :1.21.1-fabric:build :1.21.11-fabric:build \ - :1.21.1-neoforge:build :1.21.11-neoforge:build --no-daemon - env: - GRADLE_OPTS: -Xmx2g - - - name: Build 26.2 NeoForge (beta) - if: steps.check.outputs.release == 'true' - continue-on-error: true - run: ./gradlew :26.2-neoforge:build --no-daemon - env: - GRADLE_OPTS: -Xmx2g - - - name: Build 26.1.2 NeoForge (beta) - if: steps.check.outputs.release == 'true' - continue-on-error: true - run: ./gradlew :26.1.2-neoforge:build --no-daemon + :1.21.1-neoforge:build :1.21.11-neoforge:build \ + :26.1.2-neoforge:build :26.2-neoforge:build --no-daemon env: GRADLE_OPTS: -Xmx2g @@ -186,36 +174,31 @@ jobs: changelog: ${{ steps.notes.outputs.body }} files: versions/1.21.11-neoforge/build/libs/!(*-@(dev|sources|javadoc)).jar - # Beta target (Minecraft 26). Kept out of the verify gate below and allowed - # to fail (e.g. Modrinth may not list the game version yet) without blocking - # the stable release. - - name: Publish 26.2 NeoForge to Modrinth (beta) + - name: Publish 26.2 NeoForge to Modrinth if: steps.check.outputs.release == 'true' - continue-on-error: true uses: Kir-Antipov/mc-publish@v3.3 with: modrinth-id: tDw1xQja modrinth-token: ${{ secrets.MODRINTH_TOKEN }} modrinth-featured: false - name: WebGUI ${{ steps.meta.outputs.version }} (26.2 NeoForge, beta) + name: WebGUI ${{ steps.meta.outputs.version }} (26.2 NeoForge) version: ${{ steps.meta.outputs.version }}+mc26.2-neoforge - version-type: beta + version-type: release loaders: neoforge game-versions: '26.2' changelog: ${{ steps.notes.outputs.body }} files: versions/26.2-neoforge/build/libs/!(*-@(dev|sources|javadoc)).jar - - name: Publish 26.1.2 NeoForge to Modrinth (beta) + - name: Publish 26.1.2 NeoForge to Modrinth if: steps.check.outputs.release == 'true' - continue-on-error: true uses: Kir-Antipov/mc-publish@v3.3 with: modrinth-id: tDw1xQja modrinth-token: ${{ secrets.MODRINTH_TOKEN }} modrinth-featured: false - name: WebGUI ${{ steps.meta.outputs.version }} (26.1.2 NeoForge, beta) + name: WebGUI ${{ steps.meta.outputs.version }} (26.1.2 NeoForge) version: ${{ steps.meta.outputs.version }}+mc26.1.2-neoforge - version-type: beta + version-type: release loaders: neoforge game-versions: '26.1.2' changelog: ${{ steps.notes.outputs.body }} @@ -299,31 +282,31 @@ jobs: changelog: ${{ steps.notes.outputs.body }} files: versions/1.21.11-neoforge/build/libs/!(*-@(dev|sources|javadoc)).jar - - name: Publish 26.2 NeoForge to CurseForge (beta) + - name: Publish 26.2 NeoForge to CurseForge if: steps.check.outputs.release == 'true' && vars.CURSEFORGE_ID != '' continue-on-error: true uses: Kir-Antipov/mc-publish@v3.3 with: curseforge-id: ${{ vars.CURSEFORGE_ID }} curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} - name: WebGUI ${{ steps.meta.outputs.version }} (26.2 NeoForge, beta) + name: WebGUI ${{ steps.meta.outputs.version }} (26.2 NeoForge) version: ${{ steps.meta.outputs.version }}+mc26.2-neoforge - version-type: beta + version-type: release loaders: neoforge game-versions: '26.2' changelog: ${{ steps.notes.outputs.body }} files: versions/26.2-neoforge/build/libs/!(*-@(dev|sources|javadoc)).jar - - name: Publish 26.1.2 NeoForge to CurseForge (beta) + - name: Publish 26.1.2 NeoForge to CurseForge if: steps.check.outputs.release == 'true' && vars.CURSEFORGE_ID != '' continue-on-error: true uses: Kir-Antipov/mc-publish@v3.3 with: curseforge-id: ${{ vars.CURSEFORGE_ID }} curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} - name: WebGUI ${{ steps.meta.outputs.version }} (26.1.2 NeoForge, beta) + name: WebGUI ${{ steps.meta.outputs.version }} (26.1.2 NeoForge) version: ${{ steps.meta.outputs.version }}+mc26.1.2-neoforge - version-type: beta + version-type: release loaders: neoforge game-versions: '26.1.2' changelog: ${{ steps.notes.outputs.body }} @@ -337,7 +320,7 @@ jobs: run: | sleep 8 v='${{ steps.meta.outputs.version }}' - expected="${v}+mc1.20.1-fabric ${v}+mc1.21.1-fabric ${v}+mc1.21.11-fabric ${v}+mc1.21.1-neoforge ${v}+mc1.21.11-neoforge" + expected="${v}+mc1.20.1-fabric ${v}+mc1.21.1-fabric ${v}+mc1.21.11-fabric ${v}+mc1.21.1-neoforge ${v}+mc1.21.11-neoforge ${v}+mc26.1.2-neoforge ${v}+mc26.2-neoforge" published=$(curl -s "https://api.modrinth.com/v2/project/tDw1xQja/version?cb=${{ github.run_id }}" \ | python3 -c "import sys,json; print('\n'.join(x['version_number'] for x in json.load(sys.stdin)))") fail=0 diff --git a/README.md b/README.md index 1f4ab0f..1558529 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Embed any web page as a full-screen GUI or transparent HUD overlay inside Minecraft.** -WebGUI is a Fabric & NeoForge mod that embeds a real Chromium browser (via [MCEF](https://github.com/CinemaMod/mcef)) directly in the game client. Server operators can display any React, Vue, or plain HTML app to their players — as a HUD overlay that auto-opens on join, or as a custom main menu accessible with a keybind. +WebGUI is a Fabric & NeoForge mod that embeds a real Chromium browser (via [Rinku](https://modrinth.com/mod/rinku), the MCEF fork) directly in the game client. Server operators can display any React, Vue, or plain HTML app to their players — as a HUD overlay that auto-opens on join, or as a custom main menu accessible with a keybind. [![Build](https://github.com/mc-webgui/webgui/actions/workflows/build.yml/badge.svg)](https://github.com/mc-webgui/webgui/actions/workflows/build.yml) [![Modrinth](https://img.shields.io/modrinth/dt/webgui?logo=modrinth&label=Modrinth&color=1bd96a)](https://modrinth.com/project/webgui) @@ -26,17 +26,17 @@ WebGUI is a Fabric & NeoForge mod that embeds a real Chromium browser (via [MCEF | Minecraft | Loader | Status | |-----------|--------|--------| -| 26.2 | NeoForge | 🧪 Beta | -| 26.1 | NeoForge | 🧪 Beta | +| 26.2 | NeoForge | ✅ Active | +| 26.1 | NeoForge | ✅ Active | | 1.21.5 – 1.21.11 | Fabric | ✅ Active | | 1.21.5 – 1.21.11 | NeoForge | ✅ Active | | 1.21 – 1.21.1 | Fabric | ✅ Supported | | 1.21 – 1.21.1 | NeoForge | ✅ Supported | | 1.20.1 | Fabric | ✅ Supported | -Minecraft 26 builds are **NeoForge-only and in beta** — Fabric is on hold until Yarn mappings for 26.x are published. +Minecraft 26 builds are **NeoForge-only** — Fabric is on hold until Yarn mappings for 26.x are published. -Chromium (~150 MB) is downloaded automatically on first launch. Include [MCEF](https://modrinth.com/mod/mcef) in your modpack to pre-bundle it. +Chromium (~150 MB) is downloaded automatically on first launch. Include [Rinku](https://modrinth.com/mod/rinku) (formerly MCEF [Keksuccino's Fork]) in your modpack to pre-bundle it. --- diff --git a/build.gradle b/build.gradle index bdcfa1b..8b04f63 100644 --- a/build.gradle +++ b/build.gradle @@ -60,7 +60,10 @@ if (sc_loader == "fabric") { mappings "net.fabricmc:yarn:${yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${loader_version}" modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}" - include(modImplementation("maven.modrinth:mcef-keksuccino:${mcef_version}")) + // MCEF [Keksuccino's Fork] was renamed to Rinku; the old `mcef-keksuccino` + // slug no longer resolves on Modrinth's maven. The 2.2.x artifacts are + // still served under the new slug, so only the artifact id changes here. + include(modImplementation("maven.modrinth:rinku:${mcef_version}")) } } else { neoForge { @@ -88,7 +91,7 @@ if (sc_loader == "fabric") { } } dependencies { - implementation "maven.modrinth:mcef-keksuccino:${mcef_version}" + implementation "maven.modrinth:rinku:${mcef_version}" } } diff --git a/settings.gradle b/settings.gradle index 32c0189..0f04619 100644 --- a/settings.gradle +++ b/settings.gradle @@ -8,7 +8,7 @@ pluginManagement { } plugins { - id 'dev.kikugie.stonecutter' version '0.9.4' + id 'dev.kikugie.stonecutter' version '0.9.8' } stonecutter { @@ -17,7 +17,8 @@ stonecutter { create(rootProject) { // MC 26 (NeoForge only — Yarn mappings for 26.x are not published). - // 26.2 is still a NeoForge beta; 26.1 is the released line. + // Both lines are stable: 26.2 is Mojang's current release and NeoForge + // dropped the -beta suffix on the 26.2 line at build 26.2.0.57. version '26.2-neoforge', '26.2-neoforge' version '26.1.2-neoforge', '26.1.2-neoforge' version '1.21.11-fabric', '1.21.11-fabric' diff --git a/versions/1.20.1-fabric/gradle.properties b/versions/1.20.1-fabric/gradle.properties index 14d76e7..639d910 100644 --- a/versions/1.20.1-fabric/gradle.properties +++ b/versions/1.20.1-fabric/gradle.properties @@ -1,7 +1,7 @@ minecraft_version=1.20.1 yarn_mappings=1.20.1+build.10 -loader_version=0.19.2 -fabric_version=0.92.9+1.20.1 +loader_version=0.19.5 +fabric_version=0.92.12+1.20.1 mcef_version=2.2.0-1.20.1-fabric minecraft_range=>=1.20.1 <=1.20.1 loader_type=fabric diff --git a/versions/1.20.1-neoforge/gradle.properties b/versions/1.20.1-neoforge/gradle.properties index b264568..102eb91 100644 --- a/versions/1.20.1-neoforge/gradle.properties +++ b/versions/1.20.1-neoforge/gradle.properties @@ -1,5 +1,5 @@ minecraft_version=1.20.1 loader_type=neoforge neoforge_version=47.3.0 -mcef_version=2.2.0-1.20.1 +mcef_version=2.2.0-1.20.1-forge minecraft_range=[1.20.1] diff --git a/versions/1.21.1-fabric/gradle.properties b/versions/1.21.1-fabric/gradle.properties index 53d6983..f689c10 100644 --- a/versions/1.21.1-fabric/gradle.properties +++ b/versions/1.21.1-fabric/gradle.properties @@ -1,7 +1,7 @@ minecraft_version=1.21.1 yarn_mappings=1.21.1+build.3 -loader_version=0.19.2 -fabric_version=0.116.12+1.21.1 +loader_version=0.19.5 +fabric_version=0.116.17+1.21.1 mcef_version=2.2.0-1.21.1-fabric minecraft_range=>=1.21 <=1.21.1 loader_type=fabric diff --git a/versions/1.21.1-neoforge/gradle.properties b/versions/1.21.1-neoforge/gradle.properties index a2503b3..f408eb2 100644 --- a/versions/1.21.1-neoforge/gradle.properties +++ b/versions/1.21.1-neoforge/gradle.properties @@ -1,5 +1,5 @@ minecraft_version=1.21.1 loader_type=neoforge -neoforge_version=21.1.233 +neoforge_version=21.1.250 mcef_version=2.2.0-1.21.1-neoforge minecraft_range=[1.21,1.21.1] diff --git a/versions/1.21.11-fabric/gradle.properties b/versions/1.21.11-fabric/gradle.properties index 1377e9a..a1671cd 100644 --- a/versions/1.21.11-fabric/gradle.properties +++ b/versions/1.21.11-fabric/gradle.properties @@ -1,7 +1,7 @@ minecraft_version=1.21.11 -yarn_mappings=1.21.11+build.4 -loader_version=0.19.2 -fabric_version=0.141.3+1.21.11 +yarn_mappings=1.21.11+build.6 +loader_version=0.19.5 +fabric_version=0.141.6+1.21.11 mcef_version=2.2.0-1.21.11-fabric minecraft_range=>=1.21.5 <=1.21.11 loader_type=fabric diff --git a/versions/1.21.11-neoforge/gradle.properties b/versions/1.21.11-neoforge/gradle.properties index 1995149..412d06d 100644 --- a/versions/1.21.11-neoforge/gradle.properties +++ b/versions/1.21.11-neoforge/gradle.properties @@ -1,5 +1,5 @@ minecraft_version=1.21.11 loader_type=neoforge -neoforge_version=21.11.44 +neoforge_version=21.11.45 mcef_version=2.2.0-1.21.11-neoforge minecraft_range=[1.21.5,1.21.11] diff --git a/versions/26.1.2-neoforge/gradle.properties b/versions/26.1.2-neoforge/gradle.properties index 2f1bcce..255a19f 100644 --- a/versions/26.1.2-neoforge/gradle.properties +++ b/versions/26.1.2-neoforge/gradle.properties @@ -1,6 +1,6 @@ minecraft_version=26.1.2 loader_type=neoforge -neoforge_version=26.1.2.86 +neoforge_version=26.1.2.107 mcef_version=2.2.0-26.1.1-neoforge minecraft_range=[26.1.2,26.1.2] java_version=25 diff --git a/versions/26.2-neoforge/gradle.properties b/versions/26.2-neoforge/gradle.properties index 75d438e..1d07792 100644 --- a/versions/26.2-neoforge/gradle.properties +++ b/versions/26.2-neoforge/gradle.properties @@ -1,6 +1,6 @@ minecraft_version=26.2 loader_type=neoforge -neoforge_version=26.2.0.32-beta +neoforge_version=26.2.0.82 mcef_version=2.2.1-26.2-neoforge minecraft_range=[26.2,26.2] java_version=25