-
Notifications
You must be signed in to change notification settings - Fork 3
/
build.gradle
151 lines (135 loc) · 6.62 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
plugins {
id 'fabric-loom' version '1.7-SNAPSHOT'
id 'com.matthewprenger.cursegradle' version '1.4.0'
id "com.modrinth.minotaur" version "2.4.3"
id "com.github.breadmoirai.github-release" version "2.4.1"
}
version = "${project.mod_version}+${project.minecraft_version}"
group = project.maven_group
repositories {
// Add repositories to retrieve artifacts from in here.
// You should only use this when depending on other mods because
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
maven {
name = 'Modrinth'
url = 'https://api.modrinth.com/maven'
content {
includeGroup 'maven.modrinth'
}
}
maven { url "https://jitpack.io" }
}
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.fabric_loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
// include(modImplementation("maven.modrinth:ranged-weapon-api:${project.ranged_weapon_api_version}"))
implementation include("com.github.ZsoltMolnarrr:TinyConfig:${project.tiny_config_version}")
}
processResources {
inputs.property "version", project.version
filteringCharset "UTF-8"
filesMatching("fabric.mod.json") {
expand(project.properties)
}
}
def targetJavaVersion = 21
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"
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
it.options.release = targetJavaVersion
}
}
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
archivesBaseName = project.archives_base_name
// 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.archives_base_name}"}
}
}
ext.changelog_last_section = { ->
return new File("CHANGELOG.md").text.split('\n# ')[0]
}
if(project.hasProperty('release_type')) {
tasks.register("publishMod") {
dependsOn(build)
finalizedBy(tasks.curseforge)
finalizedBy(tasks.modrinth)
finalizedBy(tasks.githubRelease)
}
curseforge {
apiKey = System.getenv("CURSEFORGE_API_KEY")
project {
id = System.getenv("CURSEFORGE_PROJECT_ID")
changelog = changelog_last_section()
changelogType = 'markdown'
releaseType = release_type
addGameVersion "${project.minecraft_version}"
addGameVersion "${project.minecraft_compat_version}"
addGameVersion "Fabric"
relations {
requiredDependency 'fabric-api'
requiredDependency 'ranged-weapon-api'
}
mainArtifact(remapJar)
afterEvaluate {
uploadTask.dependsOn(remapJar)
}
options {
forgeGradleIntegration = false
}
}
}
modrinth {
token = System.getenv("MODRINTH_API_KEY")
projectId = System.getenv("MODRINTH_PROJECT_ID") // This can be the project ID or the slug. Either will work!
versionNumber = "${version}" // You don't need to set this manually. Will fail if Modrinth has this version already
versionType = release_type // This is the default -- can also be `beta` or `alpha`
uploadFile = remapJar // With Loom, this MUST be set to `remapJar` instead of `jar`!
gameVersions = ["${project.minecraft_version}", "${project.minecraft_compat_version}"] // Must be an array, even with only one version
loaders = ["fabric"] // Must also be an array - no need to specify this if you're using Loom or ForgeGradle
changelog = changelog_last_section()
dependencies { // A special DSL for creating dependencies
// scope.type
// The scope can be `required`, `optional`, `incompatible`, or `embedded`
// The type can either be `project` or `version`
required.project "fabric-api"
required.project "ranged-weapon-api"
}
}
githubRelease {
token System.getenv("GH_API_KEY") // This is your personal access token with Repo permissions
owner System.getenv("GH_OWNER") // default is the last part of your group. Eg group: "com.github.breadmoirai" => owner: "breadmoirai"
repo System.getenv("GH_REPO") // by default this is set to your project name
tagName "${version}" // by default this is set to "v${project.version}"
targetCommitish System.getenv("GH_BRANCH") // by default this is set to "main"
releaseName "Release" // Release title, by default this is the same as the tagName
generateReleaseNotes false // Generate release notes automatically, if true and body is present, body will be pre-pended, if name is not given, one will be generated by the tag
// body.set "" // by default this is empty
draft false // by default this is true
prerelease release_type != "release" // by default this is false
// releaseAssets jar.destinationDir.listFiles // this points to which files you want to upload as assets with your release, by default this is empty
allowUploadToExisting false // Setting this to true will allow this plugin to upload artifacts to a release if it found an existing one. If overwrite is set to true, this option is ignored.
overwrite false // by default false; if set to true, will delete an existing release with the same tag and name
// dryRun true // by default false; you can use this to see what actions would be taken without making a release
apiEndpoint "https://api.github.com" // should only change for github enterprise users
client // This is the okhttp client used for http requests
}
}