diff --git a/build.gradle b/build.gradle index bf9a76c..646139b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version "${loom_version}" + id 'net.fabricmc.fabric-loom' version "${loom_version}" id 'maven-publish' id("io.freefair.lombok") version "9.0.0-rc2" id("com.gradleup.shadow") version '9.1.0' @@ -15,6 +15,11 @@ allprojects { archivesName = project.archives_base_name } + // Lombok 1.18.40+ is required for JDK 25 (class file major version 69). + lombok { + version = "1.18.46" + } + repositories { // Add repositories to retrieve artifacts from in here. // You should only use this when depending on other mods because @@ -46,23 +51,23 @@ loom { // If you remove this line, sources will not be generated. withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = JavaVersion.VERSION_25 + targetCompatibility = JavaVersion.VERSION_25 } tasks.withType(JavaCompile).configureEach { - it.options.release = 21 + it.options.release = 25 } } dependencies { // To change the versions see the gradle.properties file + // Minecraft 26.1+ is unobfuscated, so no mappings are required. minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings loom.officialMojangMappings() - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + implementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" // https://mvnrepository.com/artifact/software.amazon.awssdk/s3 shadow project(":bundler") shadow 'software.amazon.awssdk:s3:2.34.0' @@ -89,16 +94,21 @@ processResources { } } jar { + // Minecraft 26.1+ is unobfuscated, so there is no remapJar step; the shaded + // jar is the distributable mod. Keep the thin jar under a separate classifier. + archiveClassifier = 'dev' inputs.property "archivesName", project.base.archivesName from("LICENSE") { rename { "${it}_${inputs.properties.archivesName}" } } } -remapJar { - input = tasks.shadowJar.archiveFile +shadowJar { + archiveClassifier = '' } +assemble.dependsOn shadowJar + // configure the maven publication publishing { publications { diff --git a/bundler/test.mca b/bundler/test.mca new file mode 100644 index 0000000..3d19d2e Binary files /dev/null and b/bundler/test.mca differ diff --git a/gradle.properties b/gradle.properties index 13c286d..cd7c799 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,12 +2,14 @@ org.gradle.jvmargs=-Xmx4G org.gradle.parallel=true +# IntelliJ IDEA is not yet fully compatible with configuration cache, see: https://github.com/FabricMC/fabric-loom/issues/1349 +org.gradle.configuration-cache=false + # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.8 -yarn_mappings=1.21.8+build.1 -loader_version=0.16.14 -loom_version=1.11-SNAPSHOT +minecraft_version=26.2 +loader_version=0.19.3 +loom_version=1.17-SNAPSHOT # Mod Properties mod_version=1.0.0 @@ -15,4 +17,4 @@ maven_group=io.ib67.sfcraft archives_base_name=justbackup # Dependencies -fabric_version=0.129.0+1.21.8 \ No newline at end of file +fabric_version=0.154.2+26.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ff23a68..5dd3c01 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/main/java/io/ib67/sfcraft/BackupCommands.java b/src/main/java/io/ib67/sfcraft/BackupCommands.java index 27c341b..4288ba2 100644 --- a/src/main/java/io/ib67/sfcraft/BackupCommands.java +++ b/src/main/java/io/ib67/sfcraft/BackupCommands.java @@ -58,7 +58,7 @@ public class BackupCommands { CommandDispatcher dispatcher, CommandBuildContext registry, Commands.CommandSelection env) { dispatcher.register(literal("backup") - .requires(it -> it.hasPermission(4)) + .requires(Commands.hasPermission(Commands.LEVEL_OWNERS)) .then(literal("help").executes(this::cmdHelp)) .then(literal("list").executes(this::cmdList)) .then(literal("cancelrestore").executes(this::cmdCancelRestore)) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index c3f0f27..c9b0cab 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -19,9 +19,9 @@ "justbackup.mixins.json" ], "depends": { - "fabricloader": ">=0.16.14", - "minecraft": "~1.21.8", - "java": ">=21", + "fabricloader": ">=0.19.3", + "minecraft": "~26.2", + "java": ">=25", "fabric-api": "*" } } \ No newline at end of file diff --git a/src/main/resources/justbackup.mixins.json b/src/main/resources/justbackup.mixins.json index 50ccb18..b7cc1e7 100644 --- a/src/main/resources/justbackup.mixins.json +++ b/src/main/resources/justbackup.mixins.json @@ -1,7 +1,7 @@ { "required": true, "package": "io.ib67.sfcraft.mixin", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_25", "mixins": [ "MixinMinecraftServer", "MixinRegionBasedStorage"