Paper icon indicating copy to clipboard operation
Paper copied to clipboard

BlockPhysicsEvent not firing for rails at 1.19

Open Dymeth opened this issue 3 years ago • 2 comments

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);
    }
  1. Run plugin with this plugin
  2. Put rails on ground and break block under
  3. 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)

Dymeth avatar Jul 26 '22 12:07 Dymeth

It looks like this issue is related to Spigot, so created same issue: https://hub.spigotmc.org/jira/browse/SPIGOT-7120

Dymeth avatar Jul 27 '22 07:07 Dymeth

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

Lulu13022002 avatar Aug 08 '22 08:08 Lulu13022002