gracefully handle error in EntityInBlockRemovingProcessor

-  ensures edit continues on chunk correctly
Dieser Commit ist enthalten in:
dordsor21 2023-07-15 12:27:33 +01:00
Ursprung 1745c50878
Commit 8da530ee80
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 1E53E88969FFCF0B

Datei anzeigen

@ -6,8 +6,10 @@ import com.fastasyncworldedit.core.queue.IChunkGet;
import com.fastasyncworldedit.core.queue.IChunkSet; import com.fastasyncworldedit.core.queue.IChunkSet;
import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.CompoundTag;
import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.internal.util.LogManagerCompat;
import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.block.BlockTypes;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
/** /**
@ -17,8 +19,11 @@ import org.jetbrains.annotations.Nullable;
*/ */
public class EntityInBlockRemovingProcessor implements IBatchProcessor { public class EntityInBlockRemovingProcessor implements IBatchProcessor {
private static final Logger LOGGER = LogManagerCompat.getLogger();
@Override @Override
public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) { public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChunkSet set) {
try {
for (CompoundTag tag : get.getEntities()) { for (CompoundTag tag : get.getEntities()) {
// Empty tags for seemingly non-existent entities can exist? // Empty tags for seemingly non-existent entities can exist?
if (tag.getList("Pos").size() == 0) { if (tag.getList("Pos").size() == 0) {
@ -39,6 +44,9 @@ public class EntityInBlockRemovingProcessor implements IBatchProcessor {
set.removeEntity(tag.getUUID()); set.removeEntity(tag.getUUID());
} }
} }
} catch (Exception e) {
LOGGER.warn("Could not remove entities in blocks in chunk {},{}", chunk.getX(), chunk.getZ(), e);
}
return set; return set;
} }