import java.nio.file.Paths plugins { id 'fabric-loom' version "$loom_version" id 'com.github.gmazzo.buildconfig' version "$buildconfig_version" } var USING_GIT = Paths.get(System.getProperty("user.dir")).resolve(".git").toFile().exists() var GIT_HASH = execute("git rev-parse --short HEAD") version = project.mod_version group = project.maven_group buildConfig { buildConfigField(String, "NAME", project.mod_name) buildConfigField(String, "GROUP", project.group) buildConfigField(String, "VERSION", project.mod_version) buildConfigField(String, "BUILD_TIME", "${new Date(System.currentTimeMillis()).format("MM/dd/yyyy HH:mm")}") buildConfigField(Boolean, "USING_GIT", USING_GIT) buildConfigField(String, "HASH", GIT_HASH) buildConfigField(String, "BRANCH", "${execute("git branch --show-current")}") packageName "${project.group}.util" useJavaOutput() generateAtSync = true } sourceSets.main.java.srcDirs += "build/gen/buildconfig/src/main" base { archivesName = "${project.archives_base_name}-${GIT_HASH}" } repositories { mavenCentral() maven { url "https://jitpack.io" } maven { name = "meteor-maven" url = "https://maven.meteordev.org/releases" } } loom { accessWidenerPath = file("src/main/resources/nolongerhuman.accesswidener") } dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings loom.officialMojangMappings() modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" // Discord RPC / IPC include implementation("meteordevelopment:discord-ipc:1.1") include implementation("com.github.cattyngmd.catformat:catformat-core:${project.catformat_version}") include modImplementation("com.github.cattyngmd.catformat:catformat-fabric:${project.catformat_version}") } processResources { inputs.property "version", project.version inputs.property "minecraft_version", project.minecraft_version inputs.property "loader_version", project.loader_version filteringCharset "UTF-8" filesMatching("fabric.mod.json") { expand "version": project.version, "minecraft_version": project.minecraft_version, "loader_version": project.loader_version } } def targetJavaVersion = 21 tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { it.options.release = targetJavaVersion } } java { def javaVersion = JavaVersion.toVersion(targetJavaVersion) if (JavaVersion.current() < javaVersion) { toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) } withSourcesJar() } sourcesJar { dependsOn(generateBuildConfig) } jar { from("LICENSE") { rename { "${it}_${archives_base_name}" } } } tasks.withType(JavaCompile).configureEach { dependsOn(generateBuildConfig) } def execute(String cmd) { var output = providers.exec { commandLine cmd.split(" ") ignoreExitValue = true } return output.standardOutput.getAsText().getOrElse("nogit") .replaceAll("\n", "") }