diff options
Diffstat (limited to 'patch-remap/og/net/minecraft/world/item/ItemBoat.patch')
-rw-r--r-- | patch-remap/og/net/minecraft/world/item/ItemBoat.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/item/ItemBoat.patch b/patch-remap/og/net/minecraft/world/item/ItemBoat.patch new file mode 100644 index 0000000000..93150dedb2 --- /dev/null +++ b/patch-remap/og/net/minecraft/world/item/ItemBoat.patch @@ -0,0 +1,42 @@ +--- a/net/minecraft/world/item/ItemBoat.java ++++ b/net/minecraft/world/item/ItemBoat.java +@@ -60,6 +60,13 @@ + } + + if (movingobjectpositionblock.getType() == MovingObjectPosition.EnumMovingObjectType.BLOCK) { ++ // CraftBukkit start - Boat placement ++ org.bukkit.event.player.PlayerInteractEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(entityhuman, org.bukkit.event.block.Action.RIGHT_CLICK_BLOCK, movingobjectpositionblock.getBlockPos(), movingobjectpositionblock.getDirection(), itemstack, false, enumhand, movingobjectpositionblock.getLocation()); ++ ++ if (event.isCancelled()) { ++ return InteractionResultWrapper.pass(itemstack); ++ } ++ // CraftBukkit end + EntityBoat entityboat = this.getBoat(world, movingobjectpositionblock, itemstack, entityhuman); + + entityboat.setVariant(this.type); +@@ -68,7 +75,15 @@ + return InteractionResultWrapper.fail(itemstack); + } else { + if (!world.isClientSide) { +- world.addFreshEntity(entityboat); ++ // CraftBukkit start ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPlaceEvent(world, movingobjectpositionblock.getBlockPos(), movingobjectpositionblock.getDirection(), entityhuman, entityboat, enumhand).isCancelled()) { ++ return InteractionResultWrapper.fail(itemstack); ++ } ++ ++ if (!world.addFreshEntity(entityboat)) { ++ return InteractionResultWrapper.pass(itemstack); ++ } ++ // CraftBukkit end + world.gameEvent((Entity) entityhuman, GameEvent.ENTITY_PLACE, movingobjectpositionblock.getLocation()); + if (!entityhuman.getAbilities().instabuild) { + itemstack.shrink(1); +@@ -86,7 +101,7 @@ + + private EntityBoat getBoat(World world, MovingObjectPosition movingobjectposition, ItemStack itemstack, EntityHuman entityhuman) { + Vec3D vec3d = movingobjectposition.getLocation(); +- Object object = this.hasChest ? new ChestBoat(world, vec3d.x, vec3d.y, vec3d.z) : new EntityBoat(world, vec3d.x, vec3d.y, vec3d.z); ++ EntityBoat object = this.hasChest ? new ChestBoat(world, vec3d.x, vec3d.y, vec3d.z) : new EntityBoat(world, vec3d.x, vec3d.y, vec3d.z); // CraftBukkit - decompile error + + if (world instanceof WorldServer) { + WorldServer worldserver = (WorldServer) world; |