-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
123 lines (104 loc) · 3.08 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
116
117
118
119
120
121
122
123
import java.io.BufferedReader
import java.io.InputStreamReader
plugins {
alias(libs.plugins.runPaper)
alias(libs.plugins.paperweight) apply true
alias(libs.plugins.kotlinJvm) apply true
alias(libs.plugins.shadow) apply true
`maven-publish`
}
runPaper.folia.registerTask()
val id = findProperty("id").toString()
val pluginName = findProperty("plugin_name")
repositories {
mavenLocal()
mavenCentral()
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://maven.pvphub.me/releases")
maven("https://repo.dmulloy2.net/repository/public/")
maven("https://jitpack.io")
maven("https://repo.extendedclip.com/content/repositories/placeholderapi/")
}
dependencies {
paperweight.paperDevBundle(libs.versions.paperApi.get())
compileOnly(libs.ktgui)
compileOnly(libs.placeholder.api)
}
tasks {
withType<ProcessResources> {
val props = mapOf(
"name" to pluginName,
"main" to "${findProperty("group_name")}.${id}.${findProperty("plugin_main_class_name")}",
"author" to findProperty("plugin_author"),
"version" to if (findProperty("include_commit_hash")
.toString().toBoolean()
) "${rootProject.version}-commit-${getCurrentCommitHash()}" else rootProject.version.toString()
)
inputs.properties(props)
filteringCharset = "UTF-8"
filesMatching("plugin.yml") {
expand(props)
}
}
shadowJar {
mergeServiceFiles()
}
test {
useJUnitPlatform()
}
assemble {
dependsOn("reobfJar")
}
runServer {
val mcVersion = libs.versions.paperApi.get().split("-")[0]
minecraftVersion(mcVersion)
downloadPlugins {
hangar("ViaVersion", "5.0.1")
hangar("ViaBackwards", "5.0.1")
hangar("PlaceholderAPI", "2.11.6")
}
}
}
java {
withJavadocJar()
withSourcesJar()
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
kotlin {
jvmToolchain(21)
}
sourceSets["main"].resources.srcDir("src/resources/")
publishing {
repositories {
maven {
name = "pvphub-releases"
url = uri("https://maven.pvphub.me/releases")
credentials {
username = System.getenv("PVPHUB_MAVEN_USERNAME")
password = System.getenv("PVPHUB_MAVEN_SECRET")
}
}
}
publications {
create<MavenPublication>(id) {
from(components["java"])
groupId = group.toString()
artifactId = id
version = rootProject.version.toString()
}
}
}
fun getCurrentCommitHash(): String {
val process = ProcessBuilder("git", "rev-parse", "HEAD").start()
val reader = BufferedReader(InputStreamReader(process.inputStream))
val commitHash = reader.readLine()
reader.close()
process.waitFor()
if (process.exitValue() == 0) {
return commitHash?.substring(0, 7) ?: ""
} else {
throw IllegalStateException("Failed to retrieve the commit hash.")
}
}