13
0
geforkt von Mirrors/Paper

SPIGOT-4271: Fix API error when enderman are not carrying a block

By: md_5 <git@md-5.net>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2018-08-15 08:51:18 +10:00
Ursprung bfe8887cfc
Commit 02605d55b6

Datei anzeigen

@ -3,6 +3,7 @@ package org.bukkit.craftbukkit.entity;
import net.minecraft.server.EntityEnderman; import net.minecraft.server.EntityEnderman;
import net.minecraft.server.IBlockData; import net.minecraft.server.IBlockData;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.block.data.CraftBlockData; import org.bukkit.craftbukkit.block.data.CraftBlockData;
@ -18,13 +19,13 @@ public class CraftEnderman extends CraftMonster implements Enderman {
public MaterialData getCarriedMaterial() { public MaterialData getCarriedMaterial() {
IBlockData blockData = getHandle().getCarried(); IBlockData blockData = getHandle().getCarried();
return CraftMagicNumbers.getMaterial(blockData); return (blockData == null) ? Material.AIR.getNewData((byte) 0) : CraftMagicNumbers.getMaterial(blockData);
} }
@Override @Override
public BlockData getCarriedBlock() { public BlockData getCarriedBlock() {
IBlockData blockData = getHandle().getCarried(); IBlockData blockData = getHandle().getCarried();
return CraftBlockData.fromData(blockData); return (blockData == null) ? null : CraftBlockData.fromData(blockData);
} }
public void setCarriedMaterial(MaterialData data) { public void setCarriedMaterial(MaterialData data) {
@ -33,7 +34,7 @@ public class CraftEnderman extends CraftMonster implements Enderman {
@Override @Override
public void setCarriedBlock(BlockData blockData) { public void setCarriedBlock(BlockData blockData) {
getHandle().setCarried(((CraftBlockData) blockData).getState()); getHandle().setCarried(blockData == null ? null : ((CraftBlockData) blockData).getState());
} }
@Override @Override