SPIGOT-4164: Treat new _AIR blocks as air

This commit is contained in:
md_5 2018-07-28 08:28:56 +10:00
parent 4b00823222
commit 4d3ef4821f
2 changed files with 7 additions and 9 deletions

View File

@ -489,7 +489,7 @@ public class CraftBlock implements Block {
} }
public boolean isEmpty() { public boolean isEmpty() {
return getType() == Material.AIR; return getNMS().isAir();
} }
public boolean isLiquid() { public boolean isLiquid() {

View File

@ -1,5 +1,6 @@
package org.bukkit.craftbukkit.entity; package org.bukkit.craftbukkit.entity;
import com.google.common.collect.Sets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator; import java.util.Iterator;
@ -134,6 +135,9 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
} }
private List<Block> getLineOfSight(Set<Material> transparent, int maxDistance, int maxLength) { private List<Block> getLineOfSight(Set<Material> transparent, int maxDistance, int maxLength) {
if (transparent == null) {
transparent = Sets.newHashSet(Material.AIR, Material.CAVE_AIR, Material.VOID_AIR);
}
if (maxDistance > 120) { if (maxDistance > 120) {
maxDistance = 120; maxDistance = 120;
} }
@ -146,14 +150,8 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
blocks.remove(0); blocks.remove(0);
} }
Material material = block.getType(); Material material = block.getType();
if (transparent == null) { if (!transparent.contains(material)) {
if (!material.equals(Material.AIR)) { break;
break;
}
} else {
if (!transparent.contains(material)) {
break;
}
} }
} }
return blocks; return blocks;