diff --git a/nms-patches/net/minecraft/world/item/ItemTrident.patch b/nms-patches/net/minecraft/world/item/ItemTrident.patch index 9fbf8a329..38b4bc1cf 100644 --- a/nms-patches/net/minecraft/world/item/ItemTrident.patch +++ b/nms-patches/net/minecraft/world/item/ItemTrident.patch @@ -13,7 +13,7 @@ if (k == 0) { EntityThrownTrident entitythrowntrident = new EntityThrownTrident(world, entityhuman, itemstack); -@@ -79,16 +82,39 @@ +@@ -79,11 +82,30 @@ entitythrowntrident.pickup = EntityArrow.PickupStatus.CREATIVE_ONLY; } @@ -45,12 +45,11 @@ } } - entityhuman.awardStat(StatisticList.ITEM_USED.get(this)); - if (k > 0) { -+ // CraftBukkit start -+ org.bukkit.event.player.PlayerRiptideEvent event = new org.bukkit.event.player.PlayerRiptideEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack)); -+ event.getPlayer().getServer().getPluginManager().callEvent(event); -+ // CraftBukkit end - float f = entityhuman.getYRot(); - float f1 = entityhuman.getXRot(); - float f2 = -MathHelper.sin(f * 0.017453292F) * MathHelper.cos(f1 * 0.017453292F); +@@ -100,6 +122,7 @@ + f2 *= f6 / f5; + f3 *= f6 / f5; + f4 *= f6 / f5; ++ org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerRiptideEvent(entityhuman, itemstack, f2, f3, f4); // CraftBukkit + entityhuman.push((double) f2, (double) f3, (double) f4); + entityhuman.startAutoSpinAttack(20); + if (entityhuman.onGround()) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index c74cd39b7..accde7ee7 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -237,6 +237,7 @@ import org.bukkit.event.player.PlayerLevelChangeEvent; import org.bukkit.event.player.PlayerRecipeBookClickEvent; import org.bukkit.event.player.PlayerRecipeBookSettingsChangeEvent; import org.bukkit.event.player.PlayerRecipeDiscoverEvent; +import org.bukkit.event.player.PlayerRiptideEvent; import org.bukkit.event.player.PlayerShearEntityEvent; import org.bukkit.event.player.PlayerSignOpenEvent; import org.bukkit.event.player.PlayerStatisticIncrementEvent; @@ -1452,6 +1453,11 @@ public class CraftEventFactory { return event; } + public static void callPlayerRiptideEvent(EntityHuman player, ItemStack tridentItemStack, float velocityX, float velocityY, float velocityZ) { + PlayerRiptideEvent event = new PlayerRiptideEvent((Player) player.getBukkitEntity(), CraftItemStack.asCraftMirror(tridentItemStack), new Vector(velocityX, velocityY, velocityZ)); + player.level().getCraftServer().getPluginManager().callEvent(event); + } + public static BlockShearEntityEvent callBlockShearEntityEvent(Entity animal, org.bukkit.block.Block dispenser, CraftItemStack is) { BlockShearEntityEvent bse = new BlockShearEntityEvent(dispenser, animal.getBukkitEntity(), is); Bukkit.getPluginManager().callEvent(bse);