BlockPhysicsEvent not firing for rails at 1.19
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:
- Fix BlockPhysicsEvent call or
- 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
- Just create plugin with following code:
@EventHandler
private void on(BlockPhysicsEvent event) {
event.setCancelled(true);
}
- Run plugin with this plugin
- Put rails on ground and break block under
- 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
Paper version
Paper version git-Paper-81 (MC: 1.19) (Implementing API version 1.19-R0.1-SNAPSHOT) (Git: 86f87ba)
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)
It looks like this issue is related to Spigot, so created same issue: https://hub.spigotmc.org/jira/browse/SPIGOT-7120
Can reproduce this and also with all diodes (repeater and comparator) and redstone wire The liquids are affected also Also some inconsistencies between creative/survival behavior And the BlockDestroyEvent is not called for the rail but called for torch I will only fix the related issue (BlockPhysicsEvent) for now