--- a/net/minecraft/world/entity/ai/behavior/TransportItemsBetweenContainers.java
+++ b/net/minecraft/world/entity/ai/behavior/TransportItemsBetweenContainers.java
@@ -323,7 +_,10 @@
             } else {
                 boolean flag1 = this.isWantedBlock(mob, transportItemTarget.state)
                     && !this.isPositionAlreadyVisited(visited, unreachable, transportItemTarget, level)
-                    && !this.isContainerLocked(transportItemTarget);
+                    // Paper start - ItemTransportingEntityValidateTargetEvent
+                    && !this.isContainerLocked(transportItemTarget)
+                    && org.bukkit.craftbukkit.event.CraftEventFactory.callTransporterValidateTarget(mob, level, transportItemTarget.pos);
+                    // Paper end - ItemTransportingEntityValidateTargetEvent
                 return flag1 ? transportItemTarget : null;
             }
         }
