diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1d6323b..e48ae93 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: push: branches: - main + pull_request: workflow_dispatch: inputs: version: diff --git a/build.gradle.kts b/build.gradle.kts index f57089a..7386ab2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,10 +1,10 @@ plugins { - id("fabric-loom") version "1.12-SNAPSHOT" + alias(libs.plugins.fabric.loom) } base { archivesName = properties["archives_base_name"] as String - version = properties["mod_version"] as String + version = libs.versions.mod.version.get() group = properties["maven_group"] as String } @@ -18,40 +18,38 @@ repositories { name = "meteor-maven-snapshots" url = uri("https://maven.meteordev.org/snapshots") } - flatDir { - dirs("libs") - } } dependencies { - // Fabric - minecraft("com.mojang:minecraft:${properties["minecraft_version"] as String}") - mappings("net.fabricmc:yarn:${properties["yarn_mappings"] as String}:v2") - modImplementation("net.fabricmc:fabric-loader:${properties["loader_version"] as String}") - - // Meteor - using local JAR for consistent version - modImplementation(files("libs/meteor-client-${properties["meteor_version"] as String}.jar")) + // Minecraft + minecraft(libs.minecraft) + mappings(variantOf(libs.yarn) { classifier("v2") }) + modImplementation(libs.fabric.loader) - // Compile-time access to Orbit event bus (provided by Meteor at runtime) - compileOnly("meteordevelopment:orbit:0.2.4") + // Meteor Client + modImplementation(libs.meteor.client) + compileOnly(libs.orbit) // NanoHTTPD for HTTP server and WebSocket support - modImplementation("org.nanohttpd:nanohttpd:2.3.1")!!.let { include(it) } - modImplementation("org.nanohttpd:nanohttpd-websocket:2.3.1")!!.let { include(it) } + modImplementation(libs.nanohttpd.core) + include(libs.nanohttpd.core) + modImplementation(libs.nanohttpd.websocket) + include(libs.nanohttpd.websocket) // JSON serialization for WebSocket messages - modImplementation("com.google.code.gson:gson:2.11.0")!!.let { include(it) } + modImplementation(libs.gson) + include(libs.gson) // Testing - testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2") + testImplementation(libs.junit.api) + testRuntimeOnly(libs.junit.engine) } tasks { processResources { val propertyMap = mapOf( "version" to project.version, - "mc_version" to project.property("minecraft_version"), + "mc_version" to libs.versions.minecraft.get(), ) inputs.properties(propertyMap) diff --git a/gradle.properties b/gradle.properties index 37bb9f0..017758d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,15 +1,6 @@ org.gradle.jvmargs=-Xmx4G org.gradle.configuration-cache=false -# Fabric Properties (https://fabricmc.net/develop) -minecraft_version=1.21.10 -yarn_mappings=1.21.10+build.2 -loader_version=0.17.3 - # Mod Properties -mod_version=0.2.0 maven_group=com.cope.meteorwebgui archives_base_name=meteor-webgui - -# Dependencies -meteor_version=1.21.10-32 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..7db5935 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,44 @@ +[versions] +# Mod Properties +mod-version = "0.2.0" + +# Minecraft +minecraft = "1.21.10" +yarn-mappings = "1.21.10+build.2" +fabric-loader = "0.17.3" +loom = "1.12-SNAPSHOT" + +# Dependencies +meteor = "1.21.10-SNAPSHOT" +orbit = "0.2.4" + +# WebServer and WebSocket +nanohttpd = "2.3.1" +gson = "2.11.0" + +# Testing +junit = "5.10.2" + +[libraries] +# Minecraft +minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } +yarn = { module = "net.fabricmc:yarn", version.ref = "yarn-mappings" } +fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" } + +# Meteor +meteor-client = { module = "meteordevelopment:meteor-client", version.ref = "meteor" } +orbit = { module = "meteordevelopment:orbit", version.ref = "orbit" } + +# WebServer +nanohttpd-core = { module = "org.nanohttpd:nanohttpd", version.ref = "nanohttpd" } +nanohttpd-websocket = { module = "org.nanohttpd:nanohttpd-websocket", version.ref = "nanohttpd" } + +# JSON +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } + +# Testing +junit-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } +junit-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } + +[plugins] +fabric-loom = { id = "fabric-loom", version.ref = "loom" } diff --git a/libs/meteor-client-1.21.10-32.jar b/libs/meteor-client-1.21.10-32.jar deleted file mode 100644 index c1023b9..0000000 Binary files a/libs/meteor-client-1.21.10-32.jar and /dev/null differ diff --git a/libs/meteor-client-1.21.8-56.jar b/libs/meteor-client-1.21.8-56.jar deleted file mode 100644 index 6bb0625..0000000 Binary files a/libs/meteor-client-1.21.8-56.jar and /dev/null differ