SPIGOT-4164: Treat new _AIR blocks as air

By: md_5 <git@md-5.net>
This commit is contained in:
CraftBukkit/Spigot 2018-07-28 08:28:56 +10:00
parent b69070bbe4
commit f97fd5873f
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;