Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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

Expand Down
53 changes: 18 additions & 35 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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 }}
Expand Down Expand Up @@ -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 }}
Expand All @@ -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
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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.

---

Expand Down
7 changes: 5 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -88,7 +91,7 @@ if (sc_loader == "fabric") {
}
}
dependencies {
implementation "maven.modrinth:mcef-keksuccino:${mcef_version}"
implementation "maven.modrinth:rinku:${mcef_version}"
}
}

Expand Down
5 changes: 3 additions & 2 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pluginManagement {
}

plugins {
id 'dev.kikugie.stonecutter' version '0.9.4'
id 'dev.kikugie.stonecutter' version '0.9.8'
}

stonecutter {
Expand All @@ -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'
Expand Down
4 changes: 2 additions & 2 deletions versions/1.20.1-fabric/gradle.properties
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion versions/1.20.1-neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -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]
4 changes: 2 additions & 2 deletions versions/1.21.1-fabric/gradle.properties
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion versions/1.21.1-neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -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]
6 changes: 3 additions & 3 deletions versions/1.21.11-fabric/gradle.properties
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion versions/1.21.11-neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -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]
2 changes: 1 addition & 1 deletion versions/26.1.2-neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion versions/26.2-neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -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
Loading