Files
Purpur/purpur-server/build.gradle.kts.patch
2025-05-28 19:23:02 -07:00

152 lines
5.6 KiB
Diff

--- a/paper-server/build.gradle.kts
+++ b/paper-server/build.gradle.kts
@@ -1,9 +_,7 @@
import io.papermc.paperweight.attribute.DevBundleOutput
import io.papermc.paperweight.util.*
-import io.papermc.paperweight.util.data.FileEntry
-import paper.libs.com.google.gson.annotations.SerializedName
import java.time.Instant
-import kotlin.io.path.readText
+import kotlin.io.path.writeText
plugins {
`java-library`
@@ -20,6 +_,46 @@
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
+tasks.register("rebuildMinecraftSourcesWithGit") {
+ group = "temp"
+
+ val patchDir = project.rootDir.resolve("purpur-server/minecraft-patches/sources").convertToPath().cleanDir()
+ val inputDir = this.project.rootDir.resolve("purpur-server/src/minecraft/java").convertToPath()
+
+ val git = Git(inputDir)
+ git("stash", "push").executeSilently(silenceErr = true)
+ git("checkout", "file").executeSilently(silenceErr = true)
+
+ rebuildWithGit(git, patchDir)
+}
+
+private fun rebuildWithGit(
+ git: Git,
+ patchDir: java.nio.file.Path
+): Int {
+ val files = git("diff-tree", "--name-only", "--no-commit-id", "-r", "HEAD").getText().split("\n")
+ files.parallelStream().forEach { filename ->
+ if (filename.isBlank()) return@forEach
+ val patch = git(
+ "format-patch",
+ "--diff-algorithm=myers",
+ "--full-index",
+ "--no-signature",
+ "--no-stat",
+ "--no-numbered",
+ "-1",
+ "HEAD",
+ "--stdout",
+ filename
+ ).getText()
+ val patchFile = patchDir.resolve("$filename.patch")
+ patchFile.createParentDirectories()
+ patchFile.writeText(patch)
+ }
+
+ return files.size
+}
+
paperweight {
minecraftVersion = providers.gradleProperty("mcVersion")
gitFilePatches = false
@@ -28,6 +_,18 @@
// oldPaperCommit = "f4f275519f7c1fbe9db173b7144a4fe81440e365"
//}
+ // Purpur start - Rebrand
+ val purpur = forks.register("purpur") {
+ upstream.patchDir("paperServer") {
+ upstreamPath = "paper-server"
+ excludes = setOf("src/minecraft", "patches", "build.gradle.kts")
+ patchesDir = rootDirectory.dir("purpur-server/paper-patches")
+ outputDir = rootDirectory.dir("paper-server")
+ }
+ }
+ activeFork = purpur
+ // Purpur end - Rebrand
+
spigot {
buildDataRef = "702e1a0a5072b2c4082371d5228cb30525687efc"
packageVersion = "v1_21_R4" // also needs to be updated in MappingEnvironment
@@ -108,7 +_,21 @@
}
}
-val log4jPlugins = sourceSets.create("log4jPlugins")
+// Purpur start - Rebrand
+sourceSets {
+ main {
+ java { srcDir("../paper-server/src/main/java") }
+ resources { srcDir("../paper-server/src/main/resources") }
+ }
+ test {
+ java { srcDir("../paper-server/src/test/java") }
+ resources { srcDir("../paper-server/src/test/resources") }
+ }
+}
+val log4jPlugins = sourceSets.create("log4jPlugins") {
+ java { srcDir("../paper-server/src/log4jPlugins/java") }
+}
+// Purpur end - Rebrand
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
extendsFrom(configurations.compileClasspath.get())
}
@@ -130,7 +_,7 @@
}
dependencies {
- implementation(project(":paper-api"))
+ implementation(project(":purpur-api")) // Purpur
implementation("ca.spottedleaf:concurrentutil:0.0.3")
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
@@ -158,6 +_,10 @@
implementation("org.spongepowered:configurate-yaml:4.2.0-20250225.064233-199")
implementation("org.spongepowered:configurate-core:4.2.0-20250225.064233-204") // Pinned dependency of above pinned yaml snapshot.
+ implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur
+ implementation("org.mozilla:rhino-engine:1.7.14") // Purpur
+ implementation("dev.omega24:upnp4j:1.0") // Purpur
+
// Deps that were previously in the API but have now been moved here for backwards compat, eventually to be removed
runtimeOnly("commons-lang:commons-lang:2.6")
runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0")
@@ -206,14 +_,14 @@
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
- "Implementation-Title" to "Paper",
+ "Implementation-Title" to "Purpur", // Purpur
"Implementation-Version" to implementationVersion,
"Implementation-Vendor" to date,
- "Specification-Title" to "Paper",
+ "Specification-Title" to "Purpur", // Purpur
"Specification-Version" to project.version,
- "Specification-Vendor" to "Paper Team",
- "Brand-Id" to "papermc:paper",
- "Brand-Name" to "Paper",
+ "Specification-Vendor" to "Purpur Team", // Purpur
+ "Brand-Id" to "purpurmc:purpur", // Purpur
+ "Brand-Name" to "Purpur", // Purpur
"Build-Number" to (build ?: ""),
"Build-Time" to buildTime.toString(),
"Git-Branch" to gitBranch,
@@ -267,7 +_,7 @@
jvmArgumentProviders.add(provider)
}
-val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath()
+val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("../paper-server/src/generated/java").asFile.toPath()
idea {
module {
generatedSourceDirs.add(generatedDir.toFile())