Skip to content

Commit b889a56

Browse files
committed
chore: update to Minecraft 26.1.2 / JDK 25 / v0.4.0
- Minecraft 1.21.11 -> 26.1.2, fabric-loader 0.18.2 -> 0.19.2 - Java/release target 21 -> 25, gradle 9.2.0 -> 9.4.1, loom 1.14 -> 1.16 - Drop yarn mappings; meteor/fabric-loader move to plain implementation - modInclude becomes a Configuration extending implementation + include - Add foojay toolchain resolver and Fabric Snapshots repo - Bump mod version to 0.4.0 - Replace release.yml with unified workflow (JDK 25, timestamped dev tags) - Refresh setting reflection and HUD mixin for 26.1 mappings
1 parent f0c0ade commit b889a56

12 files changed

Lines changed: 1029 additions & 1079 deletions

File tree

.github/workflows/release.yml

Lines changed: 15 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,33 @@
1-
name: Build and Release Addon
1+
name: Build and Release
22

33
on:
44
push:
5-
branches:
6-
- main
5+
branches: [main]
76
paths:
8-
- '**/*.java'
7+
- 'src/**'
98
- 'webui/**'
10-
- 'src/main/resources/**'
119
- 'build.gradle.kts'
12-
- 'gradle.properties'
13-
- 'gradle/libs.versions.toml'
10+
- 'gradle/**'
1411
- '.github/workflows/release.yml'
1512
pull_request:
1613
paths:
17-
- '**/*.java'
14+
- 'src/**'
1815
- 'webui/**'
19-
- 'src/main/resources/**'
2016
- 'build.gradle.kts'
21-
- 'gradle.properties'
22-
- 'gradle/libs.versions.toml'
17+
- 'gradle/**'
2318
- '.github/workflows/release.yml'
2419
workflow_dispatch:
2520
inputs:
2621
version:
27-
description: 'Release version (e.g. 1.2.3)'
22+
description: 'Release version (e.g. 0.4.0)'
2823
required: true
2924
type: string
3025
release_name:
3126
description: 'Optional release title override'
3227
required: false
3328
type: string
3429
prerelease:
35-
description: 'Mark the manual release as a prerelease'
30+
description: 'Mark as prerelease'
3631
required: true
3732
default: false
3833
type: boolean
@@ -57,7 +52,7 @@ jobs:
5752
uses: actions/setup-java@v4
5853
with:
5954
distribution: temurin
60-
java-version: 21
55+
java-version: 25
6156

