Block Updates are not called for flowing liquids. I've used this method in MyPlot, so I have proof it works. You have to override the registered block for flowing Water and Lava as shown here: https://github.com/jasonwynn10/MyPlot/blob/API3/src/MyPlot/MyPlot.php#L599L600 In the classes you use for the overrides, ensure they extend their designated blocks, then override the onUpdate function in your class. If it returns false, the luquid will not update as shown here: https://github.com/jasonwynn10/MyPlot/blob/API3/src/MyPlot/block/Water.php#L15