Skip to content

Commit c785bd7

Browse files
committed
Fix null handling in getLoadedChunkAsync for paper/spigot 1.21.3/1.21.4
1 parent 9e5e65b commit c785bd7

File tree

2 files changed

+10
-16
lines changed

2 files changed

+10
-16
lines changed

bukkit-helper-121-3/src/main/java/org/dynmap/bukkit/helper/v121_3/MapChunkCache121_3.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,15 @@ public MapChunkCache121_3(GenericChunkCache cc) {
3838

3939
@Override
4040
protected Supplier<GenericChunk> getLoadedChunkAsync(DynmapChunk chunk) {
41-
CompletableFuture<SerializableChunkData> chunkData = CompletableFuture.supplyAsync(() -> {
41+
CompletableFuture<Optional<SerializableChunkData>> chunkData = CompletableFuture.supplyAsync(() -> {
4242
CraftWorld cw = (CraftWorld) w;
4343
Chunk c = cw.getHandle().getChunkIfLoaded(chunk.x, chunk.z);
44-
if (c == null || !c.q) { //!c.loaded
45-
return null;
44+
if (c == null || !c.q) { // !c.loaded
45+
return Optional.empty();
4646
}
47-
return SerializableChunkData.a(cw.getHandle(), c); //SerializableChunkData.copyOf
47+
return Optional.of(SerializableChunkData.a(cw.getHandle(), c)); // SerializableChunkData.copyOf
4848
}, ((CraftServer) Bukkit.getServer()).getServer());
49-
return () -> {
50-
NBTTagCompound nbt = chunkData.join().a(); // SerializableChunkData.write
51-
return parseChunkFromNBT(new NBT.NBTCompound(nbt));
52-
};
49+
return () -> chunkData.join().map(SerializableChunkData::a).map(NBT.NBTCompound::new).map(this::parseChunkFromNBT).orElse(null); // SerializableChunkData::write
5350
}
5451

5552
protected GenericChunk getLoadedChunk(DynmapChunk chunk) {

bukkit-helper-121-4/src/main/java/org/dynmap/bukkit/helper/v121_4/MapChunkCache121_4.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,15 @@ public MapChunkCache121_4(GenericChunkCache cc) {
3838

3939
@Override
4040
protected Supplier<GenericChunk> getLoadedChunkAsync(DynmapChunk chunk) {
41-
CompletableFuture<SerializableChunkData> chunkData = CompletableFuture.supplyAsync(() -> {
41+
CompletableFuture<Optional<SerializableChunkData>> chunkData = CompletableFuture.supplyAsync(() -> {
4242
CraftWorld cw = (CraftWorld) w;
4343
Chunk c = cw.getHandle().getChunkIfLoaded(chunk.x, chunk.z);
44-
if (c == null || !c.q) { //!c.loaded
45-
return null;
44+
if (c == null || !c.q) { // !c.loaded
45+
return Optional.empty();
4646
}
47-
return SerializableChunkData.a(cw.getHandle(), c); //SerializableChunkData.copyOf
47+
return Optional.of(SerializableChunkData.a(cw.getHandle(), c)); // SerializableChunkData.copyOf
4848
}, ((CraftServer) Bukkit.getServer()).getServer());
49-
return () -> {
50-
NBTTagCompound nbt = chunkData.join().a(); // SerializableChunkData.write
51-
return parseChunkFromNBT(new NBT.NBTCompound(nbt));
52-
};
49+
return () -> chunkData.join().map(SerializableChunkData::a).map(NBT.NBTCompound::new).map(this::parseChunkFromNBT).orElse(null); // SerializableChunkData::write
5350
}
5451

5552
protected GenericChunk getLoadedChunk(DynmapChunk chunk) {

0 commit comments

Comments
 (0)