diff options
Diffstat (limited to 'build.gradle')
| -rw-r--r-- | build.gradle | 179 |
1 files changed, 25 insertions, 154 deletions
diff --git a/build.gradle b/build.gradle index 97ff178..f3e0e2f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,190 +1,61 @@ plugins { id 'java-library' - id 'maven-publish' - id 'net.neoforged.moddev' version '2.0.143' + id 'eclipse' id 'idea' + id 'net.neoforged.moddev' version '2.0.5-beta' } -tasks.named('wrapper', Wrapper).configure { - // Define wrapper values here so as to not have to always do so when updating gradlew.properties. - // Switching this to Wrapper.DistributionType.ALL will download the full gradle sources that comes with - // documentation attached on cursor hover of gradle classes and methods. However, this comes with increased - // file size for Gradle. If you do switch this to ALL, run the Gradle wrapper task twice afterwards. - // (Verify by checking gradle/wrapper/gradle-wrapper.properties to see if distributionUrl now points to `-all`) +tasks.named('wrapper', Wrapper) { distributionType = Wrapper.DistributionType.BIN } -version = mod_version -group = mod_group_id +version = project.findProperty('mod_version') ?: '1.0.0' +group = project.findProperty('mod_group_id') ?: 'com.coasteen' +base.archivesName = project.findProperty('mod_id') ?: 'armcontainers' -sourceSets.main.resources { - // Include resources generated by data generators. - srcDir('src/generated/resources') - - // Exclude common development only resources from finalized outputs - exclude("**/*.bbmodel") // BlockBench project files - - exclude("src/generated/**/.cache") // datagen cache files -} - -repositories { - // Add here additional repositories if required by some of the dependencies below. -} - -base { - archivesName = mod_id -} - -// Mojang ships Java 21 to end users in 1.21.1, so mods should target Java 21. java.toolchain.languageVersion = JavaLanguageVersion.of(21) neoForge { - // Specify the version of NeoForge to use. - version = project.neo_version + version = project.findProperty('neo_version') ?: '21.1.248' parchment { - mappingsVersion = project.parchment_mappings_version - minecraftVersion = project.parchment_minecraft_version + mappingsVersion = project.findProperty('parchment_mappings_version') ?: '2024.07.28' + minecraftVersion = project.findProperty('parchment_minecraft_version') ?: '1.21' } - // This line is optional. Access Transformers are automatically detected - // accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg') - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. runs { client { client() - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - server { - server() - programArgument '--nogui' - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - type = "gameTestServer" - systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id - } - - data { - data() - // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it - // gameDirectory = project.file('run-data') - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() - } - - // applies to all the run configs above - 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' - - // 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 - logLevel = org.slf4j.event.Level.DEBUG + systemProperty 'neoforge.enabledGameTestNamespaces', (project.findProperty('mod_id') ?: 'armcontainers') } } mods { - // define mod <-> source bindings - // these are used to tell the game which sources are for which mod - // multi mod projects should define one per mod - "${mod_id}" { + "${project.findProperty('mod_id') ?: 'armcontainers'}" { sourceSet(sourceSets.main) } } } -// Sets up a dependency configuration called 'localRuntime'. -// This configuration should be used instead of 'runtimeOnly' to declare -// a dependency that will be present for runtime testing but that is -// "optional", meaning it will not be pulled by dependents of this mod. -configurations { - runtimeClasspath.extendsFrom localRuntime +repositories { + mavenCentral() + maven { + name = "CurseMaven" + url = "https://www.cursemaven.com" + content { + includeGroup "curse.maven" + } + } } dependencies { - // Example optional mod dependency with JEI - // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime - // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" - // compileOnly "mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}" - // We add the full version to localRuntime, not runtimeOnly, so that we do not publish a dependency on it - // localRuntime "mezz.jei:jei-${mc_version}-neoforge:${jei_version}" - - // Example mod dependency using a mod jar from ./libs with a flat dir repository - // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar - // The group id is ignored when searching -- in this case, it is "blank" - // implementation "blank:coolmod-${mc_version}:${coolmod_version}" - - // Example mod dependency using a file as dependency - // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar") - - // Example project dependency using a sister or child project: - // implementation project(":myproject") - - // For more info: - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html -} - -// This block of code expands all declared replace properties in the specified resource targets. -// A missing property will result in an error. Properties are expanded using ${} Groovy notation. -var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) { - var replaceProperties = [ - minecraft_version : minecraft_version, - minecraft_version_range: minecraft_version_range, - neo_version : neo_version, - loader_version_range : loader_version_range, - mod_id : mod_id, - mod_name : mod_name, - mod_license : mod_license, - mod_version : mod_version, - ] - inputs.properties replaceProperties - expand replaceProperties - from "src/main/templates" - into "build/generated/sources/modMetadata" -} -// Include the output of "generateModMetadata" as an input directory for the build -// this works with both building through Gradle and the IDE. -sourceSets.main.resources.srcDir generateModMetadata -// To avoid having to run "generateModMetadata" manually, make it run on every project reload -neoForge.ideSyncTask generateModMetadata - -// Example configuration to allow publishing using the maven-publish plugin -publishing { - publications { - register('mavenJava', MavenPublication) { - from components.java - } - } - repositories { - maven { - url "file://${project.projectDir}/repo" - } + if (project.hasProperty('create_curseforge_file_id')) { + implementation "curse.maven:create-328085:${project.create_curseforge_file_id}" + } else { + implementation fileTree(dir: 'libs', include: ['*.jar']) } } tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} - -// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior. -idea { - module { - downloadSources = true - downloadJavadoc = true - } + options.encoding = 'UTF-8' } |
