From caf86c88a91b7b87bb2ace9b28d4ecaa60120c92 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 9 Dec 2016 12:45:21 +1100 Subject: Use CraftEventFactory for BlockFormEvent --- .../org/bukkit/craftbukkit/event/CraftEventFactory.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 05084130..74faf995 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -5,6 +5,7 @@ import java.util.ArrayList; import java.util.EnumMap; import java.util.List; import java.util.Map; +import javax.annotation.Nullable; import com.google.common.base.Function; import com.google.common.base.Functions; @@ -1028,4 +1029,18 @@ public class CraftEventFactory { child.world.getServer().getPluginManager().callEvent(event); return event; } + + public static boolean handleBlockFormEvent(World world, BlockPosition pos, net.minecraft.server.Block block, @Nullable Entity entity) { + BlockState blockState = world.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ()).getState(); + blockState.setType(CraftMagicNumbers.getMaterial(block)); + + BlockFormEvent event = (entity == null) ? new BlockFormEvent(blockState.getBlock(), blockState) : new EntityBlockFormEvent(entity.getBukkitEntity(), blockState.getBlock(), blockState); + world.getServer().getPluginManager().callEvent(event); + + if (!event.isCancelled()) { + blockState.update(true); + } + + return !event.isCancelled(); + } } -- cgit v1.2.3