--- a/net/minecraft/world/item/ItemTrident.java
+++ b/net/minecraft/world/item/ItemTrident.java
@@ -68,9 +68,12 @@
 
                 if (k <= 0 || entityhuman.isInWaterOrRain()) {
                     if (!world.isClientSide) {
+                        // CraftBukkit - moved down
+                        /*
                         itemstack.damage(1, entityhuman, (entityhuman1) -> {
                             entityhuman1.broadcastItemBreak(entityliving.getRaisedHand());
                         });
+                        */
                         if (k == 0) {
                             EntityThrownTrident entitythrowntrident = new EntityThrownTrident(world, entityhuman, itemstack);
 
@@ -79,16 +82,39 @@
                                 entitythrowntrident.pickup = EntityArrow.PickupStatus.CREATIVE_ONLY;
                             }
 
-                            world.addEntity(entitythrowntrident);
+                            // CraftBukkit start
+                            if (!world.addEntity(entitythrowntrident)) {
+                                if (entityhuman instanceof net.minecraft.server.level.EntityPlayer) {
+                                    ((net.minecraft.server.level.EntityPlayer) entityhuman).getBukkitEntity().updateInventory();
+                                }
+                                return;
+                            }
+
+                            itemstack.damage(1, entityhuman, (entityhuman1) -> {
+                                entityhuman1.broadcastItemBreak(entityliving.getRaisedHand());
+                            });
+                            entitythrowntrident.tridentItem = itemstack.cloneItemStack(); // SPIGOT-4511 update since damage call moved
+                            // CraftBukkit end
+
                             world.playSound((EntityHuman) null, (Entity) entitythrowntrident, SoundEffects.TRIDENT_THROW, SoundCategory.PLAYERS, 1.0F, 1.0F);
                             if (!entityhuman.getAbilities().instabuild) {
                                 entityhuman.getInventory().g(itemstack);
                             }
+                            // CraftBukkit start - SPIGOT-5458 also need in this branch :(
+                        } else {
+                            itemstack.damage(1, entityhuman, (entityhuman1) -> {
+                                entityhuman1.broadcastItemBreak(entityliving.getRaisedHand());
+                            });
+                            // CraftBukkkit end
                         }
                     }
 
                     entityhuman.b(StatisticList.ITEM_USED.b(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);
