Work on compile errors

This commit is contained in:
Bjarne Koll 2024-10-25 12:30:19 +02:00
parent afbb0d88dd
commit b06e0b0317
No known key found for this signature in database
GPG key ID: 27F6CCCF55D2EE62
111 changed files with 207 additions and 186 deletions

View file

@ -7,10 +7,10 @@ Subject: [PATCH] Fix missing map initialize event call
public net.minecraft.world.level.storage.DimensionDataStorage readSavedData(Ljava/util/function/Function;Lnet/minecraft/util/datafix/DataFixTypes;Ljava/lang/String;)Lnet/minecraft/world/level/saveddata/SavedData;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 1cb5e107a391ab56942cdb2d1cae7d5646a85ec6..39dba6c2e9de2c1d6716945a49d48d9b76a07c77 100644
index 1cb5e107a391ab56942cdb2d1cae7d5646a85ec6..7acb24c2a34fdcbcb1c0e3cc03b01996689667d3 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1726,13 +1726,24 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1726,13 +1726,29 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@Nullable
@Override
public MapItemSavedData getMapData(MapId id) {
@ -21,22 +21,27 @@ index 1cb5e107a391ab56942cdb2d1cae7d5646a85ec6..39dba6c2e9de2c1d6716945a49d48d9b
+ // Paper start - Call missing map initialize event and set id
+ final DimensionDataStorage storage = this.getServer().overworld().getDataStorage();
+
+ final net.minecraft.world.level.saveddata.SavedData existing = storage.cache.get(id.key());
+ if (existing == null && !storage.cache.containsKey(id.key())) {
+ final MapItemSavedData worldmap = (MapItemSavedData) this.getServer().overworld().getDataStorage().get(MapItemSavedData.factory(), id.key());
+ storage.cache.put(id.key(), worldmap);
+ if (worldmap != null) {
+ final Optional<net.minecraft.world.level.saveddata.SavedData> cacheEntry = storage.cache.get(id.key());
+ if (cacheEntry == null) { // Cache did not contain, try to load and may init
+ final MapItemSavedData worldmap = storage.get(MapItemSavedData.factory(), id.key()); // get populates the cache
+ if (worldmap != null) { // map was read, init it and return
+ worldmap.id = id;
+ new MapInitializeEvent(worldmap.mapView).callEvent();
+ return worldmap;
+ }
+ } else if (existing instanceof MapItemSavedData mapItemSavedData) {
+ mapItemSavedData.id = id;
+
+ return null; // Map does not exist, reading failed.
}
- return worldmap;
- // CraftBukkit end
+
+ return existing instanceof MapItemSavedData data ? data : null;
+ // Cache entry exists, update it with the id ref and return.
+ if (cacheEntry.orElse(null) instanceof final MapItemSavedData mapItemSavedData) {
+ mapItemSavedData.id = id;
+ return mapItemSavedData;
+ }
+
+ return null;
+ // Paper end - Call missing map initialize event and set id
}