The BlockPreDispenseEvent, added in #5075, is only fired for dispensers, and not droppers. I see this as an inconsistency in the API, as BlockDispenseEvent is called for both droppers and dispensers.
What I'm trying to achieve is being able to cancel droppers doing anything while also avoiding the sound and particles. This is possible for dispensers through this event. Cancelling BlockDispenseEvent works fine for droppers, but it still plays the click sound.
I saw prior discussion in th...