diff --git a/paper-server/patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch b/paper-server/patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch index ab441a465..b9fffa450 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java.patch @@ -96,6 +96,20 @@ } public static void addTargetDecoration(ItemStack stack, BlockPos pos, String type, Holder mapDecorationType) { +@@ -354,7 +_,12 @@ + } + + public void setColorsDirty(int x, int z) { +- this.setDirty(); ++ // Paper start - Fix unnecessary map data saves ++ this.setColorsDirty(x, z, true); ++ } ++ public void setColorsDirty(int x, int z, boolean markFileDirty) { ++ if (markFileDirty) this.setDirty(); ++ // Paper end - Fix unnecessary map data saves + + for (MapItemSavedData.HoldingPlayer holdingPlayer : this.carriedBy) { + holdingPlayer.markColorsDirty(x, z); @@ -395,7 +_,7 @@ return true; } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCanvas.java b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCanvas.java index 1ca99a7a0..816c81007 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCanvas.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapCanvas.java @@ -64,7 +64,7 @@ public class CraftMapCanvas implements MapCanvas { return; if (this.buffer[y * 128 + x] != color) { this.buffer[y * 128 + x] = color; - this.mapView.worldMap.setColorsDirty(x, y); + this.mapView.worldMap.setColorsDirty(x, y, false); // Paper - Fix unnecessary map data saves } } @@ -141,8 +141,8 @@ public class CraftMapCanvas implements MapCanvas { } // Mark all colors within the image as dirty - this.mapView.worldMap.setColorsDirty(destX, destY); - this.mapView.worldMap.setColorsDirty(destX + effectiveWidth - 1, destY + effectiveHeight - 1); + this.mapView.worldMap.setColorsDirty(destX, destY, false); + this.mapView.worldMap.setColorsDirty(destX + effectiveWidth - 1, destY + effectiveHeight - 1, false); // Paper end }