plugins { id 'java-library' id 'eclipse' id 'idea' id 'maven-publish' id 'net.neoforged.gradle.userdev' version '7.1.21' id "com.modrinth.minotaur" version "2.+" id 'net.darkhax.curseforgegradle' version '1.+' } tasks.named('wrapper', Wrapper).configure { distributionType = Wrapper.DistributionType.BIN } version = project.mod_version group = 'com.aizistral.nochatrestrictions' repositories { mavenLocal() } base { archivesName = 'NoChatRestrictions' } // Mojang ships Java 25 to end users in 26.1, so mods should target Java 25. java.toolchain.languageVersion = JavaLanguageVersion.of(25) tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation } runs { configureEach { // Recommended logging data for a userdev environment // The markers can be added/remove as needed separated by commas. // "SCAN": For mods scan. // "REGISTRIES": For firing of registry events. // "REGISTRYDUMP": For getting the contents of all registries. systemProperty 'forge.logging.markers', 'REGISTRIES' systemProperty 'mixin.env.disableRefMap', 'true' // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels systemProperty 'forge.logging.console.level', 'info' modSource project.sourceSets.main } client { systemProperty 'forge.enabledGameTestNamespaces', 'nochatrestrictions' } server { systemProperty 'forge.enabledGameTestNamespaces', 'nochatrestrictions' argument '--nogui' } } configurations { runtimeClasspath.extendsFrom localRuntime } dependencies { implementation "net.neoforged:neoforge:${neo_version}" } tasks.withType(ProcessResources).configureEach { var replaceProperties = [ mod_version: manifest_version ] inputs.properties replaceProperties filesMatching(['META-INF/neoforge.mods.toml']) { expand replaceProperties } } jar { manifest { attributes([ "Specification-Title": "NoChatRestrictions", "Specification-Vendor": "Aizistral", "Specification-Version": project.manifest_version, "Implementation-Title": project.name, "Implementation-Version": project.manifest_version, "Implementation-Vendor" :"NoChatRestrictions", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } task curseforge(type: net.darkhax.curseforgegradle.TaskPublishCurseForge) { disableVersionDetection() apiToken = findProperty('curseKey') ?: '0' def projectId = '1442925' def mainFile = upload(projectId, jar) mainFile.changelogType = 'markdown' mainFile.changelog = rootProject.file("../CHANGELOG.md").text mainFile.releaseType = 'release' mainFile.addModLoader('NeoForge') mainFile.addJavaVersion('Java 25') mainFile.addGameVersion(project.minecraft_version) } modrinth { token = findProperty('modrinthKey') ?: '0' projectId = "z440MEwJ" versionNumber = project.version versionName = "No Chat Restrictions " + project.version versionType = "release" changelog = rootProject.file("../CHANGELOG.md").text uploadFile = jar gameVersions = [ project.minecraft_version ] loaders = [ 'neoforge' ] } task upload { dependsOn('modrinth') dependsOn('curseforge') }