Expected behavior
Since version 1.19, BlockPhysicsEvent is no longer called when the rail is destroyed. Thus, it is no longer possible to cancel the destruction of rails in the world when destroying the block below them.
Observed/Actual behavior
It would be great to:
1) Fix BlockPhysicsEvent call
or
2) Create a separate event that can be canceled when a rail block is destroyed
The first solution is preferable because it is more universal and suitable for all other blocks, not just rails.
Steps/models to reproduce
1. Just create plugin with following code:
@EventHandler private void on(BlockPhysicsEvent event) { event.setCancelled(true); }
2. Run plugin with this plugin
3. Put rails on ground and break block under
4. Rails will be destroyed (and drop will be spawned)
Plugin and Datapack List
Plugins (2): Essentials, TestPlugin
There are 2 data packs enabled: [vanilla (built-in)], [file/bukkit (world)]
There are no more data packs available
Other
BlockPhysicsEvent call list when block under rails is destroyed:
1.18:
changed=GRASS_BLOCK; block=GRASS_BLOCK; source=AIR (175 84 1145) changed=ACTIVATOR_RAIL;block=ACTIVATOR_RAIL;source=AIR (177 84 1145) changed=DIRT; block=DIRT; source=AIR (176 83 1145) changed=ACTIVATOR_RAIL;block=ACTIVATOR_RAIL;source=AIR (176 85 1145) changed=AIR; block=AIR; source=AIR (176 84 1144) changed=AIR; block=AIR; source=AIR (176 84 1146) changed=AIR; block=AIR; source=AIR (176 84 1145)
1.19:
changed=AIR; block=AIR; source=AIR (-1371 70 2162) changed=AIR; block=AIR; source=AIR (-1372 71 2162) changed=AIR; block=AIR; source=AIR (-1372 70 2162)