--- a/net/minecraft/server/ItemChorusFruit.java +++ b/net/minecraft/server/ItemChorusFruit.java @@ -1,5 +1,11 @@ package net.minecraft.server; +// CraftBukkit start +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.player.PlayerTeleportEvent; +// CraftBukkit end + public class ItemChorusFruit extends ItemFood { public ItemChorusFruit(int i, float f) { @@ -19,7 +25,21 @@ double d4 = MathHelper.a(entityliving.locY + (double) (entityliving.getRandom().nextInt(16) - 8), 0.0D, (double) (world.Z() - 1)); double d5 = entityliving.locZ + (entityliving.getRandom().nextDouble() - 0.5D) * 16.0D; + // CraftBukkit start + if (entityliving instanceof EntityPlayer) { + Player player = ((EntityPlayer) entityliving).getBukkitEntity(); + PlayerTeleportEvent teleEvent = new PlayerTeleportEvent(player, player.getLocation(), new Location(player.getWorld(), d3, d4, d5), PlayerTeleportEvent.TeleportCause.CHORUS_FRUIT); + world.getServer().getPluginManager().callEvent(teleEvent); + if (teleEvent.isCancelled()) { + break; + } + d3 = teleEvent.getTo().getX(); + d4 = teleEvent.getTo().getY(); + d5 = teleEvent.getTo().getZ(); + } + if (entityliving.k(d3, d4, d5)) { + // CraftBukkit end world.a((EntityHuman) null, d0, d1, d2, SoundEffects.af, SoundCategory.PLAYERS, 1.0F, 1.0F); entityliving.a(SoundEffects.af, 1.0F, 1.0F); break;