-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
build.gradle.kts
115 lines (95 loc) · 3.88 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import net.fabricmc.loom.task.RemapJarTask
import net.fabricmc.loom.task.RemapSourcesJarTask
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.text.MessageFormat.format as messageFormat
plugins {
id("fabric-loom")
id("maven-publish")
id("org.jetbrains.kotlin.jvm")
}
repositories {
maven { url = uri("https://maven.fabricmc.net/") }
maven { url = uri("https://maven.terraformersmc.com/releases/") }
maven { url = uri("https://maven.shedaniel.me") }
}
dependencies {
minecraft("com.mojang:minecraft:${project.extra["minecraft_version"]}")
mappings("net.fabricmc:yarn:${project.extra["yarn_mappings"]}:v2")
modImplementation("net.fabricmc:fabric-loader:${project.extra["loader_version"]}")
// DEPENDENCY: Fabric API
modImplementation("net.fabricmc.fabric-api:fabric-api:${project.extra["fabric_version"]}")
// DEPENDENCY: Fabric Language Kotlin
modImplementation("net.fabricmc:fabric-language-kotlin:${project.extra["fabric_kotlin_version"]}")
// DEPENDENCY: Cloth Config 2
modApi("me.shedaniel.cloth:cloth-config-fabric:${project.extra["cloth_config_version"]}") {
exclude("net.fabricmc.fabric-api", "fabric-api")
}
include("me.shedaniel.cloth:cloth-config-fabric:${project.extra["cloth_config_version"]}") {
exclude("net.fabricmc.fabric-api", "fabric-api")
}
//COMPATIBILITY: ModMenu
modCompileOnly("com.terraformersmc:modmenu:${project.extra["modmenu_version"]}")
// Test environiment with some mods
modRuntimeOnly("me.shedaniel:RoughlyEnoughItems-fabric:${project.extra["rei_version"]}") {
exclude("me.shedaniel.cloth")
}
}
base.archivesBaseName = "${project.extra["archives_base_name"]}"
group = "${project.extra["maven_group"]}"
version = "${project.extra["mod_version"]}"
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType<KotlinCompile> { kotlinOptions.jvmTarget = "17" }
tasks.withType<JavaCompile> { options.encoding = "UTF-8" }
tasks.processResources {
inputs.property("version", project.version)
filesMatching("fabric.mod.json") {
expand("version" to project.version)
}
}
val remapJar = tasks.getByName<RemapJarTask>("remapJar")
val remapSourcesJar = tasks.getByName<RemapSourcesJarTask>("remapSourcesJar")
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this task, sources will not be generated.
val sourcesJar by tasks.creating(Jar::class) {
archiveClassifier.set("sources")
from(sourceSets["main"].allSource)
}
tasks.jar { from("LICENSE") }
// configure the maven publication
publishing {
publications {
create("mavenJava", MavenPublication::class.java) {
groupId = project.group.toString()
artifactId = project.name.toLowerCase()
version = project.version.toString()
// add all the jars that should be included when publishing to maven
artifact(remapJar) { builtBy(remapJar) }
artifact(sourcesJar) { builtBy(remapSourcesJar) }
}
}
// select the repositories you want to publish to
repositories { mavenLocal() }
}
tasks.create("printInfo") {
doLast {
println(
messageFormat(
"""
----- BEGIN -----
### Release Info
This release was built for Minecraft **{0}**, with Fabric Loader **{1}**, Fabric API **{2}** and Fabric Language Kotlin **{3}**.
Mod Menu Integration was tested using version **{4}**.
------ END ------""".trimIndent(),
project.extra["minecraft_version"],
project.extra["loader_version"],
project.extra["fabric_version"],
project.extra["fabric_kotlin_version"],
project.extra["modmenu_version"]
)
)
}
}