From 02605d55b6b7f6aeba304f29ff8b5b3fd7a168d3 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Wed, 15 Aug 2018 08:51:18 +1000 Subject: [PATCH] SPIGOT-4271: Fix API error when enderman are not carrying a block By: md_5 --- .../java/org/bukkit/craftbukkit/entity/CraftEnderman.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java index 5998530a8..b81693d9f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java @@ -3,6 +3,7 @@ package org.bukkit.craftbukkit.entity; import net.minecraft.server.EntityEnderman; import net.minecraft.server.IBlockData; +import org.bukkit.Material; import org.bukkit.block.data.BlockData; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.block.data.CraftBlockData; @@ -18,13 +19,13 @@ public class CraftEnderman extends CraftMonster implements Enderman { public MaterialData getCarriedMaterial() { IBlockData blockData = getHandle().getCarried(); - return CraftMagicNumbers.getMaterial(blockData); + return (blockData == null) ? Material.AIR.getNewData((byte) 0) : CraftMagicNumbers.getMaterial(blockData); } @Override public BlockData getCarriedBlock() { IBlockData blockData = getHandle().getCarried(); - return CraftBlockData.fromData(blockData); + return (blockData == null) ? null : CraftBlockData.fromData(blockData); } public void setCarriedMaterial(MaterialData data) { @@ -33,7 +34,7 @@ public class CraftEnderman extends CraftMonster implements Enderman { @Override public void setCarriedBlock(BlockData blockData) { - getHandle().setCarried(((CraftBlockData) blockData).getState()); + getHandle().setCarried(blockData == null ? null : ((CraftBlockData) blockData).getState()); } @Override