From 1f51fdd5bf8617bbfb9b252262ece6e1e03d016b Mon Sep 17 00:00:00 2001 From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> Date: Sun, 20 Jul 2025 15:58:41 +0300 Subject: [PATCH] cleanup --- .../features/0001-Rebrand.patch | 4 +- ...03-Completely-remove-Mojang-profiler.patch | 56 +++++++++---------- ...til.patch => 0009-lithium-fast_util.patch} | 0 ...> 0010-C2ME-Optimize-world-gen-math.patch} | 0 ....patch => 0011-Async-locate-command.patch} | 0 ...Carpet-Fixes-RecipeManager-Optimize.patch} | 0 ...-lithium-faster-chunk-serialization.patch} | 0 ...0014-C2ME-optimize-noise-generation.patch} | 0 ...h => 0015-Use-Java-s-Math-functions.patch} | 0 ...ay.patch => 0016-Disable-leaf-decay.patch} | 0 ...patch => 0017-Optimize-entity-brain.patch} | 0 ...-distanceToSqr-call-in-ServerEntity.patch} | 0 ...pet-Fixes-Optimized-getBiome-method.patch} | 0 ...020-Carpet-Fixes-Sheep-Optimization.patch} | 0 ...ers-that-were-dead-on-server-restart.patch | 24 -------- ...S-Addition-Optimized-dragon-respawn.patch} | 0 .../features/0021-Configurable-MC-67.patch | 18 ------ ... 0022-ModernFix-compact_bit_storage.patch} | 0 ...3-Option-to-disable-disconnect.spam.patch} | 12 ++-- ...ble-saving-of-snowball-and-firework.patch} | 0 ...t-Fixes-Fix-Slime-Block-Bounce-Logic.patch | 28 ---------- ... => 0025-Snowball-and-Egg-knockback.patch} | 0 ....patch => 0026-Optimize-suffocation.patch} | 0 ...> 0027-Reduce-chunk-loading-lookups.patch} | 0 ...gurable-movement-speed-for-entities.patch} | 0 ...BlockEntity-ticking-isRemoved-check.patch} | 0 ...eird-movement-and-disable-teleporti.patch} | 10 ++-- ...-Raids.patch => 0031-Optimize-Raids.patch} | 0 ...Small-optimization-to-LinearPalette.patch} | 0 ...=> 0033-Use-switch-for-VarInt-write.patch} | 0 ...luids.patch => 0034-Optimize-Fluids.patch} | 0 ... 0035-Optimize-Structure-Generation.patch} | 0 ...tch => 0036-Implement-NoChatReports.patch} | 4 +- ...tion.patch => 0037-Lag-compensation.patch} | 2 +- ...reads.patch => 0038-Virtual-Threads.patch} | 6 +- ...g.patch => 0039-Async-Chunk-Sending.patch} | 0 ...et-dirty-flag-when-loading-maps-from.patch | 25 --------- ...Command-block-parse-results-caching.patch} | 0 ...> 0041-Player-ProfileResult-caching.patch} | 0 ...patch => 0042-Implement-Secure-Seed.patch} | 0 ...=> 0043-Dynamic-Activation-of-Brain.patch} | 0 ...-SparklyPaper-Optimize-canSee-checks.patch | 28 ---------- ...tch => 0044-Petal-Async-Pathfinding.patch} | 0 ...=> 0045-Petal-Multithreaded-Tracker.patch} | 4 +- ...46-Pufferfish-Optimize-mob-spawning.patch} | 2 +- ...r-ShapelessRecipes-comparison-for-V.patch} | 0 ...0048-C2ME-Density-Function-Compiler.patch} | 0 ...patch => 0049-Clump-experience-orbs.patch} | 0 ...SparklyPaper-Parallel-world-ticking.patch} | 4 +- ...> 0051-MSPT-Tracking-for-each-world.patch} | 2 +- ...ch => 0052-Catch-update-suppressors.patch} | 2 +- ...ch => 0053-Regionized-Chunk-Ticking.patch} | 2 +- ....patch => 0054-C2ME-Limit-NBT-cache.patch} | 0 ...2ME-Optimize-Aquifer-and-Beardifier.patch} | 0 ...patch => 0056-Copper-Bulb-1gt-delay.patch} | 0 ...lay.patch => 0057-Crafter-1gt-delay.patch} | 0 ...tch => 0058-Raytrace-Entity-Tracker.patch} | 2 +- ...ead.patch => 0059-Async-Join-Thread.patch} | 0 ....patch => 0060-Leaves-Protocol-Core.patch} | 10 ++-- ...R-Optimise-non-flush-packet-sending.patch} | 0 ...h => 0062-Linear-region-file-format.patch} | 2 +- ...> 0063-Cleanup-dead-code-from-Paper.patch} | 2 +- ...ch => 0064-C2ME-The-End-Biome-Cache.patch} | 0 ...5-Euclidean-distance-squared-option.patch} | 0 ...Do-not-send-spectator-change-packet.patch} | 0 .../subcommands/FixLightCommand.java.patch} | 12 +--- .../server/MinecraftServer.java.patch | 14 +++++ .../server/level/ChunkMap.java.patch | 11 ++++ .../ServerGamePacketListenerImpl.java.patch} | 14 +---- ...ServerStatusPacketListenerImpl.java.patch} | 11 +--- .../server/players/PlayerList.java.patch} | 12 +--- .../stats/ServerStatsCounter.java.patch} | 18 ++---- .../minecraft/world/entity/Entity.java.patch | 8 +++ .../minecraft/world/level/Level.java.patch} | 16 ++---- .../world/level/block/SlimeBlock.java.patch | 10 ++++ .../level/block/TripWireHookBlock.java.patch} | 15 +---- .../entity/HopperBlockEntity.java.patch} | 12 +--- .../world/level/chunk/LevelChunk.java.patch} | 18 ++---- .../maps/MapItemSavedData.java.patch | 10 ++++ .../paper-patches/features/0001-Rebrand.patch | 21 +------ .../features/0002-Configuration.patch | 6 +- ...loading-plugins-from-external-folder.patch | 4 +- .../org/bxteam/divinemc/DivineBootstrap.java | 3 +- .../region/type/BufferedRegionFile.java | 3 +- 84 files changed, 150 insertions(+), 317 deletions(-) rename divinemc-server/minecraft-patches/features/{0010-lithium-fast_util.patch => 0009-lithium-fast_util.patch} (100%) rename divinemc-server/minecraft-patches/features/{0011-C2ME-Optimize-world-gen-math.patch => 0010-C2ME-Optimize-world-gen-math.patch} (100%) rename divinemc-server/minecraft-patches/features/{0014-Async-locate-command.patch => 0011-Async-locate-command.patch} (100%) rename divinemc-server/minecraft-patches/features/{0015-Carpet-Fixes-RecipeManager-Optimize.patch => 0012-Carpet-Fixes-RecipeManager-Optimize.patch} (100%) rename divinemc-server/minecraft-patches/features/{0016-lithium-faster-chunk-serialization.patch => 0013-lithium-faster-chunk-serialization.patch} (100%) rename divinemc-server/minecraft-patches/features/{0017-C2ME-optimize-noise-generation.patch => 0014-C2ME-optimize-noise-generation.patch} (100%) rename divinemc-server/minecraft-patches/features/{0023-Use-Java-s-Math-functions.patch => 0015-Use-Java-s-Math-functions.patch} (100%) rename divinemc-server/minecraft-patches/features/{0024-Disable-leaf-decay.patch => 0016-Disable-leaf-decay.patch} (100%) rename divinemc-server/minecraft-patches/features/{0026-Optimize-entity-brain.patch => 0017-Optimize-entity-brain.patch} (100%) rename divinemc-server/minecraft-patches/features/{0027-SparklyPaper-Skip-distanceToSqr-call-in-ServerEntity.patch => 0018-SparklyPaper-Skip-distanceToSqr-call-in-ServerEntity.patch} (100%) rename divinemc-server/minecraft-patches/features/{0028-Carpet-Fixes-Optimized-getBiome-method.patch => 0019-Carpet-Fixes-Optimized-getBiome-method.patch} (100%) rename divinemc-server/minecraft-patches/features/{0030-Carpet-Fixes-Sheep-Optimization.patch => 0020-Carpet-Fixes-Sheep-Optimization.patch} (100%) delete mode 100644 divinemc-server/minecraft-patches/features/0020-Respawn-players-that-were-dead-on-server-restart.patch rename divinemc-server/minecraft-patches/features/{0031-Carpet-AMS-Addition-Optimized-dragon-respawn.patch => 0021-Carpet-AMS-Addition-Optimized-dragon-respawn.patch} (100%) delete mode 100644 divinemc-server/minecraft-patches/features/0021-Configurable-MC-67.patch rename divinemc-server/minecraft-patches/features/{0032-ModernFix-compact_bit_storage.patch => 0022-ModernFix-compact_bit_storage.patch} (100%) rename divinemc-server/minecraft-patches/features/{0033-Option-to-disable-disconnect.spam.patch => 0023-Option-to-disable-disconnect.spam.patch} (91%) rename divinemc-server/minecraft-patches/features/{0034-Option-to-disable-saving-of-snowball-and-firework.patch => 0024-Option-to-disable-saving-of-snowball-and-firework.patch} (100%) delete mode 100644 divinemc-server/minecraft-patches/features/0025-Carpet-Fixes-Fix-Slime-Block-Bounce-Logic.patch rename divinemc-server/minecraft-patches/features/{0035-Snowball-and-Egg-knockback.patch => 0025-Snowball-and-Egg-knockback.patch} (100%) rename divinemc-server/minecraft-patches/features/{0036-Optimize-suffocation.patch => 0026-Optimize-suffocation.patch} (100%) rename divinemc-server/minecraft-patches/features/{0037-Reduce-chunk-loading-lookups.patch => 0027-Reduce-chunk-loading-lookups.patch} (100%) rename divinemc-server/minecraft-patches/features/{0038-Configurable-movement-speed-for-entities.patch => 0028-Configurable-movement-speed-for-entities.patch} (100%) rename divinemc-server/minecraft-patches/features/{0040-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch => 0029-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch} (100%) rename divinemc-server/minecraft-patches/features/{0041-Option-to-allow-weird-movement-and-disable-teleporti.patch => 0030-Option-to-allow-weird-movement-and-disable-teleporti.patch} (94%) rename divinemc-server/minecraft-patches/features/{0042-Optimize-Raids.patch => 0031-Optimize-Raids.patch} (100%) rename divinemc-server/minecraft-patches/features/{0044-Small-optimization-to-LinearPalette.patch => 0032-Small-optimization-to-LinearPalette.patch} (100%) rename divinemc-server/minecraft-patches/features/{0045-Use-switch-for-VarInt-write.patch => 0033-Use-switch-for-VarInt-write.patch} (100%) rename divinemc-server/minecraft-patches/features/{0046-Optimize-Fluids.patch => 0034-Optimize-Fluids.patch} (100%) rename divinemc-server/minecraft-patches/features/{0047-Optimize-Structure-Generation.patch => 0035-Optimize-Structure-Generation.patch} (100%) rename divinemc-server/minecraft-patches/features/{0048-Implement-NoChatReports.patch => 0036-Implement-NoChatReports.patch} (99%) rename divinemc-server/minecraft-patches/features/{0049-Lag-compensation.patch => 0037-Lag-compensation.patch} (99%) rename divinemc-server/minecraft-patches/features/{0050-Virtual-Threads.patch => 0038-Virtual-Threads.patch} (96%) rename divinemc-server/minecraft-patches/features/{0051-Async-Chunk-Sending.patch => 0039-Async-Chunk-Sending.patch} (100%) delete mode 100644 divinemc-server/minecraft-patches/features/0039-SparklyPaper-Reset-dirty-flag-when-loading-maps-from.patch rename divinemc-server/minecraft-patches/features/{0052-Command-block-parse-results-caching.patch => 0040-Command-block-parse-results-caching.patch} (100%) rename divinemc-server/minecraft-patches/features/{0053-Player-ProfileResult-caching.patch => 0041-Player-ProfileResult-caching.patch} (100%) rename divinemc-server/minecraft-patches/features/{0054-Implement-Secure-Seed.patch => 0042-Implement-Secure-Seed.patch} (100%) rename divinemc-server/minecraft-patches/features/{0055-Dynamic-Activation-of-Brain.patch => 0043-Dynamic-Activation-of-Brain.patch} (100%) delete mode 100644 divinemc-server/minecraft-patches/features/0043-SparklyPaper-Optimize-canSee-checks.patch rename divinemc-server/minecraft-patches/features/{0056-Petal-Async-Pathfinding.patch => 0044-Petal-Async-Pathfinding.patch} (100%) rename divinemc-server/minecraft-patches/features/{0057-Petal-Multithreaded-Tracker.patch => 0045-Petal-Multithreaded-Tracker.patch} (99%) rename divinemc-server/minecraft-patches/features/{0058-Pufferfish-Optimize-mob-spawning.patch => 0046-Pufferfish-Optimize-mob-spawning.patch} (99%) rename divinemc-server/minecraft-patches/features/{0059-Pufferfish-Simpler-ShapelessRecipes-comparison-for-V.patch => 0047-Pufferfish-Simpler-ShapelessRecipes-comparison-for-V.patch} (100%) rename divinemc-server/minecraft-patches/features/{0060-C2ME-Density-Function-Compiler.patch => 0048-C2ME-Density-Function-Compiler.patch} (100%) rename divinemc-server/minecraft-patches/features/{0061-Clump-experience-orbs.patch => 0049-Clump-experience-orbs.patch} (100%) rename divinemc-server/minecraft-patches/features/{0062-SparklyPaper-Parallel-world-ticking.patch => 0050-SparklyPaper-Parallel-world-ticking.patch} (99%) rename divinemc-server/minecraft-patches/features/{0063-MSPT-Tracking-for-each-world.patch => 0051-MSPT-Tracking-for-each-world.patch} (95%) rename divinemc-server/minecraft-patches/features/{0064-Catch-update-suppressors.patch => 0052-Catch-update-suppressors.patch} (98%) rename divinemc-server/minecraft-patches/features/{0065-Regionized-Chunk-Ticking.patch => 0053-Regionized-Chunk-Ticking.patch} (99%) rename divinemc-server/minecraft-patches/features/{0066-C2ME-Limit-NBT-cache.patch => 0054-C2ME-Limit-NBT-cache.patch} (100%) rename divinemc-server/minecraft-patches/features/{0067-C2ME-Optimize-Aquifer-and-Beardifier.patch => 0055-C2ME-Optimize-Aquifer-and-Beardifier.patch} (100%) rename divinemc-server/minecraft-patches/features/{0068-Copper-Bulb-1gt-delay.patch => 0056-Copper-Bulb-1gt-delay.patch} (100%) rename divinemc-server/minecraft-patches/features/{0069-Crafter-1gt-delay.patch => 0057-Crafter-1gt-delay.patch} (100%) rename divinemc-server/minecraft-patches/features/{0070-Raytrace-Entity-Tracker.patch => 0058-Raytrace-Entity-Tracker.patch} (98%) rename divinemc-server/minecraft-patches/features/{0071-Async-Join-Thread.patch => 0059-Async-Join-Thread.patch} (100%) rename divinemc-server/minecraft-patches/features/{0072-Leaves-Protocol-Core.patch => 0060-Leaves-Protocol-Core.patch} (95%) rename divinemc-server/minecraft-patches/features/{0075-Paper-PR-Optimise-non-flush-packet-sending.patch => 0061-Paper-PR-Optimise-non-flush-packet-sending.patch} (100%) rename divinemc-server/minecraft-patches/features/{0076-Linear-region-file-format.patch => 0062-Linear-region-file-format.patch} (99%) rename divinemc-server/minecraft-patches/features/{0077-Cleanup-dead-code-from-Paper.patch => 0063-Cleanup-dead-code-from-Paper.patch} (98%) rename divinemc-server/minecraft-patches/features/{0078-C2ME-The-End-Biome-Cache.patch => 0064-C2ME-The-End-Biome-Cache.patch} (100%) rename divinemc-server/minecraft-patches/features/{0079-Euclidean-distance-squared-option.patch => 0065-Euclidean-distance-squared-option.patch} (100%) rename divinemc-server/minecraft-patches/features/{0080-Do-not-send-spectator-change-packet.patch => 0066-Do-not-send-spectator-change-packet.patch} (100%) rename divinemc-server/minecraft-patches/{features/0009-Parchment-Make-FixLight-use-action-bar.patch => sources/io/papermc/paper/command/subcommands/FixLightCommand.java.patch} (78%) create mode 100644 divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch rename divinemc-server/minecraft-patches/{features/0074-Leaves-Syncmatica-Protocol.patch => sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch} (67%) rename divinemc-server/minecraft-patches/{features/0019-Don-t-respond-ping-before-start-fully.patch => sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch} (66%) rename divinemc-server/minecraft-patches/{features/0073-Leaves-Xaero-s-Map-Protocol.patch => sources/net/minecraft/server/players/PlayerList.java.patch} (59%) rename divinemc-server/minecraft-patches/{features/0013-SparklyPaper-Clear-dirty-stats-after-copying.patch => sources/net/minecraft/stats/ServerStatsCounter.java.patch} (59%) rename divinemc-server/minecraft-patches/{features/0012-Re-Fix-MC-117075.patch => sources/net/minecraft/world/level/Level.java.patch} (74%) create mode 100644 divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch rename divinemc-server/minecraft-patches/{features/0022-Configurable-MC-59471.patch => sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch} (76%) rename divinemc-server/minecraft-patches/{features/0029-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch => sources/net/minecraft/world/level/block/entity/HopperBlockEntity.java.patch} (59%) rename divinemc-server/minecraft-patches/{features/0018-Optimize-block-state-lookup.patch => sources/net/minecraft/world/level/chunk/LevelChunk.java.patch} (63%) create mode 100644 divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch diff --git a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch b/divinemc-server/minecraft-patches/features/0001-Rebrand.patch index 8e42e91..6a25e7d 100644 --- a/divinemc-server/minecraft-patches/features/0001-Rebrand.patch +++ b/divinemc-server/minecraft-patches/features/0001-Rebrand.patch @@ -130,10 +130,10 @@ index b06c2c4aa77edafb374f7cf0406cf4d29c6e7f9f..c3ac5ba5d8084fefc0e9f58b09b521ef 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 d651ddade8a460c25f4f8d70822d9ef69f1acb4b..8fce263f8cab4e0ff2ee6fe4fd9e46bbd0bbde19 100644 +index 3de43e4edb33bb2c657a315ad2676ce44ee3bd6a..2d01252a66e59f69ff69055b83d7e881f2f3e5cd 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java -@@ -1177,6 +1177,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0 && this.tickCount % autosavePeriod == 0; try { this.isSaving = true; -@@ -1593,10 +1557,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop serverPlayer1.connection.suspendFlushing()); this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit // Paper start - optimise Folia entity scheduler -@@ -1710,9 +1666,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 0; // Purpur - Ridables @@ -429,7 +429,7 @@ index 8fce263f8cab4e0ff2ee6fe4fd9e46bbd0bbde19..6498455c4c2838cbee743f016d8be1fe try { serverLevel.tick(hasTimeLeft); } catch (Throwable var7) { -@@ -1767,34 +1716,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop, AutoCl - this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075 +@@ -1527,7 +1521,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl + this.blockEntityTickers.removeMarkedEntries(); // DivineMC - optimize block entity removals - Fix MC-117075 this.tickingBlockEntities = false; - profilerFiller.pop(); this.spigotConfig.currentPrimedTnt = 0; // Spigot } -@@ -1781,7 +1774,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl +@@ -1779,7 +1772,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl @Override public List getEntities(@Nullable Entity entity, AABB boundingBox, Predicate predicate) { @@ -4973,7 +4973,7 @@ index 1ad419b4a2ad4610a0a8d18b26665a7ec0ccc960..4c1ce7e85f9c3315635472047ffaf15a List list = Lists.newArrayList(); // Paper start - rewrite chunk system -@@ -1810,8 +1802,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl +@@ -1808,8 +1800,6 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl public void getEntities(final EntityTypeTest entityTypeTest, final AABB boundingBox, final Predicate predicate, final List into, final int maxCount) { @@ -5039,7 +5039,7 @@ index b80924fbe054b00fe5117df896358e330f41e993..1669c21534a453c9cf16b992df7a6bf2 if (this.fire) { diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..b88254fb3c12b99684c6ede1ae8a6671ffbe9ad6 100644 +index 8345405116202b59055f5343fc26b82f48008050..dbb4142ea38cdf484e74c81103cebb024ae8813d 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java @@ -24,8 +24,6 @@ import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData; @@ -5051,7 +5051,7 @@ index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..b88254fb3c12b99684c6ede1ae8a6671 import net.minecraft.world.entity.Entity; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; -@@ -385,12 +383,8 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -392,12 +390,8 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p } if (LightEngine.hasDifferentLightProperties(blockState, state)) { @@ -5064,7 +5064,7 @@ index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..b88254fb3c12b99684c6ede1ae8a6671 } boolean flag = !blockState.is(block); -@@ -922,8 +916,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -929,8 +923,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p BlockPos blockPos = this.blockEntity.getBlockPos(); if (LevelChunk.this.isTicking(blockPos)) { try { @@ -5073,7 +5073,7 @@ index 75578e6ed7233a03d9b6cd3c6d3997f1c6148392..b88254fb3c12b99684c6ede1ae8a6671 BlockState blockState = LevelChunk.this.getBlockState(blockPos); if (this.blockEntity.getType().isValid(blockState)) { this.ticker.tick(LevelChunk.this.level, this.blockEntity.getBlockPos(), blockState, this.blockEntity); -@@ -937,8 +929,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -944,8 +936,6 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p } // Paper end - Remove the Block Entity if it's invalid } @@ -5115,7 +5115,7 @@ index 81de6c1bbef1cafd3036e736dd305fbedc8368c6..c2baadcdceb1df6a881d6f73aa4eb4dd // Paper end - Perf: remove streams and optimize collection } diff --git a/net/minecraft/world/ticks/LevelTicks.java b/net/minecraft/world/ticks/LevelTicks.java -index 66abc2e7adee60fa98eed1ba36e018814fd02cad..0a9805d42142678ca5213c511235daa6505ddbf3 100644 +index 769037ecd67b2ed92067bba4e5f7ac9383c3d456..2f88649c398d7f60f10532eb6b36ce1c27bcbdcc 100644 --- a/net/minecraft/world/ticks/LevelTicks.java +++ b/net/minecraft/world/ticks/LevelTicks.java @@ -23,8 +23,6 @@ import net.minecraft.Util; diff --git a/divinemc-server/minecraft-patches/features/0010-lithium-fast_util.patch b/divinemc-server/minecraft-patches/features/0009-lithium-fast_util.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0010-lithium-fast_util.patch rename to divinemc-server/minecraft-patches/features/0009-lithium-fast_util.patch diff --git a/divinemc-server/minecraft-patches/features/0011-C2ME-Optimize-world-gen-math.patch b/divinemc-server/minecraft-patches/features/0010-C2ME-Optimize-world-gen-math.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0011-C2ME-Optimize-world-gen-math.patch rename to divinemc-server/minecraft-patches/features/0010-C2ME-Optimize-world-gen-math.patch diff --git a/divinemc-server/minecraft-patches/features/0014-Async-locate-command.patch b/divinemc-server/minecraft-patches/features/0011-Async-locate-command.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0014-Async-locate-command.patch rename to divinemc-server/minecraft-patches/features/0011-Async-locate-command.patch diff --git a/divinemc-server/minecraft-patches/features/0015-Carpet-Fixes-RecipeManager-Optimize.patch b/divinemc-server/minecraft-patches/features/0012-Carpet-Fixes-RecipeManager-Optimize.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0015-Carpet-Fixes-RecipeManager-Optimize.patch rename to divinemc-server/minecraft-patches/features/0012-Carpet-Fixes-RecipeManager-Optimize.patch diff --git a/divinemc-server/minecraft-patches/features/0016-lithium-faster-chunk-serialization.patch b/divinemc-server/minecraft-patches/features/0013-lithium-faster-chunk-serialization.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0016-lithium-faster-chunk-serialization.patch rename to divinemc-server/minecraft-patches/features/0013-lithium-faster-chunk-serialization.patch diff --git a/divinemc-server/minecraft-patches/features/0017-C2ME-optimize-noise-generation.patch b/divinemc-server/minecraft-patches/features/0014-C2ME-optimize-noise-generation.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0017-C2ME-optimize-noise-generation.patch rename to divinemc-server/minecraft-patches/features/0014-C2ME-optimize-noise-generation.patch diff --git a/divinemc-server/minecraft-patches/features/0023-Use-Java-s-Math-functions.patch b/divinemc-server/minecraft-patches/features/0015-Use-Java-s-Math-functions.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0023-Use-Java-s-Math-functions.patch rename to divinemc-server/minecraft-patches/features/0015-Use-Java-s-Math-functions.patch diff --git a/divinemc-server/minecraft-patches/features/0024-Disable-leaf-decay.patch b/divinemc-server/minecraft-patches/features/0016-Disable-leaf-decay.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0024-Disable-leaf-decay.patch rename to divinemc-server/minecraft-patches/features/0016-Disable-leaf-decay.patch diff --git a/divinemc-server/minecraft-patches/features/0026-Optimize-entity-brain.patch b/divinemc-server/minecraft-patches/features/0017-Optimize-entity-brain.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0026-Optimize-entity-brain.patch rename to divinemc-server/minecraft-patches/features/0017-Optimize-entity-brain.patch diff --git a/divinemc-server/minecraft-patches/features/0027-SparklyPaper-Skip-distanceToSqr-call-in-ServerEntity.patch b/divinemc-server/minecraft-patches/features/0018-SparklyPaper-Skip-distanceToSqr-call-in-ServerEntity.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0027-SparklyPaper-Skip-distanceToSqr-call-in-ServerEntity.patch rename to divinemc-server/minecraft-patches/features/0018-SparklyPaper-Skip-distanceToSqr-call-in-ServerEntity.patch diff --git a/divinemc-server/minecraft-patches/features/0028-Carpet-Fixes-Optimized-getBiome-method.patch b/divinemc-server/minecraft-patches/features/0019-Carpet-Fixes-Optimized-getBiome-method.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0028-Carpet-Fixes-Optimized-getBiome-method.patch rename to divinemc-server/minecraft-patches/features/0019-Carpet-Fixes-Optimized-getBiome-method.patch diff --git a/divinemc-server/minecraft-patches/features/0030-Carpet-Fixes-Sheep-Optimization.patch b/divinemc-server/minecraft-patches/features/0020-Carpet-Fixes-Sheep-Optimization.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0030-Carpet-Fixes-Sheep-Optimization.patch rename to divinemc-server/minecraft-patches/features/0020-Carpet-Fixes-Sheep-Optimization.patch diff --git a/divinemc-server/minecraft-patches/features/0020-Respawn-players-that-were-dead-on-server-restart.patch b/divinemc-server/minecraft-patches/features/0020-Respawn-players-that-were-dead-on-server-restart.patch deleted file mode 100644 index 4d5e987..0000000 --- a/divinemc-server/minecraft-patches/features/0020-Respawn-players-that-were-dead-on-server-restart.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sun, 6 Jul 2025 02:50:15 +0300 -Subject: [PATCH] Respawn players that were dead on server restart - - -diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 6498455c4c2838cbee743f016d8be1fe2fb61f6d..141c19eb290080f762da1e2090dae0609f2e3575 100644 ---- a/net/minecraft/server/MinecraftServer.java -+++ b/net/minecraft/server/MinecraftServer.java -@@ -971,6 +971,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -Date: Sun, 23 Feb 2025 01:03:59 +0300 -Subject: [PATCH] Configurable MC-67 - - -diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 0171befef713e89d9241c7735d5d285b23373e8f..5bc7f37290eb99145a2ea3e40d31180f3494979b 100644 ---- a/net/minecraft/world/entity/Entity.java -+++ b/net/minecraft/world/entity/Entity.java -@@ -4198,6 +4198,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess - } - - public boolean canTeleport(Level fromLevel, Level toLevel) { -+ if (!fromLevel.divineConfig.allowEntityPortalWithPassenger && (this.isPassenger() || this.isVehicle())) return false; // DivineMC - Allow entity teleport with passenger - 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()) { diff --git a/divinemc-server/minecraft-patches/features/0032-ModernFix-compact_bit_storage.patch b/divinemc-server/minecraft-patches/features/0022-ModernFix-compact_bit_storage.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0032-ModernFix-compact_bit_storage.patch rename to divinemc-server/minecraft-patches/features/0022-ModernFix-compact_bit_storage.patch diff --git a/divinemc-server/minecraft-patches/features/0033-Option-to-disable-disconnect.spam.patch b/divinemc-server/minecraft-patches/features/0023-Option-to-disable-disconnect.spam.patch similarity index 91% rename from divinemc-server/minecraft-patches/features/0033-Option-to-disable-disconnect.spam.patch rename to divinemc-server/minecraft-patches/features/0023-Option-to-disable-disconnect.spam.patch index 984de26..acec63f 100644 --- a/divinemc-server/minecraft-patches/features/0033-Option-to-disable-disconnect.spam.patch +++ b/divinemc-server/minecraft-patches/features/0023-Option-to-disable-disconnect.spam.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable disconnect.spam diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index a63ade75461b68a780c56bfb5ff7c61f99f76744..fe7d68f3947bf55a389c73ef301fae8e396bf1da 100644 +index e269535609363528971268fdca9e6a6b70902608..637c5ca0c004e5de66bc3f84dba5fee47f729579 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -844,7 +844,7 @@ public class ServerGamePacketListenerImpl +@@ -846,7 +846,7 @@ public class ServerGamePacketListenerImpl public void handleCustomCommandSuggestions(ServerboundCommandSuggestionPacket packet) { // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.level()); // Paper - AsyncTabCompleteEvent; run this async // CraftBukkit start @@ -17,7 +17,7 @@ index a63ade75461b68a780c56bfb5ff7c61f99f76744..fe7d68f3947bf55a389c73ef301fae8e this.disconnectAsync(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - Kick event cause // Paper - add proper async disconnect return; } -@@ -856,7 +856,7 @@ public class ServerGamePacketListenerImpl +@@ -858,7 +858,7 @@ public class ServerGamePacketListenerImpl // Paper end - Don't suggest if tab-complete is disabled // Paper start final int index; @@ -26,7 +26,7 @@ index a63ade75461b68a780c56bfb5ff7c61f99f76744..fe7d68f3947bf55a389c73ef301fae8e this.disconnectAsync(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - add proper async disconnect return; } -@@ -916,6 +916,7 @@ public class ServerGamePacketListenerImpl +@@ -918,6 +918,7 @@ public class ServerGamePacketListenerImpl ParseResults parseResults = this.server.getCommands().getDispatcher().parse(stringReader, this.player.createCommandSourceStack()); // Paper start - Handle non-recoverable exceptions if (!parseResults.getExceptions().isEmpty() @@ -34,7 +34,7 @@ index a63ade75461b68a780c56bfb5ff7c61f99f76744..fe7d68f3947bf55a389c73ef301fae8e && parseResults.getExceptions().values().stream().anyMatch(e -> e instanceof io.papermc.paper.brigadier.TagParseCommandSyntaxException)) { this.disconnect(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); return; -@@ -2629,6 +2630,7 @@ public class ServerGamePacketListenerImpl +@@ -2631,6 +2632,7 @@ public class ServerGamePacketListenerImpl // this.chatSpamThrottler.increment(); if (!this.chatSpamThrottler.isIncrementAndUnderThreshold() // CraftBukkit end @@ -42,7 +42,7 @@ index a63ade75461b68a780c56bfb5ff7c61f99f76744..fe7d68f3947bf55a389c73ef301fae8e && !this.server.getPlayerList().isOp(this.player.getGameProfile()) && !this.server.isSingleplayerOwner(this.player.getGameProfile())) { this.disconnectAsync(Component.translatable("disconnect.spam"), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM); // Paper - kick event cause & add proper async disconnect -@@ -3328,7 +3330,7 @@ public class ServerGamePacketListenerImpl +@@ -3330,7 +3332,7 @@ public class ServerGamePacketListenerImpl public void handlePlaceRecipe(ServerboundPlaceRecipePacket packet) { // Paper start - auto recipe limit if (!org.bukkit.Bukkit.isPrimaryThread()) { diff --git a/divinemc-server/minecraft-patches/features/0034-Option-to-disable-saving-of-snowball-and-firework.patch b/divinemc-server/minecraft-patches/features/0024-Option-to-disable-saving-of-snowball-and-firework.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0034-Option-to-disable-saving-of-snowball-and-firework.patch rename to divinemc-server/minecraft-patches/features/0024-Option-to-disable-saving-of-snowball-and-firework.patch diff --git a/divinemc-server/minecraft-patches/features/0025-Carpet-Fixes-Fix-Slime-Block-Bounce-Logic.patch b/divinemc-server/minecraft-patches/features/0025-Carpet-Fixes-Fix-Slime-Block-Bounce-Logic.patch deleted file mode 100644 index 879c556..0000000 --- a/divinemc-server/minecraft-patches/features/0025-Carpet-Fixes-Fix-Slime-Block-Bounce-Logic.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sun, 6 Jul 2025 03:04:04 +0300 -Subject: [PATCH] Carpet-Fixes: Fix Slime Block Bounce Logic - -This patch is based on the following mixins: -* "carpetfixes/mixins/blockFixes/SlimeBlock_incorrectLogicMixin.java" -By: fxmorin <28154542+fxmorin@users.noreply.github.com> -As part of: carpet-fixes (https://github.com/fxmorin/carpet-fixes) -Licensed under: MIT (https://opensource.org/licenses/MIT) - -Patch description: -Fixes incorrect logic in the slimeblock bounce code which prevents some entities from bouncing. -This bug in the slime code is due to onGround reversing the velocity, the best way to fix this issue is by -setting onGround to true, only once the Y velocity is smaller than -0.15 - -diff --git a/net/minecraft/world/level/block/SlimeBlock.java b/net/minecraft/world/level/block/SlimeBlock.java -index f26c3100d0aad0227f016bfa4c86ac647e13485a..59c9e63e6d5634973cc4927eac479463cc486a4a 100644 ---- a/net/minecraft/world/level/block/SlimeBlock.java -+++ b/net/minecraft/world/level/block/SlimeBlock.java -@@ -42,6 +42,7 @@ public class SlimeBlock extends HalfTransparentBlock { - Vec3 deltaMovement = entity.getDeltaMovement(); - if (deltaMovement.y < 0.0) { - double d = entity instanceof LivingEntity ? 1.0 : 0.8; -+ if (org.bxteam.divinemc.config.DivineConfig.FixesCategory.fixIncorrectBounceLogic) entity.setOnGround(deltaMovement.y > -0.15); // DivineMC - Carpet-Fixes: Fix Slime Block Bounce Logic - entity.setDeltaMovement(deltaMovement.x, -deltaMovement.y * d, deltaMovement.z); - } - } diff --git a/divinemc-server/minecraft-patches/features/0035-Snowball-and-Egg-knockback.patch b/divinemc-server/minecraft-patches/features/0025-Snowball-and-Egg-knockback.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0035-Snowball-and-Egg-knockback.patch rename to divinemc-server/minecraft-patches/features/0025-Snowball-and-Egg-knockback.patch diff --git a/divinemc-server/minecraft-patches/features/0036-Optimize-suffocation.patch b/divinemc-server/minecraft-patches/features/0026-Optimize-suffocation.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0036-Optimize-suffocation.patch rename to divinemc-server/minecraft-patches/features/0026-Optimize-suffocation.patch diff --git a/divinemc-server/minecraft-patches/features/0037-Reduce-chunk-loading-lookups.patch b/divinemc-server/minecraft-patches/features/0027-Reduce-chunk-loading-lookups.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0037-Reduce-chunk-loading-lookups.patch rename to divinemc-server/minecraft-patches/features/0027-Reduce-chunk-loading-lookups.patch diff --git a/divinemc-server/minecraft-patches/features/0038-Configurable-movement-speed-for-entities.patch b/divinemc-server/minecraft-patches/features/0028-Configurable-movement-speed-for-entities.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0038-Configurable-movement-speed-for-entities.patch rename to divinemc-server/minecraft-patches/features/0028-Configurable-movement-speed-for-entities.patch diff --git a/divinemc-server/minecraft-patches/features/0040-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch b/divinemc-server/minecraft-patches/features/0029-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0040-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch rename to divinemc-server/minecraft-patches/features/0029-Leaf-Improve-BlockEntity-ticking-isRemoved-check.patch diff --git a/divinemc-server/minecraft-patches/features/0041-Option-to-allow-weird-movement-and-disable-teleporti.patch b/divinemc-server/minecraft-patches/features/0030-Option-to-allow-weird-movement-and-disable-teleporti.patch similarity index 94% rename from divinemc-server/minecraft-patches/features/0041-Option-to-allow-weird-movement-and-disable-teleporti.patch rename to divinemc-server/minecraft-patches/features/0030-Option-to-allow-weird-movement-and-disable-teleporti.patch index bbe95e9..bbbd9d9 100644 --- a/divinemc-server/minecraft-patches/features/0041-Option-to-allow-weird-movement-and-disable-teleporti.patch +++ b/divinemc-server/minecraft-patches/features/0030-Option-to-allow-weird-movement-and-disable-teleporti.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Option to allow weird movement and disable teleporting diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index fe7d68f3947bf55a389c73ef301fae8e396bf1da..39b95d3736d5acd3b71675410469727be6405cd3 100644 +index 637c5ca0c004e5de66bc3f84dba5fee47f729579..1bd6368704665f90eaa621366b4dec21bc937a96 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -607,7 +607,7 @@ public class ServerGamePacketListenerImpl +@@ -609,7 +609,7 @@ public class ServerGamePacketListenerImpl return; } // Paper end - Prevent moving into unloaded chunks @@ -18,7 +18,7 @@ index fe7d68f3947bf55a389c73ef301fae8e396bf1da..39b95d3736d5acd3b71675410469727b // CraftBukkit end LOGGER.warn( "{} (vehicle of {}) moved too quickly! {},{},{}", rootVehicle.getName().getString(), this.player.getName().getString(), d3, d4, d5 -@@ -637,7 +637,7 @@ public class ServerGamePacketListenerImpl +@@ -639,7 +639,7 @@ public class ServerGamePacketListenerImpl d5 = d2 - rootVehicle.getZ(); d7 = d3 * d3 + d4 * d4 + d5 * d5; boolean flag1 = false; @@ -27,7 +27,7 @@ index fe7d68f3947bf55a389c73ef301fae8e396bf1da..39b95d3736d5acd3b71675410469727b flag1 = true; // Paper - diff on change, this should be moved wrongly LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7)); } -@@ -1555,20 +1555,24 @@ public class ServerGamePacketListenerImpl +@@ -1557,20 +1557,24 @@ public class ServerGamePacketListenerImpl if (this.shouldCheckPlayerMovement(isFallFlying)) { float f2 = isFallFlying ? 300.0F : 100.0F; if (d7 - d6 > Math.max(f2, Mth.square(org.spigotmc.SpigotConfig.movedTooQuicklyMultiplier * (float) i * speed))) { @@ -63,7 +63,7 @@ index fe7d68f3947bf55a389c73ef301fae8e396bf1da..39b95d3736d5acd3b71675410469727b } } } -@@ -1629,6 +1633,7 @@ public class ServerGamePacketListenerImpl +@@ -1631,6 +1635,7 @@ public class ServerGamePacketListenerImpl d7 = d3 * d3 + d4 * d4 + d5 * d5; boolean movedWrongly = false; // Paper - Add fail move event; rename if (!this.player.isChangingDimension() diff --git a/divinemc-server/minecraft-patches/features/0042-Optimize-Raids.patch b/divinemc-server/minecraft-patches/features/0031-Optimize-Raids.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0042-Optimize-Raids.patch rename to divinemc-server/minecraft-patches/features/0031-Optimize-Raids.patch diff --git a/divinemc-server/minecraft-patches/features/0044-Small-optimization-to-LinearPalette.patch b/divinemc-server/minecraft-patches/features/0032-Small-optimization-to-LinearPalette.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0044-Small-optimization-to-LinearPalette.patch rename to divinemc-server/minecraft-patches/features/0032-Small-optimization-to-LinearPalette.patch diff --git a/divinemc-server/minecraft-patches/features/0045-Use-switch-for-VarInt-write.patch b/divinemc-server/minecraft-patches/features/0033-Use-switch-for-VarInt-write.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0045-Use-switch-for-VarInt-write.patch rename to divinemc-server/minecraft-patches/features/0033-Use-switch-for-VarInt-write.patch diff --git a/divinemc-server/minecraft-patches/features/0046-Optimize-Fluids.patch b/divinemc-server/minecraft-patches/features/0034-Optimize-Fluids.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0046-Optimize-Fluids.patch rename to divinemc-server/minecraft-patches/features/0034-Optimize-Fluids.patch diff --git a/divinemc-server/minecraft-patches/features/0047-Optimize-Structure-Generation.patch b/divinemc-server/minecraft-patches/features/0035-Optimize-Structure-Generation.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0047-Optimize-Structure-Generation.patch rename to divinemc-server/minecraft-patches/features/0035-Optimize-Structure-Generation.patch diff --git a/divinemc-server/minecraft-patches/features/0048-Implement-NoChatReports.patch b/divinemc-server/minecraft-patches/features/0036-Implement-NoChatReports.patch similarity index 99% rename from divinemc-server/minecraft-patches/features/0048-Implement-NoChatReports.patch rename to divinemc-server/minecraft-patches/features/0036-Implement-NoChatReports.patch index 16db10b..2dee144 100644 --- a/divinemc-server/minecraft-patches/features/0048-Implement-NoChatReports.patch +++ b/divinemc-server/minecraft-patches/features/0036-Implement-NoChatReports.patch @@ -287,7 +287,7 @@ index 667ef5b2ab50eeb0491f7fe0bc8913ec29a4603a..a7c4fad2b1cb0cbac742a18d37d688bb if (packet == null || this.processedDisconnect) { // Spigot return; diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 7ed75ef10e3d4504cebb0ad544e05d9544642c9e..3165fd57f8f04251f220716beab49f6f43736eeb 100644 +index 2db120cd68447a4adc6f4ed6334fa52b8b55effc..84250c9786f4886fe4ab2e42808f8162da3f45d8 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -276,7 +276,7 @@ public abstract class PlayerList { @@ -299,7 +299,7 @@ index 7ed75ef10e3d4504cebb0ad544e05d9544642c9e..3165fd57f8f04251f220716beab49f6f ) ); player.getBukkitEntity().sendSupportedChannels(); // CraftBukkit -@@ -1332,6 +1332,7 @@ public abstract class PlayerList { +@@ -1333,6 +1333,7 @@ public abstract class PlayerList { } public boolean verifyChatTrusted(PlayerChatMessage message) { diff --git a/divinemc-server/minecraft-patches/features/0049-Lag-compensation.patch b/divinemc-server/minecraft-patches/features/0037-Lag-compensation.patch similarity index 99% rename from divinemc-server/minecraft-patches/features/0049-Lag-compensation.patch rename to divinemc-server/minecraft-patches/features/0037-Lag-compensation.patch index 3e277d2..7c746cb 100644 --- a/divinemc-server/minecraft-patches/features/0049-Lag-compensation.patch +++ b/divinemc-server/minecraft-patches/features/0037-Lag-compensation.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lag compensation diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 141c19eb290080f762da1e2090dae0609f2e3575..5a7cb4cffa218a17300c74ee4d95b08b705324ea 100644 +index 824f9200b66639ad1e3e821c8ae2ea4c66fe0b30..dd88e4d0f72a482e4feea38bc194fc16799adf02 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -288,6 +288,7 @@ 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 5a7cb4cffa218a17300c74ee4d95b08b705324ea..4a53105e46e338a52bc5ad22d51688a9a261d9e5 100644 +index dd88e4d0f72a482e4feea38bc194fc16799adf02..2baa4dc93bcc448ce65bae50ca39d41e562e2211 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -2640,8 +2640,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -Date: Mon, 7 Jul 2025 03:44:35 +0300 -Subject: [PATCH] SparklyPaper: Reset dirty flag when loading maps from the - disk - -Original project: https://github.com/SparklyPower/SparklyPaper - -Patch description: - -By default, the server will start rewriting all map datas to the disk after loading it, even if the map didn't have any changes -This also slows down world saving a lot if you have a lot of maps - -diff --git a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -index 7bbeed6c998c91e68376d3f17a510d68e3cd0b27..ebb0b7e5047efa65e8b6986f12dd5a7d6c0e9613 100644 ---- a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -+++ b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java -@@ -160,6 +160,7 @@ public class MapItemSavedData extends SavedData { - } - - this.vanillaRender.buffer = colors.array(); // Paper - Use Vanilla map renderer when possible -+ this.setDirty(false); // DivineMC - SparklyPaper: Reset dirty flag when loading maps from the disk - } - - public static MapItemSavedData createFresh( diff --git a/divinemc-server/minecraft-patches/features/0052-Command-block-parse-results-caching.patch b/divinemc-server/minecraft-patches/features/0040-Command-block-parse-results-caching.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0052-Command-block-parse-results-caching.patch rename to divinemc-server/minecraft-patches/features/0040-Command-block-parse-results-caching.patch diff --git a/divinemc-server/minecraft-patches/features/0053-Player-ProfileResult-caching.patch b/divinemc-server/minecraft-patches/features/0041-Player-ProfileResult-caching.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0053-Player-ProfileResult-caching.patch rename to divinemc-server/minecraft-patches/features/0041-Player-ProfileResult-caching.patch diff --git a/divinemc-server/minecraft-patches/features/0054-Implement-Secure-Seed.patch b/divinemc-server/minecraft-patches/features/0042-Implement-Secure-Seed.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0054-Implement-Secure-Seed.patch rename to divinemc-server/minecraft-patches/features/0042-Implement-Secure-Seed.patch diff --git a/divinemc-server/minecraft-patches/features/0055-Dynamic-Activation-of-Brain.patch b/divinemc-server/minecraft-patches/features/0043-Dynamic-Activation-of-Brain.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0055-Dynamic-Activation-of-Brain.patch rename to divinemc-server/minecraft-patches/features/0043-Dynamic-Activation-of-Brain.patch diff --git a/divinemc-server/minecraft-patches/features/0043-SparklyPaper-Optimize-canSee-checks.patch b/divinemc-server/minecraft-patches/features/0043-SparklyPaper-Optimize-canSee-checks.patch deleted file mode 100644 index c0914ed..0000000 --- a/divinemc-server/minecraft-patches/features/0043-SparklyPaper-Optimize-canSee-checks.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sat, 1 Feb 2025 19:52:39 +0300 -Subject: [PATCH] SparklyPaper: Optimize "canSee" checks - -Original project: https://github.com/SparklyPower/SparklyPaper - -Patch description: - -The "canSee" checks is in a hot path, invoked by each entity for each player on the server if they are in tracking range, so optimizing it is pretty nice -First, we change the original "HashMap" to fastutil's "Object2ObjectOpenHashMap", because the containsKey throughput is better -Then, we add a "isEmpty()" check before attempting to check if the map contains something -This seems stupid, but it does seem that it improves the performance a bit, and it makes sense, "containsKey(...)" does not attempt to check the map size before attempting to check if the map contains the key -We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice. - -diff --git a/net/minecraft/server/level/ChunkMap.java b/net/minecraft/server/level/ChunkMap.java -index edda52a8430386238be4963e8ea2406f0c2d4df3..c0d996fb99f053863ce623889add3feb70d7137d 100644 ---- a/net/minecraft/server/level/ChunkMap.java -+++ b/net/minecraft/server/level/ChunkMap.java -@@ -1295,7 +1295,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - flag = flag && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); - // Paper end - Configurable entity tracking range by Y - // CraftBukkit start - respect vanish API -- if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits -+ if (flag && !player.getBukkitEntity().canSeeChunkMapUpdatePlayer(this.entity.getBukkitEntity())) { // Paper - only consider hits // DivineMC - SparklyPaper: Optimize "canSee" checks - flag = false; - } - // CraftBukkit end diff --git a/divinemc-server/minecraft-patches/features/0056-Petal-Async-Pathfinding.patch b/divinemc-server/minecraft-patches/features/0044-Petal-Async-Pathfinding.patch similarity index 100% rename from divinemc-server/minecraft-patches/features/0056-Petal-Async-Pathfinding.patch rename to divinemc-server/minecraft-patches/features/0044-Petal-Async-Pathfinding.patch diff --git a/divinemc-server/minecraft-patches/features/0057-Petal-Multithreaded-Tracker.patch b/divinemc-server/minecraft-patches/features/0045-Petal-Multithreaded-Tracker.patch similarity index 99% rename from divinemc-server/minecraft-patches/features/0057-Petal-Multithreaded-Tracker.patch rename to divinemc-server/minecraft-patches/features/0045-Petal-Multithreaded-Tracker.patch index d02c5b8..755b962 100644 --- a/divinemc-server/minecraft-patches/features/0057-Petal-Multithreaded-Tracker.patch +++ b/divinemc-server/minecraft-patches/features/0045-Petal-Multithreaded-Tracker.patch @@ -399,10 +399,10 @@ index 78bf3365b426e7090182af84630111d410a2460e..3c1795eb56900cd80cfec38bd1d922d5 } } diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 253eb728773ab09023e8db56bb6382d9e21a96b3..42ab4f50d07539aafba120e863d5b9cfc5a436e8 100644 +index 7b10fe7cf66757ed68f9e39e03259700dfabf184..c537d22fd97225c1b6d58bed61add83a20d9be24 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1934,7 +1934,6 @@ public class ServerGamePacketListenerImpl +@@ -1936,7 +1936,6 @@ public class ServerGamePacketListenerImpl } public void internalTeleport(PositionMoveRotation posMoveRotation, Set relatives) { diff --git a/divinemc-server/minecraft-patches/features/0058-Pufferfish-Optimize-mob-spawning.patch b/divinemc-server/minecraft-patches/features/0046-Pufferfish-Optimize-mob-spawning.patch similarity index 99% rename from divinemc-server/minecraft-patches/features/0058-Pufferfish-Optimize-mob-spawning.patch rename to divinemc-server/minecraft-patches/features/0046-Pufferfish-Optimize-mob-spawning.patch index e925976..d4c7b76 100644 --- a/divinemc-server/minecraft-patches/features/0058-Pufferfish-Optimize-mob-spawning.patch +++ b/divinemc-server/minecraft-patches/features/0046-Pufferfish-Optimize-mob-spawning.patch @@ -9,7 +9,7 @@ Original project: https://github.com/pufferfish-gg/Pufferfish This patch reduces the main-thread impact of mob spawning by moving spawning work to other threads diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index 4a53105e46e338a52bc5ad22d51688a9a261d9e5..9bd7cc58cf10489f0e463347cdc2bc537f0509ec 100644 +index 2baa4dc93bcc448ce65bae50ca39d41e562e2211..a0cad0bdb8245b19f4ff983245d61d7b237a4042 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -289,6 +289,7 @@ 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 951199cb015694790ea8d81264779a7d294ab6ef..85f0abc2ead2d78a7189abaac8f803b70328a21b 100644 +index a0cad0bdb8245b19f4ff983245d61d7b237a4042..c56fa00f9443b6a3a44f0b89da9dcfb6a4faf1c8 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -290,6 +290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop= 0 && i <= maxSize) { diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java -index b6cfd764273a2102525a66955ab2217071d0154d..0ccfbee593fc16073484b1d4ed9458406b8cce50 100644 +index 008530bf0f09180ba365fc514b51d22630564de2..7bc07d120ca3b8cffa6b1147f1687b5a4023b709 100644 --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java @@ -1788,6 +1788,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop -Date: Sun, 6 Jul 2025 01:49:27 +0300 -Subject: [PATCH] Parchment: Make FixLight use action bar - -Original license: GPLv3 -Original project: https://github.com/ProjectEdenGG/Parchment - -diff --git a/io/papermc/paper/command/subcommands/FixLightCommand.java b/io/papermc/paper/command/subcommands/FixLightCommand.java -index 85950a1aa732ab8c01ad28bec9e0de140e1a172e..fbc38577599dd0e606e2d225ce98943ab49e74f7 100644 --- a/io/papermc/paper/command/subcommands/FixLightCommand.java +++ b/io/papermc/paper/command/subcommands/FixLightCommand.java -@@ -95,17 +95,23 @@ public final class FixLightCommand implements PaperSubcommand { +@@ -95,17 +_,23 @@ ((StarLightLightingProvider)lightengine).starlight$serverRelightChunks(chunks, (final ChunkPos chunkPos) -> { ++relitChunks[0]; diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch index 949f7c4..cfe26cd 100644 --- a/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch @@ -1,5 +1,19 @@ --- a/net/minecraft/server/MinecraftServer.java +++ b/net/minecraft/server/MinecraftServer.java +@@ -989,6 +_,13 @@ + if (this.hasStopped) return; + this.hasStopped = true; + } ++ // DivineMC start - Respawn players that were dead on server restart ++ for (ServerPlayer player : this.playerList.players) { ++ if (player.isDeadOrDying() || (player.isRemoved() && player.getRemovalReason() == net.minecraft.world.entity.Entity.RemovalReason.KILLED)) { ++ this.playerList.respawn(player, false, net.minecraft.world.entity.Entity.RemovalReason.KILLED, org.bukkit.event.player.PlayerRespawnEvent.RespawnReason.DEATH); ++ } ++ } ++ // DivineMC end - Respawn players that were dead on server restart + if (!hasLoggedStop && isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging + shutdownThread = Thread.currentThread(); // Paper - Improved watchdog support + org.spigotmc.WatchdogThread.doStop(); // Paper - Improved watchdog support @@ -1080,6 +_,7 @@ // Paper end - rewrite chunk system // Paper start - Improved watchdog support - move final shutdown items here diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch new file mode 100644 index 0000000..567cd83 --- /dev/null +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch @@ -0,0 +1,11 @@ +--- a/net/minecraft/server/level/ChunkMap.java ++++ b/net/minecraft/server/level/ChunkMap.java +@@ -1302,7 +_,7 @@ + flag = flag && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z); + // Paper end - Configurable entity tracking range by Y + // CraftBukkit start - respect vanish API +- if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits ++ if (flag && !player.getBukkitEntity().canSeeChunkMapUpdatePlayer(this.entity.getBukkitEntity())) { // Paper - only consider hits // DivineMC - SparklyPaper: Optimize "canSee" checks + flag = false; + } + // CraftBukkit end diff --git a/divinemc-server/minecraft-patches/features/0074-Leaves-Syncmatica-Protocol.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch similarity index 67% rename from divinemc-server/minecraft-patches/features/0074-Leaves-Syncmatica-Protocol.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch index 6acc478..11d79d4 100644 --- a/divinemc-server/minecraft-patches/features/0074-Leaves-Syncmatica-Protocol.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerGamePacketListenerImpl.java.patch @@ -1,16 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Thu, 10 Jul 2025 22:17:00 +0300 -Subject: [PATCH] Leaves: Syncmatica Protocol - -Original project: https://github.com/LeavesMC/Leaves -Original license: GPLv3 - -diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index e8fd78e2898931f65e783ad46b5b73ce3fbde235..75d9d06066c750ac9a176adc021410f1265cd36f 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -313,6 +313,7 @@ public class ServerGamePacketListenerImpl +@@ -313,6 +_,7 @@ private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80); // Paper - Limit client sign length private final io.papermc.paper.event.packet.ClientTickEndEvent tickEndEvent; // Paper - add client tick end event public final io.papermc.paper.connection.PaperPlayerGameConnection playerGameConnection; // Paper @@ -18,7 +8,7 @@ index e8fd78e2898931f65e783ad46b5b73ce3fbde235..75d9d06066c750ac9a176adc021410f1 public ServerGamePacketListenerImpl(MinecraftServer server, Connection connection, ServerPlayer player, CommonListenerCookie cookie) { super(server, connection, cookie); -@@ -324,6 +325,7 @@ public class ServerGamePacketListenerImpl +@@ -324,6 +_,7 @@ this.chatMessageChain = new FutureChain(server.chatExecutor); // CraftBukkit - async chat this.tickEndEvent = new io.papermc.paper.event.packet.ClientTickEndEvent(player.getBukkitEntity()); // Paper - add client tick end event this.playerGameConnection = new io.papermc.paper.connection.PaperPlayerGameConnection(this); // Paper diff --git a/divinemc-server/minecraft-patches/features/0019-Don-t-respond-ping-before-start-fully.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch similarity index 66% rename from divinemc-server/minecraft-patches/features/0019-Don-t-respond-ping-before-start-fully.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch index c48b23c..8db46a9 100644 --- a/divinemc-server/minecraft-patches/features/0019-Don-t-respond-ping-before-start-fully.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/network/ServerStatusPacketListenerImpl.java.patch @@ -1,15 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sun, 6 Jul 2025 02:48:57 +0300 -Subject: [PATCH] Don't respond ping before start fully - -This is rewritten Purpur patch, to make this configurable - -diff --git a/net/minecraft/server/network/ServerStatusPacketListenerImpl.java b/net/minecraft/server/network/ServerStatusPacketListenerImpl.java -index 1b966dc52b067cd9d1fa9f500b692e3f75f1cc90..ff4857522fc9bd5cdd01e3d0161418eef88886fc 100644 --- a/net/minecraft/server/network/ServerStatusPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerStatusPacketListenerImpl.java -@@ -37,7 +37,10 @@ public class ServerStatusPacketListenerImpl implements ServerStatusPacketListene +@@ -37,7 +_,10 @@ } else { this.hasRequestedStatus = true; // this.connection.send(new ClientboundStatusResponsePacket(this.status)); // Paper diff --git a/divinemc-server/minecraft-patches/features/0073-Leaves-Xaero-s-Map-Protocol.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch similarity index 59% rename from divinemc-server/minecraft-patches/features/0073-Leaves-Xaero-s-Map-Protocol.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch index eff7fd8..614157e 100644 --- a/divinemc-server/minecraft-patches/features/0073-Leaves-Xaero-s-Map-Protocol.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/server/players/PlayerList.java.patch @@ -1,16 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Thu, 10 Jul 2025 22:15:39 +0300 -Subject: [PATCH] Leaves: Xaero's Map Protocol - -Original project: https://github.com/LeavesMC/Leaves -Original license: GPLv3 - -diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index a695a3152dbc72f1b20c713574763455b2569e1c..96af2c75b526c59510965665da0b2ca00bf657b3 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java -@@ -1172,6 +1172,7 @@ public abstract class PlayerList { +@@ -1143,6 +_,7 @@ player.connection.send(new ClientboundInitializeBorderPacket(worldBorder)); player.connection.send(new ClientboundSetTimePacket(level.getGameTime(), level.getDayTime(), level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); player.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle())); diff --git a/divinemc-server/minecraft-patches/features/0013-SparklyPaper-Clear-dirty-stats-after-copying.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch similarity index 59% rename from divinemc-server/minecraft-patches/features/0013-SparklyPaper-Clear-dirty-stats-after-copying.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch index 68a3fe9..e2245e0 100644 --- a/divinemc-server/minecraft-patches/features/0013-SparklyPaper-Clear-dirty-stats-after-copying.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/stats/ServerStatsCounter.java.patch @@ -1,15 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sun, 6 Jul 2025 02:10:59 +0300 -Subject: [PATCH] SparklyPaper: Clear dirty stats after copying - -Original project: https://github.com/SparklyPower/SparklyPaper - -diff --git a/net/minecraft/stats/ServerStatsCounter.java b/net/minecraft/stats/ServerStatsCounter.java -index 16e06085ed3c0f6a0b35c730b63b75824f44a905..b2d8f5d146ec10d34a4e71cbfc975fb68e5a8d04 100644 --- a/net/minecraft/stats/ServerStatsCounter.java +++ b/net/minecraft/stats/ServerStatsCounter.java -@@ -98,12 +98,6 @@ public class ServerStatsCounter extends StatsCounter { +@@ -98,12 +_,6 @@ this.dirty.add(stat); } @@ -22,7 +13,7 @@ index 16e06085ed3c0f6a0b35c730b63b75824f44a905..b2d8f5d146ec10d34a4e71cbfc975fb6 public void parseLocal(DataFixer fixerUpper, String json) { try { JsonElement jsonElement = StrictJsonParser.parse(json); -@@ -139,10 +133,12 @@ public class ServerStatsCounter extends StatsCounter { +@@ -139,9 +_,11 @@ public void sendStats(ServerPlayer player) { Object2IntMap> map = new Object2IntOpenHashMap<>(); @@ -30,9 +21,8 @@ index 16e06085ed3c0f6a0b35c730b63b75824f44a905..b2d8f5d146ec10d34a4e71cbfc975fb6 + for (Stat stat : this.dirty) { // DivineMC - SparklyPaper: Skip dirty stats copy when requesting player stats map.put(stat, this.getValue(stat)); } - -+ this.dirty.clear(); // DivineMC - SparklyPaper: Clear dirty stats after copying + ++ this.dirty.clear(); // DivineMC - SparklyPaper: Clear dirty stats after copying + player.connection.send(new ClientboundAwardStatsPacket(map)); } - } 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 61cf3bd..4175c94 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,6 +16,14 @@ 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"); +@@ -4219,6 +_,7 @@ + } + + public boolean canTeleport(Level fromLevel, Level toLevel) { ++ if (!fromLevel.divineConfig.allowEntityPortalWithPassenger && (this.isPassenger() || this.isVehicle())) return false; // DivineMC - Allow entity teleport with passenger + 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()) { @@ -4448,6 +_,7 @@ } diff --git a/divinemc-server/minecraft-patches/features/0012-Re-Fix-MC-117075.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch similarity index 74% rename from divinemc-server/minecraft-patches/features/0012-Re-Fix-MC-117075.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch index 003704e..5432eec 100644 --- a/divinemc-server/minecraft-patches/features/0012-Re-Fix-MC-117075.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch @@ -1,14 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sat, 1 Feb 2025 19:43:42 +0300 -Subject: [PATCH] Re-Fix MC-117075 - - -diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java -index 9625213b7c1295b813071dbedea5366510c7072f..bf38e3bfcb0b96c4529d5e535893043512f52b02 100644 --- a/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java -@@ -104,7 +104,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl +@@ -106,7 +_,7 @@ public static final int TICKS_PER_DAY = 24000; public static final int MAX_ENTITY_SPAWN_Y = 20000000; public static final int MIN_ENTITY_SPAWN_Y = -20000000; @@ -17,7 +9,7 @@ index 9625213b7c1295b813071dbedea5366510c7072f..bf38e3bfcb0b96c4529d5e5358930435 protected final NeighborUpdater neighborUpdater; private final List pendingBlockEntityTickers = Lists.newArrayList(); private boolean tickingBlockEntities; -@@ -1510,13 +1510,11 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl +@@ -1501,13 +_,11 @@ boolean runsNormally = this.tickRateManager().runsNormally(); int tickedEntities = 0; // Paper - rewrite chunk system @@ -32,7 +24,7 @@ index 9625213b7c1295b813071dbedea5366510c7072f..bf38e3bfcb0b96c4529d5e5358930435 } else if (runsNormally && this.shouldTickBlocksAt(tickingBlockEntity.getPos())) { tickingBlockEntity.tick(); // Paper start - rewrite chunk system -@@ -1526,7 +1524,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup, AutoCl +@@ -1517,7 +_,7 @@ // Paper end - rewrite chunk system } } @@ -40,4 +32,4 @@ index 9625213b7c1295b813071dbedea5366510c7072f..bf38e3bfcb0b96c4529d5e5358930435 + this.blockEntityTickers.removeMarkedEntries(); // DivineMC - optimize block entity removals - Fix MC-117075 this.tickingBlockEntities = false; - this.spigotConfig.currentPrimedTnt = 0; // Spigot + profilerFiller.pop(); diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch new file mode 100644 index 0000000..07460b9 --- /dev/null +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/SlimeBlock.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/level/block/SlimeBlock.java ++++ b/net/minecraft/world/level/block/SlimeBlock.java +@@ -42,6 +_,7 @@ + Vec3 deltaMovement = entity.getDeltaMovement(); + if (deltaMovement.y < 0.0) { + double d = entity instanceof LivingEntity ? 1.0 : 0.8; ++ if (org.bxteam.divinemc.config.DivineConfig.FixesCategory.fixIncorrectBounceLogic) entity.setOnGround(deltaMovement.y > -0.15); // DivineMC - Carpet-Fixes: Fix Slime Block Bounce Logic + entity.setDeltaMovement(deltaMovement.x, -deltaMovement.y * d, deltaMovement.z); + } + } diff --git a/divinemc-server/minecraft-patches/features/0022-Configurable-MC-59471.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch similarity index 76% rename from divinemc-server/minecraft-patches/features/0022-Configurable-MC-59471.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch index c6d5cfc..4e2c08c 100644 --- a/divinemc-server/minecraft-patches/features/0022-Configurable-MC-59471.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/TripWireHookBlock.java.patch @@ -1,17 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Wed, 5 Mar 2025 18:08:25 +0300 -Subject: [PATCH] Configurable MC-59471 - -Bring back MC-59471, MC-129055 on 1.21.2+, which fixed in 1.21.2 snapshots 24w33a and 24w36a - -P.S: This setting is different from skip-tripwire-hook-placement-validation in Paper - -diff --git a/net/minecraft/world/level/block/TripWireHookBlock.java b/net/minecraft/world/level/block/TripWireHookBlock.java -index 8a3a8b0fdf9545a41501dc992c6982d9c8ce7b66..52fa81fdce9d7998f4c2d3b90dfc08391218f7fd 100644 --- a/net/minecraft/world/level/block/TripWireHookBlock.java +++ b/net/minecraft/world/level/block/TripWireHookBlock.java -@@ -187,7 +187,6 @@ public class TripWireHookBlock extends Block { +@@ -187,7 +_,6 @@ if (!cancelledEmitterHook) { // Paper - Call BlockRedstoneEvent emitState(level, pos, flag2, flag3, flag, flag1); if (!attaching) { @@ -19,7 +8,7 @@ index 8a3a8b0fdf9545a41501dc992c6982d9c8ce7b66..52fa81fdce9d7998f4c2d3b90dfc0839 level.setBlock(pos, blockState1.setValue(FACING, direction), 3); if (shouldNotifyNeighbours) { notifyNeighbors(block, level, pos, direction); -@@ -200,10 +199,18 @@ public class TripWireHookBlock extends Block { +@@ -200,10 +_,18 @@ BlockPos blockPos1 = pos.relative(direction, i2); BlockState blockState2 = blockStates[i2]; if (blockState2 != null) { diff --git a/divinemc-server/minecraft-patches/features/0029-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/HopperBlockEntity.java.patch similarity index 59% rename from divinemc-server/minecraft-patches/features/0029-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/HopperBlockEntity.java.patch index a98f5f5..032fe81 100644 --- a/divinemc-server/minecraft-patches/features/0029-SparklyPaper-Allow-throttling-hopper-checks-if-the-t.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/block/entity/HopperBlockEntity.java.patch @@ -1,16 +1,6 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sat, 12 Apr 2025 17:40:53 +0300 -Subject: [PATCH] SparklyPaper: Allow throttling hopper checks if the target - container is full - -Original project: https://github.com/SparklyPower/SparklyPaper - -diff --git a/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/net/minecraft/world/level/block/entity/HopperBlockEntity.java -index 800b7e78ae989868ed0b9e060c80dcd002759412..3c9843979baff7ed419d4ae2124d7ccf47b95b5b 100644 --- a/net/minecraft/world/level/block/entity/HopperBlockEntity.java +++ b/net/minecraft/world/level/block/entity/HopperBlockEntity.java -@@ -423,6 +423,11 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen +@@ -423,6 +_,11 @@ } else { Direction opposite = blockEntity.facing.getOpposite(); if (isFullContainer(attachedContainer, opposite)) { diff --git a/divinemc-server/minecraft-patches/features/0018-Optimize-block-state-lookup.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch similarity index 63% rename from divinemc-server/minecraft-patches/features/0018-Optimize-block-state-lookup.patch rename to divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch index b64344c..564feb3 100644 --- a/divinemc-server/minecraft-patches/features/0018-Optimize-block-state-lookup.patch +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/chunk/LevelChunk.java.patch @@ -1,24 +1,18 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com> -Date: Sun, 6 Jul 2025 02:47:58 +0300 -Subject: [PATCH] Optimize block state lookup - - -diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java -index b88254fb3c12b99684c6ede1ae8a6671ffbe9ad6..dbb4142ea38cdf484e74c81103cebb024ae8813d 100644 --- a/net/minecraft/world/level/chunk/LevelChunk.java +++ b/net/minecraft/world/level/chunk/LevelChunk.java -@@ -270,11 +270,18 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p +@@ -272,11 +_,18 @@ public BlockState getBlockStateFinal(final int x, final int y, final int z) { // Copied and modified from below final int sectionIndex = this.getSectionIndex(y); - if (sectionIndex < 0 || sectionIndex >= this.sections.length - || this.sections[sectionIndex].nonEmptyBlockCount == 0) { +- return Blocks.AIR.defaultBlockState(); +- } +- return this.sections[sectionIndex].states.get((y & 15) << 8 | (z & 15) << 4 | x & 15); + // DivineMC start - Optimize block state lookup + if (sectionIndex < 0 || sectionIndex >= this.sections.length) { - return Blocks.AIR.defaultBlockState(); - } -- return this.sections[sectionIndex].states.get((y & 15) << 8 | (z & 15) << 4 | x & 15); ++ return Blocks.AIR.defaultBlockState(); ++ } + + final LevelChunkSection section = this.sections[sectionIndex]; + if (section.nonEmptyBlockCount == 0) { diff --git a/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch new file mode 100644 index 0000000..df5c780 --- /dev/null +++ b/divinemc-server/minecraft-patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java ++++ b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java +@@ -160,6 +_,7 @@ + } + + this.vanillaRender.buffer = colors.array(); // Paper - Use Vanilla map renderer when possible ++ this.setDirty(false); // DivineMC - SparklyPaper: Reset dirty flag when loading maps from the disk + } + + public static MapItemSavedData createFresh( diff --git a/divinemc-server/paper-patches/features/0001-Rebrand.patch b/divinemc-server/paper-patches/features/0001-Rebrand.patch index 3272a05..e43dfab 100644 --- a/divinemc-server/paper-patches/features/0001-Rebrand.patch +++ b/divinemc-server/paper-patches/features/0001-Rebrand.patch @@ -231,25 +231,10 @@ index 62e2d5704c348955bc8284dc2d54c933b7bcdd06..341f13e57896f03058ea3ec68e69b7cb public void executeAsync(final Runnable runnable) { MCUtil.scheduleAsyncTask(this.catching(runnable, "asynchronous")); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 748bd9650da4a209743b7a5dde584b2e19c5a578..7e90142cb65937103aa99fd011540086449c45c8 100644 +index 748bd9650da4a209743b7a5dde584b2e19c5a578..3a4239d6f5768f7e2b6025477670dd2eb9f8cbc4 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -1,14 +1,8 @@ - package org.bukkit.craftbukkit; - - import java.io.File; --import java.io.IOException; - import java.text.SimpleDateFormat; --import java.util.Calendar; --import java.util.Date; --import java.util.logging.Level; --import java.util.logging.Logger; - import joptsimple.OptionParser; --import joptsimple.OptionSet; - import joptsimple.util.PathConverter; - - import static java.util.Arrays.asList; -@@ -24,7 +18,7 @@ public class Main { +@@ -24,7 +24,7 @@ public class Main { } // Paper end - Reset loggers after shutdown @@ -258,7 +243,7 @@ index 748bd9650da4a209743b7a5dde584b2e19c5a578..7e90142cb65937103aa99fd011540086 if (System.getProperty("jdk.nio.maxCachedBufferSize") == null) System.setProperty("jdk.nio.maxCachedBufferSize", "262144"); // Paper - cap per-thread NIO cache size; https://www.evanjones.ca/java-bytebuffer-leak.html OptionParser parser = new OptionParser() { { -@@ -180,77 +174,6 @@ public class Main { +@@ -180,77 +180,6 @@ public class Main { } }; diff --git a/divinemc-server/paper-patches/features/0002-Configuration.patch b/divinemc-server/paper-patches/features/0002-Configuration.patch index ff40032..19f5613 100644 --- a/divinemc-server/paper-patches/features/0002-Configuration.patch +++ b/divinemc-server/paper-patches/features/0002-Configuration.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configuration diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 592e8a4c04ef5acda9fdfd1405d8ff4952396ada..c8c7fa0304e8eaf0d444fc0c9a36c00bb27ccc71 100644 +index 53702f1e87e143a6b4260a21c858643746814146..906865cdb2ddde3d9e018cd9cca0fa3bdcc9b4d8 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1060,6 +1060,7 @@ public final class CraftServer implements Server { @@ -31,10 +31,10 @@ index 592e8a4c04ef5acda9fdfd1405d8ff4952396ada..c8c7fa0304e8eaf0d444fc0c9a36c00b Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 7e90142cb65937103aa99fd011540086449c45c8..7653ba0259ddc930dc4e2af84636641d3dba6e7f 100644 +index 3a4239d6f5768f7e2b6025477670dd2eb9f8cbc4..0838fcfaa950300f7a394295509be86cab824f99 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -166,6 +166,14 @@ public class Main { +@@ -172,6 +172,14 @@ public class Main { .describedAs("Yml file"); // Purpur end - Purpur config files diff --git a/divinemc-server/paper-patches/features/0009-Implement-loading-plugins-from-external-folder.patch b/divinemc-server/paper-patches/features/0009-Implement-loading-plugins-from-external-folder.patch index dfe2382..9b23a97 100644 --- a/divinemc-server/paper-patches/features/0009-Implement-loading-plugins-from-external-folder.patch +++ b/divinemc-server/paper-patches/features/0009-Implement-loading-plugins-from-external-folder.patch @@ -30,10 +30,10 @@ index 70413fddd23ca1165cb5090cce4fddcb1bbca93f..ae70b84e6473fa2ed94416bf4bef8849 @SuppressWarnings("unchecked") java.util.List files = ((java.util.List) optionSet.valuesOf("add-plugin")).stream().map(File::toPath).toList(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 7653ba0259ddc930dc4e2af84636641d3dba6e7f..1a3a5e8a9119af8ed9d13a61bc5dc7b3ee0b7a65 100644 +index 0838fcfaa950300f7a394295509be86cab824f99..d9bf383c9cb4fedcea84044f7db0da68b05fab76 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -174,6 +174,14 @@ public class Main { +@@ -180,6 +180,14 @@ public class Main { .describedAs("Yml file"); // DivineMC end - Configuration diff --git a/divinemc-server/src/main/java/org/bxteam/divinemc/DivineBootstrap.java b/divinemc-server/src/main/java/org/bxteam/divinemc/DivineBootstrap.java index b182414..bb12442 100644 --- a/divinemc-server/src/main/java/org/bxteam/divinemc/DivineBootstrap.java +++ b/divinemc-server/src/main/java/org/bxteam/divinemc/DivineBootstrap.java @@ -66,9 +66,10 @@ public class DivineBootstrap { SharedConstants.tryDetectVersion(); getStartupVersionMessages().forEach(LOGGER::info); } catch (Throwable t) { - t.printStackTrace(); + LOGGER.error("Failed to initialize the server", t); } } + return options; } diff --git a/divinemc-server/src/main/java/org/bxteam/divinemc/region/type/BufferedRegionFile.java b/divinemc-server/src/main/java/org/bxteam/divinemc/region/type/BufferedRegionFile.java index b6c094c..0e1cb86 100644 --- a/divinemc-server/src/main/java/org/bxteam/divinemc/region/type/BufferedRegionFile.java +++ b/divinemc-server/src/main/java/org/bxteam/divinemc/region/type/BufferedRegionFile.java @@ -37,6 +37,7 @@ import java.util.Set; *

For conversion tools between MCA and buffered region file formats, see: * LinearRegionFileFormatTools */ +@SuppressWarnings({"unused", "FieldMayBeFinal"}) public class BufferedRegionFile implements IRegionFile { private static final double AUTO_COMPACT_PERCENT = 3.0 / 5.0; // 60% private static final long AUTO_COMPACT_SIZE = 1024 * 1024; // 1 MiB @@ -751,7 +752,7 @@ public class BufferedRegionFile implements IRegionFile { } } - private class Sector{ + private class Sector { private final int index; private long offset; private long length;