diff --git a/src/main/java/net/querz/mcaselector/version/anvil120/Anvil120ChunkRelocator.java b/src/main/java/net/querz/mcaselector/version/anvil120/Anvil120ChunkRelocator.java index dbb80efa..6b79a8b9 100644 --- a/src/main/java/net/querz/mcaselector/version/anvil120/Anvil120ChunkRelocator.java +++ b/src/main/java/net/querz/mcaselector/version/anvil120/Anvil120ChunkRelocator.java @@ -5,7 +5,10 @@ import net.querz.mcaselector.version.Helper; import net.querz.mcaselector.version.anvil118.Anvil118EntityRelocator; import net.querz.nbt.*; +import org.apache.logging.log4j.LogManager; + import java.util.Map; + import static net.querz.mcaselector.validation.ValidationHelper.silent; import static net.querz.mcaselector.version.anvil118.Anvil118EntityRelocator.applyOffsetToEntity; @@ -175,10 +178,14 @@ static void applyOffsetToTileEntity(CompoundTag tileEntity, Point3i offset, int } } - ListTag items = Helper.tagFromCompound(tileEntity, "Items"); - if (items != null) { - items.forEach(i -> applyOffsetToItem((CompoundTag) i, offset, dataVersion)); - } + Tag itemsTag = Helper.tagFromCompound(tileEntity, "Items"); + if (itemsTag != null) { + if(itemsTag instanceof CompoundTag items){ + items.forEach(i -> applyOffsetToItem((CompoundTag) i, offset, dataVersion)); + }else{ + LogManager.getLogger(Anvil120ChunkRelocator.class).warn("Skipping {}", ((StringTag) tileEntity.get("id")).getValue()); + } + } } static void applyOffsetToItem(CompoundTag item, Point3i offset, int dataVersion) { @@ -231,9 +238,13 @@ static void applyOffsetToItem(CompoundTag item, Point3i offset, int dataVersion) // recursively update all items in child containers CompoundTag blockEntityTag = Helper.tagFromCompound(tag, "BlockEntityTag"); - ListTag items = Helper.tagFromCompound(blockEntityTag, "Items"); - if (items != null) { - items.forEach(i -> applyOffsetToItem((CompoundTag) i, offset, dataVersion)); + Tag itemsTag = Helper.tagFromCompound(blockEntityTag, "Items"); + if (itemsTag != null) { + if(itemsTag instanceof ListTag items){ + items.forEach(i -> applyOffsetToItem((CompoundTag) i, offset, dataVersion)); + }else{ + LogManager.getLogger(Anvil120ChunkRelocator.class).warn("Skipping {}", ((StringTag) item.get("id")).getValue()); + } } } }