From f97fd5873fa1e2b97ae269b032767d763a2c85ed Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sat, 28 Jul 2018 08:28:56 +1000 Subject: [PATCH] SPIGOT-4164: Treat new _AIR blocks as air By: md_5 --- .../org/bukkit/craftbukkit/block/CraftBlock.java | 2 +- .../craftbukkit/entity/CraftLivingEntity.java | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java index d6e4adf147..f5dc63f257 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -489,7 +489,7 @@ public class CraftBlock implements Block { } public boolean isEmpty() { - return getType() == Material.AIR; + return getNMS().isAir(); } public boolean isLiquid() { diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index 3bf5b2a663..ae402a2bf4 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -1,5 +1,6 @@ package org.bukkit.craftbukkit.entity; +import com.google.common.collect.Sets; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; @@ -134,6 +135,9 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } private List getLineOfSight(Set transparent, int maxDistance, int maxLength) { + if (transparent == null) { + transparent = Sets.newHashSet(Material.AIR, Material.CAVE_AIR, Material.VOID_AIR); + } if (maxDistance > 120) { maxDistance = 120; } @@ -146,14 +150,8 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { blocks.remove(0); } Material material = block.getType(); - if (transparent == null) { - if (!material.equals(Material.AIR)) { - break; - } - } else { - if (!transparent.contains(material)) { - break; - } + if (!transparent.contains(material)) { + break; } } return blocks;