• build.gradle
  • plugins {
        id 'fabric-loom' version '1.10-SNAPSHOT'
        id 'maven-publish'
    }
    
    version = project.mod_version
    group = project.maven_group
    
    base {
        archivesName = project.archives_base_name
    }
    
    loom {
        accessWidenerPath = file("src/main/resources/cosycritters.accesswidener")
    }
    
    repositories {
        maven {
            name = 'ParchmentMC'
            url = 'https://maven.parchmentmc.org'
        }
    }
    
    dependencies {
        minecraft "com.mojang:minecraft:${project.minecraft_version}"
        mappings loom.layered() {
            officialMojangMappings()
            parchment("org.parchmentmc.data:parchment-${project.parchment_version}@zip")
        }
        modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
    
        modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
    
        implementation 'com.google.code.gson:gson:2.10.1'
    }
    
    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,
                    "lowest_minecraft_version": project.lowest_minecraft_version,
                    "loader_version": project.loader_version,
                    "mod_id": project.archives_base_name
        }
    }
    
    def targetJavaVersion = 21
    tasks.withType(JavaCompile).configureEach {
        // ensure that the encoding is set to UTF-8, no matter what the system default is
        // this fixes some edge cases with special characters not displaying correctly
        // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
        // If Javadoc is generated, this must be specified in that task too.
        it.options.encoding = "UTF-8"
        if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
            it.options.release.set(targetJavaVersion)
        }
    }
    
    java {
        def javaVersion = JavaVersion.toVersion(targetJavaVersion)
        if (JavaVersion.current() < javaVersion) {
            toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
        }
        // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
        // if it is present.
        // If you remove this line, sources will not be generated.
        withSourcesJar()
    }
    
    jar {
        from("LICENSE") {
            rename { "${it}_${project.archivesBaseName}" }
        }
    }
    
    // configure the maven publication
    publishing {
        publications {
            create("mavenJava", MavenPublication) {
                artifactId = project.archives_base_name
                from components.java
            }
        }
    
        // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
        repositories {
            // Add repositories to publish to here.
            // Notice: This block does NOT have the same function as the block in the top level.
            // The repositories here will be used for publishing your artifact, not for
            // retrieving dependencies.
        }
    }