Improve map-saving performance

This commit is contained in:
cryptite
2024-03-15 08:51:56 -05:00
parent 91950ecff6
commit 1abc34b454
6 changed files with 33 additions and 14 deletions

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Smooth Teleports
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 254a02ddb5dc867c9dd6c2086791f7ab94247fd3..69b7524859ec51f879cbb9d13f3ab9cec7549562 100644 index c6cb4f17469a8f2e60dd3e28d41402851ce5fb21..7548f66864cd797d3dc51b91c6cf4a99cede4d34 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3550,6 +3550,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3574,6 +3574,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
String getClientBrandName(); String getClientBrandName();
// Paper end // Paper end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AntiXray Bypass
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 69b7524859ec51f879cbb9d13f3ab9cec7549562..23098a702f2073577d1ccec9f4cc4105cd24d668 100644 index 7548f66864cd797d3dc51b91c6cf4a99cede4d34..d1920e61d3c9afb1d99379bfb9849adad2c8c06f 100644
--- a/src/main/java/org/bukkit/entity/Player.java --- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java
@@ -3058,6 +3058,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -3082,6 +3082,10 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
*/ */
public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra); public void spawnParticle(@NotNull Particle particle, @NotNull Location location, int count, double offsetX, double offsetY, double offsetZ, double extra);

View File

@@ -27,10 +27,10 @@ index 5ece375eaf6bcc61864997a389bb5e24625e4505..2d61315c9ab87a216e235f1586618b11
return false; return false;
} else { } else {
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index f476ba6c97944bdffae5aacae2e285d17541f46e..6f88d46662f9a63927f654e256257f30dc1b5f1e 100644 index bc89f9e90af3d69872a58c47a4c2545ba91b6ba5..a67bf805d7a078192987dbeb80af7d29df236d38 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -896,12 +896,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -905,12 +905,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
} }
@Override @Override
@@ -46,7 +46,7 @@ index f476ba6c97944bdffae5aacae2e285d17541f46e..6f88d46662f9a63927f654e256257f30
// CraftBukkit start - tree generation // CraftBukkit start - tree generation
if (this.captureTreeGeneration) { if (this.captureTreeGeneration) {
// Paper start - Protect Bedrock and End Portal/Frames from being destroyed // Paper start - Protect Bedrock and End Portal/Frames from being destroyed
@@ -1097,7 +1097,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1106,7 +1106,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
iblockdata.getBlock().popExperience((ServerLevel) this, pos, xp, breakingEntity); // Paper - Properly handle xp dropping; custom amount iblockdata.getBlock().popExperience((ServerLevel) this, pos, xp, breakingEntity); // Paper - Properly handle xp dropping; custom amount
} }

View File

@@ -37,7 +37,7 @@ index 1ad126d992d95062a3db08374db7a927f23a0cac..7648e43a77b06b9f4a31b216824cdd9c
if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - Fix cancelled powdered snow bucket placement if (!(item instanceof BucketItem/* || item instanceof SolidBucketItem*/)) { // if not bucket // Paper - Fix cancelled powdered snow bucket placement
world.captureBlockStates = true; world.captureBlockStates = true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 6f88d46662f9a63927f654e256257f30dc1b5f1e..ef887fa0089cec0e4543b9c1cec1e48bc2d5cc61 100644 index a67bf805d7a078192987dbeb80af7d29df236d38..5cdadd4cf103af239a46aeb82b7d56f37672ded3 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -181,6 +181,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -181,6 +181,27 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -68,7 +68,7 @@ index 6f88d46662f9a63927f654e256257f30dc1b5f1e..ef887fa0089cec0e4543b9c1cec1e48b
// Paper start - fix and optimise world upgrading // Paper start - fix and optimise world upgrading
// copied from below // copied from below
public static ResourceKey<DimensionType> getDimensionKey(DimensionType manager) { public static ResourceKey<DimensionType> getDimensionKey(DimensionType manager) {
@@ -1046,6 +1067,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1055,6 +1076,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
if (!this.preventPoiUpdated) { if (!this.preventPoiUpdated) {
this.onBlockStateChange(blockposition, iblockdata1, iblockdata2); this.onBlockStateChange(blockposition, iblockdata1, iblockdata2);
} }
@@ -76,7 +76,7 @@ index 6f88d46662f9a63927f654e256257f30dc1b5f1e..ef887fa0089cec0e4543b9c1cec1e48b
// CraftBukkit end // CraftBukkit end
} }
} }
@@ -1067,6 +1089,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -1076,6 +1098,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
if (iblockdata.isAir()) { if (iblockdata.isAir()) {
return false; return false;
} else { } else {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Shared Data Storage
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
index a6f58b3457b7477015c5c6d969e7d83017dd3fa1..7f2070bd2d7eb7f0256a96df00103d20c45e65a0 100644 index b53b6cc4463675096b061b3b65f14a4695c742e2..6100d75e5d9184fd4ec79ffbd00cea0d637e5073 100644
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java --- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
@@ -331,6 +331,7 @@ public class GlobalConfiguration extends ConfigurationPart { @@ -333,6 +333,7 @@ public class GlobalConfiguration extends ConfigurationPart {
public boolean useDimensionTypeForCustomSpawners = false; public boolean useDimensionTypeForCustomSpawners = false;
public boolean strictAdvancementDimensionCheck = false; public boolean strictAdvancementDimensionCheck = false;
public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT; public IntOr.Default compressionLevel = IntOr.Default.USE_DEFAULT;
@@ -17,7 +17,7 @@ index a6f58b3457b7477015c5c6d969e7d83017dd3fa1..7f2070bd2d7eb7f0256a96df00103d20
public BlockUpdates blockUpdates; public BlockUpdates blockUpdates;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 48eaa18bec43e88020047d1ffe57b84146793d6f..3fe8c1f92673400e40dbea4c101256384cad26f6 100644 index 268bebac970646a9d697ec31ea5c89b9f583618f..59db2872229b4229f959bf227d1a2cf54c208ce8 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -2,6 +2,7 @@ package net.minecraft.server; @@ -2,6 +2,7 @@ package net.minecraft.server;
@@ -83,7 +83,7 @@ index 48eaa18bec43e88020047d1ffe57b84146793d6f..3fe8c1f92673400e40dbea4c10125638
this.isSaving = false; this.isSaving = false;
} }
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index f033f530eef10177c349f2673bb3ee8ebdb1d30b..ebd5fe9f64672b01e3981c19aa9464e8f20dbc03 100644 index 21f54a4a3de169ede1687324009aea3f9d986db4..4e5bdf47beab8477fd5278fc4c9ff162ad835d12 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2116,7 +2116,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2116,7 +2116,7 @@ public class ServerLevel extends Level implements WorldGenLevel {

View File

@@ -0,0 +1,19 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: cryptite <cryptite@gmail.com>
Date: Fri, 15 Mar 2024 08:51:06 -0500
Subject: [PATCH] Improve map-saving performance
diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
index 45269115e63cfc3bd7dc740a5694e2cc7c35bcb1..c09e6d89b1595ce26c3489ca9e84a7c2bdf80286 100644
--- a/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
+++ b/src/main/java/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
@@ -331,7 +331,7 @@ public class MapItemSavedData extends SavedData {
--this.trackedDecorationCount;
}
- this.setDecorationsDirty();
+ if (mapicon != null) this.setDecorationsDirty(); // Paper - We should not be dirtying this over unless there was mutation.
}
public static void addTargetDecoration(ItemStack stack, BlockPos pos, String id, MapDecoration.Type type) {