Fix null handling in getLoadedChunkAsync for paper/spigot 1.21.3/1.21.4
This commit is contained in:
parent
cb89181590
commit
8fc2994925
2 changed files with 10 additions and 16 deletions
|
|
@ -38,18 +38,15 @@ public class MapChunkCache121_3 extends GenericMapChunkCache {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Supplier<GenericChunk> getLoadedChunkAsync(DynmapChunk chunk) {
|
protected Supplier<GenericChunk> getLoadedChunkAsync(DynmapChunk chunk) {
|
||||||
CompletableFuture<SerializableChunkData> chunkData = CompletableFuture.supplyAsync(() -> {
|
CompletableFuture<Optional<SerializableChunkData>> chunkData = CompletableFuture.supplyAsync(() -> {
|
||||||
CraftWorld cw = (CraftWorld) w;
|
CraftWorld cw = (CraftWorld) w;
|
||||||
Chunk c = cw.getHandle().getChunkIfLoaded(chunk.x, chunk.z);
|
Chunk c = cw.getHandle().getChunkIfLoaded(chunk.x, chunk.z);
|
||||||
if (c == null || !c.q) { //!c.loaded
|
if (c == null || !c.q) { // !c.loaded
|
||||||
return null;
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
return SerializableChunkData.a(cw.getHandle(), c); //SerializableChunkData.copyOf
|
return Optional.of(SerializableChunkData.a(cw.getHandle(), c)); // SerializableChunkData.copyOf
|
||||||
}, ((CraftServer) Bukkit.getServer()).getServer());
|
}, ((CraftServer) Bukkit.getServer()).getServer());
|
||||||
return () -> {
|
return () -> chunkData.join().map(SerializableChunkData::a).map(NBT.NBTCompound::new).map(this::parseChunkFromNBT).orElse(null); // SerializableChunkData::write
|
||||||
NBTTagCompound nbt = chunkData.join().a(); // SerializableChunkData.write
|
|
||||||
return parseChunkFromNBT(new NBT.NBTCompound(nbt));
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GenericChunk getLoadedChunk(DynmapChunk chunk) {
|
protected GenericChunk getLoadedChunk(DynmapChunk chunk) {
|
||||||
|
|
|
||||||
|
|
@ -38,18 +38,15 @@ public class MapChunkCache121_4 extends GenericMapChunkCache {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Supplier<GenericChunk> getLoadedChunkAsync(DynmapChunk chunk) {
|
protected Supplier<GenericChunk> getLoadedChunkAsync(DynmapChunk chunk) {
|
||||||
CompletableFuture<SerializableChunkData> chunkData = CompletableFuture.supplyAsync(() -> {
|
CompletableFuture<Optional<SerializableChunkData>> chunkData = CompletableFuture.supplyAsync(() -> {
|
||||||
CraftWorld cw = (CraftWorld) w;
|
CraftWorld cw = (CraftWorld) w;
|
||||||
Chunk c = cw.getHandle().getChunkIfLoaded(chunk.x, chunk.z);
|
Chunk c = cw.getHandle().getChunkIfLoaded(chunk.x, chunk.z);
|
||||||
if (c == null || !c.q) { //!c.loaded
|
if (c == null || !c.q) { // !c.loaded
|
||||||
return null;
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
return SerializableChunkData.a(cw.getHandle(), c); //SerializableChunkData.copyOf
|
return Optional.of(SerializableChunkData.a(cw.getHandle(), c)); // SerializableChunkData.copyOf
|
||||||
}, ((CraftServer) Bukkit.getServer()).getServer());
|
}, ((CraftServer) Bukkit.getServer()).getServer());
|
||||||
return () -> {
|
return () -> chunkData.join().map(SerializableChunkData::a).map(NBT.NBTCompound::new).map(this::parseChunkFromNBT).orElse(null); // SerializableChunkData::write
|
||||||
NBTTagCompound nbt = chunkData.join().a(); // SerializableChunkData.write
|
|
||||||
return parseChunkFromNBT(new NBT.NBTCompound(nbt));
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GenericChunk getLoadedChunk(DynmapChunk chunk) {
|
protected GenericChunk getLoadedChunk(DynmapChunk chunk) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue