Uploaded image for project: 'Spigot'
  1. Spigot
  2. SPIGOT-7120

BlockPhysicsEvent not firing for rails at 1.19


    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • None
    • CraftBukkit version 3553-Spigot-14a2382-ef09464 (MC: 1.19) (Implementing API version 1.19-R0.1-SNAPSHOT)
    • Yes

      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
      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:

      private void on(BlockPhysicsEvent event) {

      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


      BlockPhysicsEvent call list when block under rails is destroyed:


      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)


      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)

            Unassigned Unassigned
            Dymeth Dymeth
            2 Vote for this issue
            2 Start watching this issue