6257
- name: Determine release metadata
6358
id: meta
@@ -66,17 +61,13 @@ jobs:
6661
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
6762
TAG="v${{ github.event.inputs.version }}"
6863
RELEASE_NAME="${{ github.event.inputs.release_name }}"
69-
if [ -z "$RELEASE_NAME" ]; then
70-
RELEASE_NAME="$TAG"
71-
fi
72-
if [ "${{ github.event.inputs.prerelease }}" = "true" ]; then
73-
PRERELEASE="true"
74-
else
75-
PRERELEASE="false"
76-
fi
64+
[ -z "$RELEASE_NAME" ] && RELEASE_NAME="$TAG"
65+
[ "${{ github.event.inputs.prerelease }}" = "true" ] && PRERELEASE="true" || PRERELEASE="false"
7766
else
78-
TAG="snapshot"
79-
RELEASE_NAME="Dev Build"
67+
VERSION=$(grep '^mod-version' gradle/libs.versions.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')
68+
TIMESTAMP=$(date -u +%Y%m%d-%H%M%S)
69+
TAG="v${VERSION}-dev.${TIMESTAMP}"
70+
RELEASE_NAME="Dev Build ${VERSION} (${TIMESTAMP})"
8071
PRERELEASE="true"
8172
fi
8273
{
@@ -85,53 +76,12 @@ jobs:
8576
echo "prerelease=$PRERELEASE"
8677
} >> "$GITHUB_OUTPUT"
8778
88-
- name: Move snapshot tag to current commit
89-
if: github.event_name != 'pull_request' && github.event_name != 'workflow_dispatch'
90-
env:
91-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
92-
run: |
93-
git config user.name "github-actions[bot]"
94-
git config user.email "github-actions[bot]@users.noreply.github.com"
95-
git tag -f snapshot "$GITHUB_SHA"
96-
git push --force "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" refs/tags/snapshot
97-
9879
- name: Make Gradle wrapper executable
9980
run: chmod +x ./gradlew
10081

10182
- name: Build with Gradle
10283
run: ./gradlew build --no-configuration-cache
10384

104-
- name: Remove old jar assets from target release
105-
if: github.event_name != 'pull_request'
106-
uses: actions/github-script@v7
107-
with:
108-
script: |
109-
const tag = '${{ steps.meta.outputs.tag_name }}';
110-
let release;
111-
try {
112-
release = await github.rest.repos.getReleaseByTag({
113-
owner: context.repo.owner,
114-
repo: context.repo.repo,
115-
tag
116-
});
117-
} catch (error) {
118-
if (error.status === 404) {
119-
core.info(`Release for tag ${tag} does not exist yet; skipping cleanup.`);
120-
return;
121-
}
122-
throw error;
123-
}
124-
125-
const jarAssets = release.data.assets.filter(asset => asset.name.endsWith('.jar'));
126-
for (const asset of jarAssets) {
127-
await github.rest.repos.deleteReleaseAsset({
128-
owner: context.repo.owner,
129-
repo: context.repo.repo,
130-
asset_id: asset.id
131-
});
132-
core.info(`Deleted old asset: ${asset.name}`);
133-
}
134-
13585
- name: Publish Release
13686
if: github.event_name != 'pull_request'
13787
uses: softprops/action-gh-release@v2

build.gradle.kts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
1-
import org.gradle.api.artifacts.MinimalExternalModuleDependency
2-
import org.gradle.api.provider.Provider
3-
import org.gradle.kotlin.dsl.DependencyHandlerScope
4-
51
plugins {
62
alias(libs.plugins.fabric.loom)
73
}
84

9-
fun DependencyHandlerScope.modInclude(
10-
dependencyProvider: Provider<out MinimalExternalModuleDependency>,
11-
) {
12-
modImplementation(dependencyProvider)
13-
include(dependencyProvider)
5+
val modInclude: Configuration by configurations.creating
6+
7+
configurations {
8+
implementation.configure { extendsFrom(modInclude) }
9+
include.configure { extendsFrom(modInclude) }
1410
}
1511

1612
base {
@@ -20,7 +16,6 @@ base {
2016
}
2117

2218
repositories {
23-
mavenCentral()
2419
maven {
2520
name = "meteor-maven"
2621
url = uri("https://maven.meteordev.org/releases")
@@ -29,16 +24,16 @@ repositories {
2924
name = "meteor-maven-snapshots"
3025
url = uri("https://maven.meteordev.org/snapshots")
3126
}
27+
mavenCentral()
3228
}
3329

3430
dependencies {
3531
// Minecraft
3632
minecraft(libs.minecraft)
37-
mappings(variantOf(libs.yarn) { classifier("v2") })
38-
modImplementation(libs.fabric.loader)
33+
implementation(libs.fabric.loader)
3934

4035
// Meteor Client
41-
modImplementation(libs.meteor.client)
36+
implementation(libs.meteor.client)
4237
compileOnly(libs.orbit)
4338

4439
// NanoHTTPD for HTTP server and WebSocket support
@@ -54,6 +49,12 @@ dependencies {
5449
testRuntimeOnly(libs.junit.platform.launcher)
5550
}
5651

52+
java {
53+
toolchain {
54+
languageVersion.set(JavaLanguageVersion.of(libs.versions.jdk.get().toInt()))
55+
}
56+
}
57+
5758
tasks {
5859
processResources {
5960
val propertyMap = mapOf(
@@ -78,14 +79,9 @@ tasks {
7879
}
7980
}
8081

81-
java {
82-
sourceCompatibility = JavaVersion.VERSION_21
83-
targetCompatibility = JavaVersion.VERSION_21
84-
}
85-
8682
withType<JavaCompile> {
8783
options.encoding = "UTF-8"
88-
options.release = 21
84+
options.release = 25
8985
options.compilerArgs.add("-Xlint:deprecation")
9086
options.compilerArgs.add("-Xlint:unchecked")
9187
}

gradle/libs.versions.toml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[versions]
22
# Mod Properties
3-
mod-version = "0.3.0"
3+
mod-version = "0.4.0"
44

55
# Minecraft
6-
minecraft = "1.21.11"
7-
yarn-mappings = "1.21.11+build.3"
8-
fabric-loader = "0.18.2"
9-
loom = "1.14-SNAPSHOT"
6+
jdk = "25"
7+
minecraft = "26.1.2"
8+
fabric-loader = "0.19.2"
9+
loom = "1.16-SNAPSHOT"
1010

1111
# Dependencies
12-
meteor = "1.21.11-SNAPSHOT"
12+
meteor = "26.1.2-SNAPSHOT"
1313
orbit = "0.2.4"
1414

1515
# WebServer and WebSocket
@@ -22,7 +22,6 @@ junit = "5.10.2"
2222
[libraries]
2323
# Minecraft
2424
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
25-
yarn = { module = "net.fabricmc:yarn", version.ref = "yarn-mappings" }
2625
fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" }
2726

2827
# Meteor
@@ -42,4 +41,4 @@ junit-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref
4241
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" }
4342

4443
[plugins]
45-
fabric-loom = { id = "fabric-loom", version.ref = "loom" }
44+
fabric-loom = { id = "net.fabricmc.fabric-loom", version.ref = "loom" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

settings.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,15 @@ pluginManagement {
44
name = "Fabric"
55
url = uri("https://maven.fabricmc.net/")
66
}
7+
maven {
8+
name = "Fabric Snapshots"
9+
url = uri("https://maven.fabricmc.net/snapshots/")
10+
}
711
mavenCentral()
812
gradlePluginPortal()
913
}
1014
}
15+
16+
plugins {
17+
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
18+
}

src/main/java/com/cope/meteorwebgui/gui/WebGUITab.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import meteordevelopment.meteorclient.gui.tabs.WindowTabScreen;
1010
import meteordevelopment.meteorclient.settings.Settings;
1111
import meteordevelopment.meteorclient.utils.misc.NbtUtils;
12-
import net.minecraft.client.gui.screen.Screen;
12+
import net.minecraft.client.gui.screens.Screen;
1313

1414
import static meteordevelopment.meteorclient.MeteorClient.mc;
1515

src/main/java/com/cope/meteorwebgui/mapping/RegistryProvider.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44
import com.google.gson.JsonObject;
55
import meteordevelopment.meteorclient.systems.modules.Module;
66
import meteordevelopment.meteorclient.systems.modules.Modules;
7-
import net.minecraft.entity.EntityType;
8-
import net.minecraft.entity.effect.StatusEffect;
9-
import net.minecraft.item.Item;
10-
import net.minecraft.potion.Potion;
11-
import net.minecraft.registry.Registries;
12-
import net.minecraft.util.Identifier;
7+
import net.minecraft.core.registries.BuiltInRegistries;
8+
import net.minecraft.resources.Identifier;
9+
import net.minecraft.world.item.Item;
1310

1411
import java.util.HashMap;
1512
import java.util.Map;
@@ -28,8 +25,8 @@ public static JsonObject getAllBlocks() {
2825
JsonArray blocks = new JsonArray();
2926
Map<String, JsonArray> byNamespace = new HashMap<>();
3027

31-
Registries.BLOCK.getEntrySet().forEach(entry -> {
32-
Identifier id = entry.getKey().getValue();
28+
BuiltInRegistries.BLOCK.entrySet().forEach(entry -> {
29+
Identifier id = entry.getKey().identifier();
3330
String idString = id.toString();
3431
String namespace = id.getNamespace();
3532

@@ -56,8 +53,8 @@ public static JsonObject getAllItems() {
5653
JsonArray items = new JsonArray();
5754
Map<String, JsonArray> byNamespace = new HashMap<>();
5855

59-
Registries.ITEM.getEntrySet().forEach(entry -> {
60-
Identifier id = entry.getKey().getValue();
56+
BuiltInRegistries.ITEM.entrySet().forEach(entry -> {
57+
Identifier id = entry.getKey().identifier();
6158
Item item = entry.getValue();
6259
String idString = id.toString();
6360
String namespace = id.getNamespace();
@@ -83,8 +80,8 @@ public static JsonObject getAllItems() {
8380
public static JsonArray getAllPotions() {
8481
JsonArray potions = new JsonArray();
8582

86-
Registries.POTION.getEntrySet().forEach(entry -> {
87-
Identifier id = entry.getKey().getValue();
83+
BuiltInRegistries.POTION.entrySet().forEach(entry -> {
84+
Identifier id = entry.getKey().identifier();
8885
JsonObject potionObj = new JsonObject();
8986
potionObj.addProperty("id", id.toString());
9087
potionObj.addProperty("namespace", id.getNamespace());
@@ -102,8 +99,8 @@ public static JsonObject getAllEntityTypes() {
10299
JsonArray entities = new JsonArray();
103100
Map<String, JsonArray> byNamespace = new HashMap<>();
104101

105-
Registries.ENTITY_TYPE.getEntrySet().forEach(entry -> {
106-
Identifier id = entry.getKey().getValue();
102+
BuiltInRegistries.ENTITY_TYPE.entrySet().forEach(entry -> {
103+
Identifier id = entry.getKey().identifier();
107104
String idString = id.toString();
108105
String namespace = id.getNamespace();
109106

@@ -128,8 +125,8 @@ public static JsonObject getAllEntityTypes() {
128125
public static JsonArray getAllStatusEffects() {
129126
JsonArray effects = new JsonArray();
130127

131-
Registries.STATUS_EFFECT.getEntrySet().forEach(entry -> {
132-
Identifier id = entry.getKey().getValue();
128+
BuiltInRegistries.MOB_EFFECT.entrySet().forEach(entry -> {
129+
Identifier id = entry.getKey().identifier();
133130
JsonObject effectObj = new JsonObject();
134131
effectObj.addProperty("id", id.toString());
135132
effectObj.addProperty("namespace", id.getNamespace());

0 commit comments

Comments
 (0)