aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
diff options
context:
space:
mode:
author alemidev <me@alemi.dev>2023-01-24 01:07:30 +0100
committer alemidev <me@alemi.dev>2023-01-24 01:07:30 +0100
commit2e00a3ee4bd5740e47fe4ca5fd6d3bd9bc8af070 (patch)
tree01100cc86bc67a375475e1016dfeba3426deac95 /build.gradle
chore: boilerplate
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle174
1 files changed, 174 insertions, 0 deletions
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..0b845ce
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,174 @@
+buildscript {
+ repositories {
+ maven { url = 'https://maven.minecraftforge.net' }
+ mavenCentral()
+ }
+ dependencies {
+ classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
+ }
+}
+apply plugin: 'net.minecraftforge.gradle'
+// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
+apply plugin: 'eclipse'
+apply plugin: 'maven-publish'
+
+version = '0.1'
+group = 'co.fantabos.boscovicino' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
+archivesBaseName = 'boscovicino'
+
+java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8.
+
+println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
+minecraft {
+ // The mappings can be changed at any time, and must be in the following format.
+ // Channel: Version:
+ // snapshot YYYYMMDD Snapshot are built nightly.
+ // stable # Stables are built at the discretion of the MCP team.
+ // official MCVersion Official field/method names from Mojang mapping files
+ //
+ // You must be aware of the Mojang license when using the 'official' mappings.
+ // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md
+ //
+ // Use non-default mappings at your own risk. they may not always work.
+ // Simply re-run your setup task after changing the mappings to update your workspace.
+ mappings channel: 'official', version: '1.16.5'
+ // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
+
+ // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
+
+ // Default run configurations.
+ // These can be tweaked, removed, or duplicated as needed.
+ runs {
+ client {
+ workingDirectory project.file('run')
+
+ // Recommended logging data for a userdev environment
+ // The markers can be changed as needed.
+ // "SCAN": For mods scan.
+ // "REGISTRIES": For firing of registry events.
+ // "REGISTRYDUMP": For getting the contents of all registries.
+ property '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
+ property 'forge.logging.console.level', 'debug'
+
+ mods {
+ bscv {
+ source sourceSets.main
+ }
+ }
+ }
+
+ server {
+ workingDirectory project.file('run')
+
+ // Recommended logging data for a userdev environment
+ // The markers can be changed as needed.
+ // "SCAN": For mods scan.
+ // "REGISTRIES": For firing of registry events.
+ // "REGISTRYDUMP": For getting the contents of all registries.
+ property '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
+ property 'forge.logging.console.level', 'debug'
+
+ mods {
+ bscv {
+ source sourceSets.main
+ }
+ }
+ }
+
+ data {
+ workingDirectory project.file('run')
+
+ // Recommended logging data for a userdev environment
+ // The markers can be changed as needed.
+ // "SCAN": For mods scan.
+ // "REGISTRIES": For firing of registry events.
+ // "REGISTRYDUMP": For getting the contents of all registries.
+ property '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
+ property 'forge.logging.console.level', 'debug'
+
+ // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
+ args '--mod', 'bsvc', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
+
+ mods {
+ bscv {
+ source sourceSets.main
+ }
+ }
+ }
+ }
+}
+
+// Include resources generated by data generators.
+sourceSets.main.resources { srcDir 'src/generated/resources' }
+
+dependencies {
+ // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
+ // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
+ // The userdev artifact is a special name and will get all sorts of transformations applied to it.
+ minecraft 'net.minecraftforge:forge:1.16.5-36.2.39'
+
+ // You may put jars on which you depend on in ./libs or you may define them like so..
+ // compile "some.group:artifact:version:classifier"
+ // compile "some.group:artifact:version"
+
+ // Real examples
+ // compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
+ // compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
+
+ // The 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
+ // provided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
+
+ // These dependencies get remapped to your current MCP mappings
+ // deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev'
+
+ // For more info...
+ // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
+ // http://www.gradle.org/docs/current/userguide/dependency_management.html
+
+}
+
+// Example for how to get properties into the manifest for reading by the runtime..
+jar {
+ manifest {
+ attributes([
+ "Specification-Title": "bscv",
+ "Specification-Vendor": "ftbsc",
+ "Specification-Version": "1", // We are version 1 of ourselves
+ "Implementation-Title": project.name,
+ "Implementation-Version": "${version}",
+ "Implementation-Vendor" :"ftbsc",
+ "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
+ ])
+ }
+}
+
+// Example configuration to allow publishing using the maven-publish task
+// This is the preferred method to reobfuscate your jar file
+jar.finalizedBy('reobfJar')
+// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing
+//publish.dependsOn('reobfJar')
+
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ artifact jar
+ }
+ }
+ repositories {
+ maven {
+ url "file:///${project.projectDir}/mcmodsrepo"
+ }
+ }
+}