Skip to content
Open
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
10 changes: 5 additions & 5 deletions .github/workflows/dev_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6

- name: Set up Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
java-version: 25

- name: Build with Gradle
run: ./gradlew build

- name: Release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: snapshot
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ jobs:

steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
persist-credentials: false
persist-credentials: false

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@v6

- name: Set up Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 21
java-version: 25

- name: Build with Gradle
run: ./gradlew build

- name: Release
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: Artifacts
path: build/libs/
43 changes: 26 additions & 17 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,36 @@ repositories {
dependencies {
// Fabric
minecraft(libs.minecraft)
mappings(variantOf(libs.yarn) { classifier("v2") })
modImplementation(libs.fabric.loader)
implementation(libs.fabric.loader)

// Meteor
modImplementation(libs.meteor.client)
implementation(libs.meteor.client)
}

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(libs.versions.jdk.get().toInt()))
}
}

fun toMinecraftCompat(version: String): String {
val match = Regex("""^(\d{2})\.([1-9]\d*)(?:\.([1-9]\d*))?$""")
.matchEntire(version)
?: error("Invalid Minecraft version format: $version. Expected YY.D or YY.D.H")

val (year, drop, _) = match.destructured
return "~$year.$drop"
}

tasks {
processResources {
val propertyMap = mapOf(
"version" to project.version,
"mc_version" to libs.versions.minecraft.get()
"minecraft_version" to toMinecraftCompat(libs.versions.minecraft.get()),
"jdk_version" to libs.versions.jdk.get(),
)

inputs.properties(propertyMap)

filteringCharset = "UTF-8"

filesMatching("fabric.mod.json") {
expand(propertyMap)
}
Expand All @@ -53,15 +65,12 @@ tasks {
}
}

java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

withType<JavaCompile> {
options.encoding = "UTF-8"
options.release = 21
options.compilerArgs.add("-Xlint:deprecation")
options.compilerArgs.add("-Xlint:unchecked")
withType<JavaCompile>().configureEach {
options.compilerArgs.addAll(
listOf(
"-Xlint:deprecation",
"-Xlint:unchecked"
)
)
}
}
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
org.gradle.jvmargs=-Xmx2G
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=false

# Mod Properties
Expand Down
11 changes: 6 additions & 5 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@
mod-version = "0.1.0"

# Fabric (https://fabricmc.net/develop)
minecraft = "1.21.11"
jdk = "25"
minecraft = "26.1.2"
yarn-mappings = "1.21.11+build.3"
fabric-loader = "0.18.2"
fabric-loader = "0.19.2"

# Loom (https://github.com/FabricMC/fabric-loom)
loom = "1.14-SNAPSHOT"
loom = "1.16-SNAPSHOT"

# Meteor (https://github.com/MeteorDevelopment/meteor-client/)
meteor = "1.21.11-SNAPSHOT"
meteor = "26.1.2-SNAPSHOT"

# Mods

Expand All @@ -26,4 +27,4 @@ meteor-client = { module = "meteordevelopment:meteor-client", version.ref = "met
# Mods

[plugins]
fabric-loom = { id = "fabric-loom", version.ref = "loom" }
fabric-loom = { id = "net.fabricmc.fabric-loom", version.ref = "loom" }
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
2 changes: 1 addition & 1 deletion gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,8 @@ pluginManagement {
}
}

plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}

rootProject.name = "addon-template"
6 changes: 3 additions & 3 deletions src/main/java/com/example/addon/commands/CommandExample.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import meteordevelopment.meteorclient.commands.Command;
import net.minecraft.command.CommandSource;
import net.minecraft.client.multiplayer.ClientSuggestionProvider;

/**
* The Meteor Client command API uses the <a href="https://github.com/Mojang/brigadier">same command system as Minecraft does</a>.
Expand All @@ -17,8 +17,8 @@ public CommandExample() {
}

@Override
public void build(LiteralArgumentBuilder<CommandSource> builder) {
builder.executes(context -> {
public void build(LiteralArgumentBuilder<ClientSuggestionProvider> builder) {
builder.executes(_ -> {
info("hi");
return SINGLE_SUCCESS;
});
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/com/example/addon/mixin/ExampleMixin.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.example.addon.mixin;

import com.example.addon.AddonTemplate;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.RunArgs;
import net.minecraft.client.Minecraft;
import net.minecraft.client.main.GameConfig;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
Expand All @@ -19,13 +19,13 @@
* <li><a href="https://github.com/2xsaiko/mixin-cheatsheet">The Mixin cheatsheet</a></li>
* </ul>
*/
@Mixin(MinecraftClient.class)
@Mixin(Minecraft.class)
public abstract class ExampleMixin {
/**
* Example Mixin injection targeting the {@code <init>} method (the constructor) at {@code TAIL} (end of method).
*/
@Inject(method = "<init>", at = @At("TAIL"))
private void onGameLoaded(RunArgs args, CallbackInfo ci) {
private void onGameLoaded(GameConfig gameConfig, CallbackInfo ci) {
AddonTemplate.LOG.info("Hello from ExampleMixin!");
}
}
16 changes: 8 additions & 8 deletions src/main/java/com/example/addon/modules/ModuleExample.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
import meteordevelopment.meteorclient.utils.render.color.Color;
import meteordevelopment.meteorclient.utils.render.color.SettingColor;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Box;
import net.minecraft.core.BlockPos;
import net.minecraft.world.phys.AABB;

public class ModuleExample extends Module {
private final SettingGroup sgGeneral = this.settings.getDefaultGroup();
Expand Down Expand Up @@ -52,12 +52,12 @@ public ModuleExample() {
*/
@EventHandler
private void onRender3d(Render3DEvent event) {
// Create & stretch the marker object
Box marker = new Box(BlockPos.ORIGIN);
marker = marker.stretch(
scale.get() * marker.getLengthX(),
scale.get() * marker.getLengthY(),
scale.get() * marker.getLengthZ()
// Create & expand the marker object
AABB marker = new AABB(BlockPos.ZERO);
marker = marker.expandTowards(
scale.get() * marker.getXsize(),
scale.get() * marker.getYsize(),
scale.get() * marker.getZsize()
);

// Render the marker based on the color setting
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
}
},
"depends": {
"java": ">=21",
"minecraft": ["${mc_version}"],
"java": ">=${jdk_version}",
"minecraft": "${minecraft_version}",
"meteor-client": "*"
}
}