Merge pull request #437 from JOO200/master

Add check for unchanged materials in BlockBagExtent
This commit is contained in:
Matthew Miller 2018-12-06 15:07:14 +10:00 committed by GitHub
commit b1d8d4901d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,25 +86,27 @@ public class BlockBagExtent extends AbstractDelegateExtent {
if (blockBag != null) {
BlockState existing = getExtent().getBlock(position);
if (!block.getBlockType().getMaterial().isAir()) {
try {
blockBag.fetchPlacedBlock(block.toImmutableState());
} catch (UnplaceableBlockException e) {
return false;
} catch (BlockBagException e) {
if (!missingBlocks.containsKey(block.getBlockType())) {
missingBlocks.put(block.getBlockType(), 1);
} else {
missingBlocks.put(block.getBlockType(), missingBlocks.get(block.getBlockType()) + 1);
if (!block.getBlockType().equals(existing.getBlockType())) {
if (!block.getBlockType().getMaterial().isAir()) {
try {
blockBag.fetchPlacedBlock(block.toImmutableState());
} catch (UnplaceableBlockException e) {
return false;
} catch (BlockBagException e) {
if (!missingBlocks.containsKey(block.getBlockType())) {
missingBlocks.put(block.getBlockType(), 1);
} else {
missingBlocks.put(block.getBlockType(), missingBlocks.get(block.getBlockType()) + 1);
}
return false;
}
return false;
}
}
if (!existing.getBlockType().getMaterial().isAir()) {
try {
blockBag.storeDroppedBlock(existing);
} catch (BlockBagException ignored) {
if (!existing.getBlockType().getMaterial().isAir()) {
try {
blockBag.storeDroppedBlock(existing);
} catch (BlockBagException ignored) {
}
}
}
}