diff --git a/patches/server/0030-Shared-Data-Storage.patch b/patches/server/0030-Shared-Data-Storage.patch index 708f88e38..9151a6f23 100644 --- a/patches/server/0030-Shared-Data-Storage.patch +++ b/patches/server/0030-Shared-Data-Storage.patch @@ -82,10 +82,10 @@ index d91ad3622592ece58877f975cdcbf984e61219d7..67a16d32e73099b5b6e1e406341fc6b9 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 -index aad0d7662d530eaa9256de635401bbcde3263286..dae340cdc03bc48de22944675edb443d00a4e807 100644 +index aad0d7662d530eaa9256de635401bbcde3263286..f676c0f91cb971317b5d8f3c183544f693475414 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2102,7 +2102,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2102,14 +2102,14 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public MapItemSavedData getMapData(String id) { // Paper start - Call missing map initialize event & set id @@ -94,6 +94,14 @@ index aad0d7662d530eaa9256de635401bbcde3263286..dae340cdc03bc48de22944675edb443d final net.minecraft.world.level.saveddata.SavedData existing = storage.cache.get(id); if (existing == null && !storage.cache.containsKey(id)) { + final net.minecraft.world.level.saveddata.SavedData.Factory factory = MapItemSavedData.factory(); + final MapItemSavedData map = storage.readSavedData(factory.deserializer(), factory.type(), id); +- storage.cache.put(id, map); + if (map != null) { ++ storage.cache.put(id, map); + map.id = id; + new MapInitializeEvent(map.mapView).callEvent(); + return map; @@ -2123,12 +2123,22 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override public void setMapData(String id, MapItemSavedData state) {