diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 9353e1a..9d3edd2 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,4 +1,4 @@ -name: build-matrix +name: build on: push: @@ -9,33 +9,15 @@ on: jobs: build: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - mc: "1.21.6" - yarn: "1.21.6+build.1" - fabric: "0.120.1+1.21.6" - - mc: "1.21.7" - yarn: "1.21.7+build.8" - fabric: "0.129.0+1.21.7" - - mc: "1.21.8" - yarn: "1.21.8+build.1" - fabric: "0.136.1+1.21.8" steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin - java-version: 21 - - name: Build (MC ${{ matrix.mc }}) - run: | - ./gradlew --no-daemon \ - -Pminecraft_version=${{ matrix.mc }} \ - -Pyarn_mappings=${{ matrix.yarn }} \ - -Pfabric_version=${{ matrix.fabric }} \ - build + java-version: 25 + - name: Build (MC 26.1.2) + run: ./gradlew --no-daemon build - uses: actions/upload-artifact@v4 with: - name: video_player-mc${{ matrix.mc }} + name: video_player-mc26.1.2 path: build/libs/*.jar diff --git a/build.gradle b/build.gradle index cb8a584..27669cd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.16.2' + id 'net.fabricmc.fabric-loom' version "${loom_version}" id 'maven-publish' id 'java' } @@ -16,11 +16,16 @@ repositories { maven { url = 'https://maven.fabricmc.net/' } } +loom { + // Intentionally empty — MC 26.1+ ships unobfuscated, so the new loom does not remap. +} + dependencies { + // No mappings dep — Mojang ships official names since 26.1, intermediary is gone. minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + + implementation "net.fabricmc:fabric-loader:${project.loader_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" } processResources { @@ -28,27 +33,24 @@ processResources { inputs.property "mod_id", project.mod_id inputs.property "minecraft_version", project.minecraft_version - // Pin the fabric.mod.json's minecraft constraint to the build's exact target — keeps each - // multi-version jar from claiming compatibility it doesn't have. - def mc = project.minecraft_version - def target = "~${mc}" - filesMatching("fabric.mod.json") { - expand "version": project.version, "mod_id": project.mod_id, "target_minecraft": target + expand "version": project.version, + "mod_id": project.mod_id, + "target_minecraft": "~${project.minecraft_version}" } } tasks.withType(JavaCompile).configureEach { - it.options.release = 21 + it.options.release = 25 } java { withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = JavaVersion.VERSION_25 + targetCompatibility = JavaVersion.VERSION_25 toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } } diff --git a/gradle.properties b/gradle.properties index 62695e1..8807df3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,14 +1,16 @@ org.gradle.jvmargs=-Xmx2G org.gradle.parallel=true +# Config cache disabled — new loom + IntelliJ aren't fully compatible yet +org.gradle.configuration-cache=false # Mod mod_id=video_player -mod_version=0.2.0 +mod_version=0.3.0 maven_group=com.ejclaw.videoplayer archives_base_name=video_player -# Minecraft / Fabric (1.21.6) -minecraft_version=1.21.6 -yarn_mappings=1.21.6+build.1 +# Minecraft / Fabric (26.1.2 — single target, intermediary/Yarn retired) +minecraft_version=26.1.2 loader_version=0.19.2 -fabric_version=0.120.1+1.21.6 +loom_version=1.16-SNAPSHOT +fabric_version=0.149.0+26.1.2 diff --git a/scripts/build-multiver.sh b/scripts/build-multiver.sh deleted file mode 100755 index baec047..0000000 --- a/scripts/build-multiver.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash -# Build the mod against all supported MC versions and collect jars under build/multiver/. -# Uses gradle property overrides so we don't have to maintain three settings.gradle copies. -set -euo pipefail - -cd "$(dirname "$0")/.." - -OUT=build/multiver -rm -rf "$OUT" -mkdir -p "$OUT" - -build_one() { - local mc="$1" yarn="$2" fab="$3" - echo "==> Building for MC $mc (yarn=$yarn, fabric-api=$fab)" - ./gradlew --no-daemon \ - -Pminecraft_version="$mc" \ - -Pyarn_mappings="$yarn" \ - -Pfabric_version="$fab" \ - build - # main jar = the one without "-sources" - local jar - jar=$(ls build/libs/video_player-*.jar | grep -v -- '-sources' | head -1) - cp "$jar" "$OUT/video_player-mc${mc}.jar" -} - -build_one 1.21.6 1.21.6+build.1 0.120.1+1.21.6 -build_one 1.21.7 1.21.7+build.8 0.129.0+1.21.7 -build_one 1.21.8 1.21.8+build.1 0.136.1+1.21.8 - -echo -echo "All jars:" -ls -la "$OUT" diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index dc730d9..9e2dcb0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -16,9 +16,9 @@ "client": [ "com.ejclaw.videoplayer.VideoPlayerClient" ] }, "depends": { - "fabricloader": ">=0.16.0", + "fabricloader": ">=0.19.0", "fabric-api": "*", "minecraft": "${target_minecraft}", - "java": ">=21" + "java": ">=25" } }