diff --git a/nms-patches/ItemChorusFruit.patch b/nms-patches/ItemChorusFruit.patch new file mode 100644 index 0000000000..d2606afde0 --- /dev/null +++ b/nms-patches/ItemChorusFruit.patch @@ -0,0 +1,32 @@ +--- 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,6 +25,17 @@ + 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; ++ } ++ } ++ // CraftBukkit end ++ + if (entityliving.k(d3, d4, d5)) { + world.a((EntityHuman) null, d0, d1, d2, SoundEffects.af, SoundCategory.PLAYERS, 1.0F, 1.0F); + entityliving.a(SoundEffects.af, 1.0F, 1.0F);