From e9cc87efc83b481a38a9bbba05d097a0ba97e117 Mon Sep 17 00:00:00 2001 From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> Date: Sat, 20 Dec 2025 20:33:23 +0300 Subject: [PATCH] Updated Upstream (Purpur) Upstream has released updates that appear to apply and compile correctly Purpur Changes: PurpurMC/Purpur@ccddaf71 Updated Upstream (Paper) PurpurMC/Purpur@eacf9fdf fix build time showing as EPOCH PurpurMC/Purpur@7c953451 Updated Upstream (Paper) --- divinemc-server/build.gradle.kts.patch | 8 ++------ ...03-Completely-remove-Mojang-profiler.patch | 12 +++++------ ...-SparklyPaper-Parallel-world-ticking.patch | 20 +++++++++---------- .../minecraft/world/entity/Entity.java.patch | 8 ++++---- gradle.properties | 2 +- 5 files changed, 22 insertions(+), 28 deletions(-) diff --git a/divinemc-server/build.gradle.kts.patch b/divinemc-server/build.gradle.kts.patch index 8e41946..4cbd694 100644 --- a/divinemc-server/build.gradle.kts.patch +++ b/divinemc-server/build.gradle.kts.patch @@ -149,7 +149,7 @@ implementation("net.neoforged:srgutils:1.0.9") // Mappings handling implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins -@@ -217,30 +_,42 @@ +@@ -217,6 +_,16 @@ implementation("me.lucko:spark-paper:1.10.152") } @@ -166,11 +166,7 @@ tasks.jar { manifest { val git = Git(rootProject.layout.projectDirectory.path) - val mcVersion = rootProject.providers.gradleProperty("mcVersion").get() - val build = System.getenv("BUILD_NUMBER") ?: null -- 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() +@@ -227,20 +_,22 @@ val implementationVersion = "$mcVersion-${build ?: "DEV"}-$gitHash" val date = git.exec(providers, "show", "-s", "--format=%ci", gitHash).get().trim() val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim() diff --git a/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch b/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch index d35006e..85dbd6d 100644 --- a/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch +++ b/divinemc-server/minecraft-patches/features/0003-Completely-remove-Mojang-profiler.patch @@ -1765,7 +1765,7 @@ index 39a604c9a53930b53d959b1d2eb504aa964e9a58..0d0380e3955836ce125f777841477503 @Override diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index d2542c2bd15d274f9844c731a2e2b388a318ee4c..c1fff7f3d74a804d9608e3ff78386f49845b8f59 100644 +index 99afd7599602d52cbe85b13c6df4304aa25167d0..18d45a6023d96e09f3d796e8b72e17e7b25f9bc7 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -83,8 +83,6 @@ import net.minecraft.util.Util; @@ -1837,7 +1837,7 @@ index d2542c2bd15d274f9844c731a2e2b388a318ee4c..c1fff7f3d74a804d9608e3ff78386f49 } } // Paper start - detailed watchdog information -@@ -3553,8 +3540,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3555,8 +3542,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name this.processPortalCooldown(); if (this.portalProcess != null) { if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) { @@ -1846,7 +1846,7 @@ index d2542c2bd15d274f9844c731a2e2b388a318ee4c..c1fff7f3d74a804d9608e3ff78386f49 this.setPortalCooldown(); TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this); if (portalDestination != null) { -@@ -3566,8 +3551,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3567,8 +3552,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name this.teleport(portalDestination); } } @@ -1855,7 +1855,7 @@ index d2542c2bd15d274f9844c731a2e2b388a318ee4c..c1fff7f3d74a804d9608e3ff78386f49 } else if (this.portalProcess.hasExpired()) { this.portalProcess = null; } -@@ -4132,15 +4115,12 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4133,15 +4116,12 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name entity.teleport(this.calculatePassengerTransition(teleportTransition, entity)); } @@ -1871,7 +1871,7 @@ index d2542c2bd15d274f9844c731a2e2b388a318ee4c..c1fff7f3d74a804d9608e3ff78386f49 return this; } -@@ -4156,11 +4136,8 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4157,11 +4137,8 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name } } @@ -1883,7 +1883,7 @@ index d2542c2bd15d274f9844c731a2e2b388a318ee4c..c1fff7f3d74a804d9608e3ff78386f49 return null; } else { // Paper start - Fix item duplication and teleport issues -@@ -4180,7 +4157,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4181,7 +4158,6 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name newLevel.resetEmptyTime(); teleportTransition.postTeleportTransition().onTransition(entityx); this.teleportSpectators(teleportTransition, oldLevel); diff --git a/divinemc-server/minecraft-patches/features/0048-SparklyPaper-Parallel-world-ticking.patch b/divinemc-server/minecraft-patches/features/0048-SparklyPaper-Parallel-world-ticking.patch index e27e643..5f7d04a 100644 --- a/divinemc-server/minecraft-patches/features/0048-SparklyPaper-Parallel-world-ticking.patch +++ b/divinemc-server/minecraft-patches/features/0048-SparklyPaper-Parallel-world-ticking.patch @@ -631,18 +631,20 @@ index 471e558a609c9e457720660b90fe57322b860461..0d12647a0dc1159eb1932c947058068d if (isLocatorBarEnabledFor(player)) { if (!connection.isBroken()) { diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index a315d7c523cda7acc6c4fa0413764a4eca746045..65a72cedfd3f3da0323b553afe0e9a515d4f3986 100644 +index de1db9149a03d83700f1d8031d201d6a300a3498..9d46db5efee581a94e28a9dd95225043b4818db2 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -3561,16 +3561,36 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3563,15 +3563,34 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name if (this.portalProcess != null) { if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) { this.setPortalCooldown(); - TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this); - if (portalDestination != null) { - ServerLevel level = portalDestination.newLevel(); -- if (this instanceof ServerPlayer // CraftBukkit - always call event for players -- || (level != null && (level.dimension() == serverLevel.dimension() || this.canTeleport(serverLevel, level))) // CraftBukkit +- if (serverLevel.isAllowedToEnterPortal(level) && (level.dimension() == serverLevel.dimension() || this.canTeleport(serverLevel, level)) +- ) +- { +- this.teleport(portalDestination); + // DivineMC start - Parallel world ticking + java.util.function.Consumer portalEntityTask = entity -> { + assert entity.portalProcess != null; @@ -655,12 +657,8 @@ index a315d7c523cda7acc6c4fa0413764a4eca746045..65a72cedfd3f3da0323b553afe0e9a51 + TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this); + if (portalDestination != null) { + ServerLevel level = portalDestination.newLevel(); -+ if (this instanceof ServerPlayer // CraftBukkit - always call event for players -+ || (level != null && (level.dimension() == serverLevel.dimension() || this.canTeleport(serverLevel, level))) // CraftBukkit - ) -- { -- this.teleport(portalDestination); -+ { ++ if (serverLevel.isAllowedToEnterPortal(level) && (level.dimension() == serverLevel.dimension() || this.canTeleport(serverLevel, level)) ++ ) { + this.teleport(portalDestination); + } } @@ -678,7 +676,7 @@ index a315d7c523cda7acc6c4fa0413764a4eca746045..65a72cedfd3f3da0323b553afe0e9a51 } else if (this.portalProcess.hasExpired()) { this.portalProcess = null; } -@@ -4145,6 +4165,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -4146,6 +4165,7 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name } private @Nullable Entity teleportCrossDimension(ServerLevel oldLevel, ServerLevel newLevel, TeleportTransition teleportTransition) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch index e1ee2c1..f18435d 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch @@ -16,7 +16,7 @@ final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity // Paper start - detailed watchdog information ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main"); -@@ -2649,6 +_,7 @@ +@@ -2651,6 +_,7 @@ } this.addAdditionalSaveData(output, includeAll); // CraftBukkit - pass on includeAll @@ -24,7 +24,7 @@ if (this.isVehicle()) { ValueOutput.ValueOutputList valueOutputList = output.childrenList("Passengers"); -@@ -2757,6 +_,7 @@ +@@ -2759,6 +_,7 @@ this.tags.clear(); input.read("Tags", TAG_LIST_CODEC).ifPresent(this.tags::addAll); this.readAdditionalSaveData(input); @@ -32,7 +32,7 @@ if (this.repositionEntityAfterLoad()) { this.reapplyPosition(); } -@@ -4284,6 +_,7 @@ +@@ -4285,6 +_,7 @@ } public boolean canTeleport(Level fromLevel, Level toLevel) { @@ -40,7 +40,7 @@ if (!this.isAlive() || !this.valid) return false; // Paper - Fix item duplication and teleport issues if (fromLevel.dimension() == Level.END && toLevel.dimension() == Level.OVERWORLD) { for (Entity entity : this.getPassengers()) { -@@ -4512,6 +_,7 @@ +@@ -4513,6 +_,7 @@ } public final void setBoundingBox(AABB bb) { diff --git a/gradle.properties b/gradle.properties index 46b552a..05ce82c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ version=1.21.11-R0.1-SNAPSHOT mcVersion=1.21.11 apiVersion=1.21.11 -purpurRef=293e44ab365e12cd2333caa7765b9df143db4aaf +purpurRef=7c953451d5de5000228e66ede2ef7ebb2864d0bc experimental=true org.gradle.configuration-cache=true