forked from TechnicJelle/BlueMapPlayerControl
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
141 lines (121 loc) · 3.82 KB
/
build.gradle
File metadata and controls
141 lines (121 loc) · 3.82 KB
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
plugins {
id "java"
}
group = "com.onemb"
version = "2.0.0"
ext.pluginVersion = "2.0.0"
ext.javaTarget = 25
ext.paperTarget = "26.1.2"
def buildNumberFile = file("build-number.txt")
def releaseBuildNumber = new java.util.concurrent.atomic.AtomicReference<String>()
def serverDirs = [
file("servers/Paper-1.21.11"),
file("servers/Paper-26.1.2")
]
def localCompileJars = files(
"servers/Paper-26.1.2/libraries/io/papermc/paper/paper-api/26.1.2.build.42-alpha/paper-api-26.1.2.build.42-alpha.jar",
"servers/Paper-26.1.2/plugins/bluemap-5.20-paper.jar",
"servers/Paper-26.1.2/plugins/PlaceholderAPI-2.12.3-DEV-265.jar"
) + fileTree("servers/Paper-26.1.2/libraries") {
include "**/*.jar"
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(javaTarget)
}
}
tasks.withType(JavaCompile).configureEach {
options.encoding = "UTF-8"
options.release = javaTarget
options.compilerArgs.add("-Xlint:deprecation")
}
tasks.register("prepareBuildNumber") {
group = "build"
description = "Advances the persistent three-digit build number for the next jar."
outputs.upToDateWhen { false }
doLast {
int lastBuildNumber = buildNumberFile.isFile() ? buildNumberFile.text.trim().toInteger() : 4
int nextBuildNumber = lastBuildNumber + 1
releaseBuildNumber.set(String.format("%03d", nextBuildNumber))
buildNumberFile.text = releaseBuildNumber.get() + System.lineSeparator()
logger.lifecycle("Using build number ${releaseBuildNumber.get()}")
}
}
def releaseVersion = providers.provider {
if (releaseBuildNumber.get() == null) {
throw new GradleException("Build number has not been prepared")
}
"${pluginVersion}-${releaseBuildNumber.get()}-j${javaTarget}-${paperTarget}"
}
dependencies {
compileOnly localCompileJars
}
tasks.processResources {
dependsOn(tasks.named("prepareBuildNumber"))
inputs.property("version", releaseVersion)
inputs.property("pluginVersion", pluginVersion)
inputs.property("javaTarget", javaTarget)
inputs.property("paperTarget", paperTarget)
filesMatching("plugin.yml") {
expand(version: pluginVersion)
}
filesMatching("build-info.properties") {
expand(
version: pluginVersion,
pluginVersion: pluginVersion,
buildNumber: releaseBuildNumber.get(),
javaTarget: javaTarget,
paperTarget: paperTarget
)
}
}
tasks.jar {
dependsOn(tasks.named("prepareBuildNumber"))
archiveFileName = providers.provider {
"1MB-BlueMap-MapHide-v${releaseVersion.get()}.jar"
}
}
tasks.register("deployServers") {
group = "build"
description = "Copies the built jar into both local Paper plugin folders and disables older active copies."
dependsOn(tasks.jar)
doLast {
File builtJar = tasks.jar.archiveFile.get().asFile
serverDirs.each { File serverDir ->
File pluginsDir = new File(serverDir, "plugins")
if (!pluginsDir.isDirectory()) {
logger.lifecycle("Skipping ${pluginsDir}: directory does not exist")
return
}
File[] oldJars = pluginsDir.listFiles({ File file ->
file.isFile()
&& file.name.endsWith(".jar")
&& (file.name.startsWith("1MB-BlueMap-MapHide-")
|| file.name.startsWith("1MB-MapHide-")
|| file.name.startsWith("BlueMapPlayerControl-"))
} as FileFilter) ?: []
oldJars.each { File oldJar ->
File disabled = new File(oldJar.parentFile, oldJar.name + ".disabled")
int suffix = 1
while (disabled.exists()) {
disabled = new File(oldJar.parentFile, oldJar.name + ".disabled." + suffix++)
}
if (!oldJar.renameTo(disabled)) {
throw new GradleException("Could not disable old jar: ${oldJar}")
}
logger.lifecycle("Disabled ${oldJar.name} in ${pluginsDir}")
}
copy {
from builtJar
into pluginsDir
}
logger.lifecycle("Deployed ${builtJar.name} to ${pluginsDir}")
}
}
}
tasks.named("build") {
finalizedBy(tasks.named("deployServers"))
}
tasks.named("compileJava") {
finalizedBy(tasks.named("deployServers"))
}