-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuild.gradle
134 lines (110 loc) · 3.58 KB
/
build.gradle
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
plugins {
id 'fabric-loom' version '1.1-SNAPSHOT'
id 'maven-publish'
id "com.modrinth.minotaur" version "2.+"
id 'com.matthewprenger.cursegradle' version '1.4.0'
}
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
archivesBaseName = "${project.mod_name} ${project.mod_version} (${project.minecraft_version})"
version = project.mod_version
group = project.maven_group
def CHANGELOG = new File("./gradle", "CHANGELOG.md").text
def SUPPORTED_VERSIONS = Arrays.asList(project.supported_versions.split(','))
repositories {
maven {
name = 'Cloth Config'
url = 'https://maven.shedaniel.me'
}
maven {
name = 'TerraformersMC'
url = 'https://maven.terraformersmc.com/releases'
}
}
dependencies {
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}"
//Cloth Config
modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config}") {
exclude(group: "net.fabricmc.fabric-api")
}
include("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config}")
//Modmenu
modImplementation("com.terraformersmc:modmenu:${project.modmenu}") {
exclude(group: "net.fabricmc.fabric-api")
}
}
processResources {
inputs.property "version", project.version
filesMatching("fabric.mod.json") {
expand "version": project.version
}
}
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
it.options.release = 17
}
java {
withSourcesJar()
}
jar {
from("LICENSE") {
rename { "${it}_${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 {
}
}
import com.modrinth.minotaur.dependencies.ModDependency
if (System.getenv().MODRINTH_TOKEN) modrinth {
projectId = project.modrinth_id
versionName = archivesBaseName
versionNumber = "${project.mod_version}-${project.minecraft_version}"
versionType = "beta"
changelog = CHANGELOG
uploadFile = tasks.remapJar
gameVersions = SUPPORTED_VERSIONS
loaders = ["fabric"]
dependencies {
required.project "fabric-api"
embedded.project "cloth-config"
optional.project "modmenu"
}
}
if (System.getenv().CURSEFORGE_API_KEY) curseforge {
apiKey = System.getenv().CURSEFORGE_API_KEY
project {
id = project.curseforge_id
addGameVersion "Fabric"
for (final def cf_ver in SUPPORTED_VERSIONS) addGameVersion cf_ver
changelog = CHANGELOG
releaseType = "beta"
mainArtifact(remapJar) {
displayName = archivesBaseName
relations {
requiredDependency "fabric-api"
embeddedLibrary "cloth-config"
optionalDependency 'modmenu'
}
}
afterEvaluate { uploadTask.dependsOn(remapJar) }
}
options { forgeGradleIntegration = false }
}