mirror of
https://github.com/TeamMidnightDust/Decorative.git
synced 2025-12-13 03:45:08 +01:00
182 lines
5.2 KiB
Groovy
Executable File
182 lines
5.2 KiB
Groovy
Executable File
plugins {
|
|
id 'fabric-loom' version '1.7-SNAPSHOT'
|
|
id 'maven-publish'
|
|
id "me.shedaniel.unified-publishing" version "0.1.+"
|
|
}
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_21
|
|
targetCompatibility = JavaVersion.VERSION_21
|
|
|
|
archivesBaseName = project.archives_base_name
|
|
version = project.mod_version
|
|
group = project.maven_group
|
|
|
|
repositories {
|
|
maven { url "https://jitpack.io" }
|
|
maven { url "https://maven.blamejared.com" }
|
|
maven { url "https://maven.terraformersmc.com/releases" }
|
|
maven {
|
|
url = "https://api.modrinth.com/maven"
|
|
}
|
|
maven { url 'https://maven.nucleoid.xyz' }
|
|
}
|
|
loom {
|
|
runs {
|
|
//
|
|
// This adds a new gradle task that runs the datagen API: "gradlew runDatagenClient"
|
|
//
|
|
datagenClient {
|
|
inherit client
|
|
name "Data Generation"
|
|
vmArg "-Dfabric-api.datagen"
|
|
vmArg "-Dfabric-api.datagen.output-dir=${file("src/main/generated")}"
|
|
vmArg "-Dfabric-api.datagen.modid=decorative"
|
|
|
|
runDir "build/datagen"
|
|
}
|
|
}
|
|
}
|
|
sourceSets {
|
|
main {
|
|
resources {
|
|
srcDirs += [
|
|
'src/main/generated'
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
//to change the versions see the gradle.properties file
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
|
|
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
|
|
|
// Fabric API. This is technically optional, but you probably want it anyway.
|
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
|
|
|
// modImplementation("vazkii.patchouli:Patchouli:${project.patchouli_version}"){
|
|
// exclude module: "fabric-api"
|
|
// }
|
|
|
|
modImplementation "maven.modrinth:midnightlib:${midnightlib_version}"
|
|
include "maven.modrinth:midnightlib:${midnightlib_version}"
|
|
|
|
modImplementation include("eu.pb4:polymer-core:${polymer_version}")
|
|
modImplementation include("eu.pb4:polymer-blocks:${polymer_version}")
|
|
modImplementation include("eu.pb4:polymer-resource-pack:${polymer_version}")
|
|
modImplementation include("eu.pb4:polymer-virtual-entity:${polymer_version}")
|
|
modImplementation include("eu.pb4:polymer-autohost:${polymer_version}")
|
|
modImplementation include("eu.pb4:factorytools:${factorytools_version}")
|
|
}
|
|
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand "version": project.version
|
|
}
|
|
}
|
|
|
|
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"
|
|
|
|
// Minecraft 1.17 (21w19a) upwards uses Java 16.
|
|
it.options.release = 21
|
|
}
|
|
|
|
java {
|
|
// 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 {
|
|
mavenJava(MavenPublication) {
|
|
// add all the jars that should be included when publishing to maven
|
|
artifact(remapJar) {
|
|
builtBy remapJar
|
|
}
|
|
artifact(sourcesJar) {
|
|
builtBy remapSourcesJar
|
|
}
|
|
}
|
|
}
|
|
|
|
// 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.
|
|
}
|
|
}
|
|
ext {
|
|
releaseChangelog = {
|
|
def changes = new StringBuilder()
|
|
changes << "## Decorative v$project.version for $project.minecraft_version\n[View the changelog](https://www.github.com/TeamMidnightDust/Decorative/commits/)"
|
|
def proc = "git log --max-count=1 --pretty=format:%s".execute()
|
|
proc.in.eachLine { line ->
|
|
def processedLine = line.toString()
|
|
if (!processedLine.contains("New translations") && !processedLine.contains("Merge") && !processedLine.contains("branch")) {
|
|
changes << "\n- ${processedLine.capitalize()}"
|
|
}
|
|
}
|
|
proc.waitFor()
|
|
return changes.toString()
|
|
}
|
|
}
|
|
|
|
unifiedPublishing {
|
|
project {
|
|
displayName = "Decorative v$project.version - Fabric $project.minecraft_version"
|
|
releaseType = "$project.release_type"
|
|
changelog = releaseChangelog()
|
|
gameVersions = []
|
|
gameLoaders = ["fabric","quilt"]
|
|
mainPublication remapJar
|
|
relations {
|
|
includes {
|
|
curseforge = "midnightlib"
|
|
modrinth = "midnightlib"
|
|
}
|
|
includes {
|
|
curseforge = "polymer"
|
|
modrinth = "polymer"
|
|
}
|
|
}
|
|
|
|
var CURSEFORGE_TOKEN = project.findProperty("CURSEFORGE_TOKEN") ?: System.getenv("CURSEFORGE_TOKEN")
|
|
if (CURSEFORGE_TOKEN != null) {
|
|
curseforge {
|
|
token = CURSEFORGE_TOKEN
|
|
id = rootProject.curseforge_id
|
|
gameVersions.addAll "Java 21", project.minecraft_version
|
|
}
|
|
}
|
|
|
|
var MODRINTH_TOKEN = project.findProperty("MODRINTH_TOKEN") ?: System.getenv("MODRINTH_TOKEN")
|
|
if (MODRINTH_TOKEN != null) {
|
|
modrinth {
|
|
token = MODRINTH_TOKEN
|
|
id = rootProject.modrinth_id
|
|
version = "$project.version"
|
|
gameVersions.addAll project.minecraft_version
|
|
}
|
|
}
|
|
}
|
|
}
|