Make block break whitelists / breakPlaceBlocks complement each other; resolves #616

This commit is contained in:
Daniel Saukel 2019-07-28 18:13:56 +02:00
parent a46ddbc1fc
commit 409de0d756

View File

@ -536,19 +536,14 @@ public class DGameWorld extends DInstanceWorld {
ExItem material = VanillaItem.get(block.getType());
ExItem breakTool = caliburn.getExItem(player.getItemInHand());
if (whitelist == null) {
if (rules.canBreakPlacedBlocks()) {
return (!placedBlocks.contains(block));
} else if (rules.canBreakBlocks()) {
return false;
}
} else if (whitelist.containsKey(material) && whitelist.get(material) == null | whitelist.get(material).isEmpty() | whitelist.get(material).contains(breakTool)) {
if (rules.canBreakPlacedBlocks()) {
return (!placedBlocks.contains(block));
} else if (rules.canBreakBlocks()) {
return false;
}
if (rules.canBreakPlacedBlocks() && placedBlocks.contains(block)) {
return false;
}
if (whitelist != null && whitelist.containsKey(material)
&& (whitelist.get(material) == null
|| whitelist.get(material).isEmpty()
|| whitelist.get(material).contains(breakTool))) {
return false;
}
return true;