From 9603eac6ee9fc4a614823c17cd3b13494f8063a5 Mon Sep 17 00:00:00 2001
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
Date: Mon, 13 Oct 2025 00:38:15 +0300
Subject: [PATCH] Updated Upstream (Purpur)
Upstream has released updates that appear to apply and compile correctly
Purpur Changes:
PurpurMC/Purpur@49f28912 Updated Upstream (Paper)
---
.idea/icon.svg | 81 +++++++++++++++++++
.../Create_Mojmap_Paperclip.xml | 24 ++++++
.../Run_Purpur_Paperclip_Jar.xml | 8 ++
divinemc-server/build.gradle.kts.patch | 4 +-
.../features/0001-Rebrand.patch | 4 +-
...03-Completely-remove-Mojang-profiler.patch | 40 ++++-----
.../features/0036-Lag-compensation.patch | 4 +-
.../features/0037-Virtual-Threads.patch | 4 +-
...-SparklyPaper-Parallel-world-ticking.patch | 10 +--
.../0050-MSPT-Tracking-for-each-world.patch | 4 +-
.../0051-Catch-update-suppressors.patch | 4 +-
.../features/0058-Leaves-Protocol-Core.patch | 4 +-
.../0060-Linear-region-file-format.patch | 4 +-
.../server/MinecraftServer.java.patch | 4 +-
gradle.properties | 2 +-
15 files changed, 157 insertions(+), 44 deletions(-)
create mode 100644 .idea/icon.svg
create mode 100644 .idea/runConfigurations/Create_Mojmap_Paperclip.xml
create mode 100644 .idea/runConfigurations/Run_Purpur_Paperclip_Jar.xml
diff --git a/.idea/icon.svg b/.idea/icon.svg
new file mode 100644
index 0000000..1c04c78
--- /dev/null
+++ b/.idea/icon.svg
@@ -0,0 +1,81 @@
+
+
diff --git a/.idea/runConfigurations/Create_Mojmap_Paperclip.xml b/.idea/runConfigurations/Create_Mojmap_Paperclip.xml
new file mode 100644
index 0000000..0cf1eff
--- /dev/null
+++ b/.idea/runConfigurations/Create_Mojmap_Paperclip.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+ false
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/Run_Purpur_Paperclip_Jar.xml b/.idea/runConfigurations/Run_Purpur_Paperclip_Jar.xml
new file mode 100644
index 0000000..d4c3c3c
--- /dev/null
+++ b/.idea/runConfigurations/Run_Purpur_Paperclip_Jar.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/divinemc-server/build.gradle.kts.patch b/divinemc-server/build.gradle.kts.patch
index f35ecaa..b61b476 100644
--- a/divinemc-server/build.gradle.kts.patch
+++ b/divinemc-server/build.gradle.kts.patch
@@ -150,7 +150,7 @@
implementation("net.neoforged:srgutils:1.0.9") // Mappings handling
implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins
@@ -219,30 +_,42 @@
- implementation("me.lucko:spark-paper:1.10.133-20250413.112336-1")
+ implementation("me.lucko:spark-paper:1.10.152")
}
+// DivineMC start - Hide irrelevant compilation warnings
@@ -168,7 +168,7 @@
val git = Git(rootProject.layout.projectDirectory.path)
val mcVersion = rootProject.providers.gradleProperty("mcVersion").get()
val build = System.getenv("BUILD_NUMBER") ?: null
-- val buildTime = if (build != null) Instant.now() else Instant.EPOCH
+- val buildTime = providers.environmentVariable("BUILD_STARTED_AT").map(Instant::parse).orElse(Instant.EPOCH).get()
+ val buildTime = Instant.now() // DivineMC - Set build time to current
val gitHash = git.exec(providers, "rev-parse", "--short=7", "HEAD").get().trim()
val implementationVersion = "$mcVersion-${build ?: "DEV"}-$gitHash"
diff --git a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch b/divinemc-server/minecraft-patches/features/0001-Rebrand.patch
index 7d8aa55..ec0c013 100644
--- a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch
+++ b/divinemc-server/minecraft-patches/features/0001-Rebrand.patch
@@ -120,10 +120,10 @@ index 2c85607bcc62b227485972707c3541247a626524..9e25b6412fadbbecda0430f8554eaa48
String awtException = io.papermc.paper.util.ServerEnvironment.awtDependencyCheck();
if (awtException != null) {
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
-index 0c9de646201b41c7e2cbd308cf6c62a1b6b319b3..5d761c36739981897fe165148e528ef6b0e80b8d 100644
+index 10769fe7a3d99f0464b9d265b9d0b8c9fc25ae5d..31edaf3b34d77656ceb010beb2e33307d84fb117 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
-@@ -1258,6 +1258,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0;
try {
this.isSaving = true;
-@@ -1660,10 +1603,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serverPlayer1.connection.suspendFlushing());
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
// Paper start - optimise Folia entity scheduler
-@@ -1771,9 +1707,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Purpur - Ridables
@@ -477,7 +477,7 @@ index 5d761c36739981897fe165148e528ef6b0e80b8d..18c3599ceb7a1c9dc769af0ad4c3eff9
try {
serverLevel.tick(hasTimeLeft);
} catch (Throwable var7) {
-@@ -1829,37 +1758,25 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(),
new com.google.common.util.concurrent.ThreadFactoryBuilder()
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
-index 89aa020832fb9894e057b0f2b1226eb48c8accd1..4ba10f90711ac8b6813f86bcff9635716fdc6028 100644
+index 8f281339ac390f005baddf00cd09e876cc49e524..a08e56c822b54648f5013e67128c670dd6cb70de 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
-@@ -2714,8 +2714,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop states = new java.util.ArrayList<>(level.capturedBlockStates.values());
level.capturedBlockStates.clear();
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
-index 95e39a728b7505a273a6e9c927308ee8931ea756..9e09e9823f53e60c819d43012905fa21d044e283 100644
+index fa29260810341898169441f6baf72846dbd17d67..b533f3c938ba184bee7dea9f9969b59381c03912 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -289,6 +289,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serverPlayer1.connection.suspendFlushing());
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
-@@ -1741,28 +1766,43 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop, ServerLevel> oldLevels = this.levels;
Map, ServerLevel> newLevels = Maps.newLinkedHashMap(oldLevels);
newLevels.remove(level.dimension());
diff --git a/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch b/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch
index 95b7f93..637d1ca 100644
--- a/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch
+++ b/divinemc-server/minecraft-patches/features/0050-MSPT-Tracking-for-each-world.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] MSPT Tracking for each world
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
-index 9e09e9823f53e60c819d43012905fa21d044e283..e3fb85c466aca52bd4431aabbc13a4de58c2f474 100644
+index b533f3c938ba184bee7dea9f9969b59381c03912..1c60d0384e3f5cc9f719fdd2ca2960af407114a0 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
-@@ -1711,7 +1711,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop