plugins { id "idea" id "net.neoforged.moddev" version "2.0.74" id "dev.ithundxr.silk" version "0.11.15" id "me.modmuss50.mod-publish-plugin" version "0.8.3" } apply from: "./gradle/java.gradle" apply from: "gradle/property_loader.gradle" group = "com.${mod_author}.${mod_id}" version = "${minecraft_version}-${mod_version}" archivesBaseName = mod_id idea { module { downloadJavadoc = true downloadSources = true } } neoForge { version = project.neo_version // TODO - Try turning this on later validateAccessTransformers = false if (file('src/main/resources/META-INF/accesstransformer.cfg').exists()) { accessTransformers.from "src/main/resources/META-INF/accesstransformer.cfg" } parchment { minecraftVersion = minecraft_version mappingsVersion = parchment_version } mods { "$mod_id" { sourceSet sourceSets.main } } runs { // applies to all the run configs below configureEach { systemProperty 'forge.logging.markers', '' systemProperty 'forge.logging.console.level', 'info' jvmArguments = ["-XX:+IgnoreUnrecognizedVMOptions", "-XX:+AllowEnhancedClassRedefinition"] //jvmArgs("-XX:-OmitStackTraceInFastThrow") // uncomment when you get exceptions with null messages etc //jvmArgs '-XX:+UnlockCommercialFeatures' // uncomment for profiling systemProperty 'mixin.debug.export', 'true' systemProperty 'mixin.debug.verbose', 'true' //programArgument '-mixin.config=create.mixins.json' //programArgument '-mixin.config=ponder.mixins.json' //systemProperty("mixin.env.remapRefMap", "true") //systemProperty("mixin.env.refMapRemappingFile", "${projectDir}/build/createSrgToMcp/output.srg") } client { client() gameDirectory = project.file('run') } server { server() gameDirectory = project.file('run/server') } data { data() gameDirectory = project.file('run') systemProperty 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP' systemProperty 'forge.logging.console.level', 'debug' programArguments.addAll("--mod", project.mod_id, "--all", "--output", file("src/generated/resources/").getAbsolutePath(), "--existing", file("src/main/resources").getAbsolutePath()) } gameTestServer { type = "gameTestServer" gameDirectory = project.file('run/gametest') } } } sourceSets.main { resources { srcDir 'src/generated/resources' exclude '.cache/' } } repositories { maven { url = "https://maven.createmod.net" } // Create, Ponder, Flywheel maven { url = "https://raw.githubusercontent.com/Fuzss/modresources/main/maven/" } // ForgeConfigAPIPort maven { url = "https://mvn.devos.one/snapshots" } // Registrate maven { url = "https://maven.blamejared.com" } // JEI, Vazkii's Mods maven { // location of the maven for Curios API url = "https://maven.theillusivec4.top/" } maven { // location of maven for CC: Tweaked name = "squiddev" url = "https://squiddev.cc/maven/" } maven { url = 'https://www.cursemaven.com' content { includeGroup "curse.maven" } } maven { name = "Modrinth" url = "https://api.modrinth.com/maven" content { includeGroup "maven.modrinth" } } maven { url "https://jitpack.io" content { includeGroup "com.github.llamalad7.mixinextras" } } maven { url "https://maven.saps.dev/minecraft" content { includeGroup "dev.latvian.mods" includeGroup "dev.ftb.mods" } } maven { url "https://maven.architectury.dev/" content { includeGroup "dev.architectury" } } mavenLocal() flatDir { dirs 'libs' } } dependencies { implementation 'org.jetbrains:annotations:22.0.0' jarJar(implementation("com.oierbravo.mechanicals:Mechanicals:${mechanicals}")) implementation("com.simibubi.create:create-${minecraft_version}:${create_version}:slim") { transitive = false } implementation("net.createmod.ponder:Ponder-NeoForge-${minecraft_version}:${ponder_version}") compileOnly("dev.engine-room.flywheel:flywheel-neoforge-api-${minecraft_version}:${flywheel_version}") runtimeOnly("dev.engine-room.flywheel:flywheel-neoforge-${minecraft_version}:${flywheel_version}") implementation("com.tterrag.registrate:Registrate:${registrate_version}") compileOnly("top.theillusivec4.curios:curios-neoforge:${curios_version}+${curios_minecraft_version}:api") runtimeOnly("top.theillusivec4.curios:curios-neoforge:${curios_version}+${curios_minecraft_version}") implementation("curse.maven:jade-324717:${jade_id}") implementation("mezz.jei:jei-${jei_minecraft_version}-neoforge:${jei_version}") if (cc_tweaked_enable.toBoolean()) { compileOnly("cc.tweaked:cc-tweaked-${cc_tweaked_minecraft_version}-core-api:${cc_tweaked_version}") compileOnly("cc.tweaked:cc-tweaked-${cc_tweaked_minecraft_version}-forge-api:${cc_tweaked_version}") runtimeOnly("cc.tweaked:cc-tweaked-${cc_tweaked_minecraft_version}-forge:${cc_tweaked_version}") } if (kubejs_enabled.toBoolean()) { compileOnly("dev.architectury:architectury-neoforge:$architectury_version") //api("dev.latvian.mods:kubejs-neoforge:$kubejs_version") //interfaceInjectionData("dev.latvian.mods:kubejs-neoforge:$kubejs_version") // optional } } processResources { def buildProps = project.properties.clone() // Replaces FML's magic file.jarVersion string with the correct version at build time. buildProps.put('file', [jarVersion: project.version]) filesMatching(['META-INF/neoforge.mods.toml', 'pack.mcmeta']) { expand buildProps } } compileJava { options.compilerArgs = ['-Xdiags:verbose'] } jar { from('LICENSE') { rename { "${it}_${archivesBaseName}" } } } publishMods { file = jar.archiveFile changelog = rootProject.file("changes/${minecraft_version}-${mod_version}.md").text type = BETA version = "$minecraft_version-$mod_version" displayName = "$mod_name $mod_version for mc$minecraft_version" modLoaders.add("neoforge") var cfToken = System.getenv("CF_TOKEN") if(cfToken != null) { curseforge { accessToken = providers.environmentVariable("CF_TOKEN") projectId = "${curseforge_id}" minecraftVersions.add(minecraft_version) clientRequired = true serverRequired = true requires("create") optional("jei") } } var mrToken = System.getenv("MODRINTH_TOKEN") if(mrToken != null) { modrinth { accessToken = providers.environmentVariable("MODRINTH_TOKEN") projectId = "${modrinth_id}" minecraftVersions.add(minecraft_version) requires("create") optional("jei") } } }