diff options
author | md_5 <git@md-5.net> | 2016-12-09 12:45:21 +1100 |
---|---|---|
committer | md_5 <git@md-5.net> | 2016-12-09 12:45:21 +1100 |
commit | caf86c88a91b7b87bb2ace9b28d4ecaa60120c92 (patch) | |
tree | a782d3a940503406abab48c2cd9b3ebad72cfcff /src/main/java/org/bukkit | |
parent | 521b64741e4ba929fbf8bc9f4da4caa2f0e3d9e1 (diff) | |
download | craftbukkit-caf86c88a91b7b87bb2ace9b28d4ecaa60120c92.tar craftbukkit-caf86c88a91b7b87bb2ace9b28d4ecaa60120c92.tar.gz craftbukkit-caf86c88a91b7b87bb2ace9b28d4ecaa60120c92.tar.lz craftbukkit-caf86c88a91b7b87bb2ace9b28d4ecaa60120c92.tar.xz craftbukkit-caf86c88a91b7b87bb2ace9b28d4ecaa60120c92.zip |
Use CraftEventFactory for BlockFormEvent
Diffstat (limited to 'src/main/java/org/bukkit')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java | 15 |
1 files changed, 15 insertions, 0 deletions
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(); + } } |