Skip to content

EntityDropItemEvent is not fired for item frame drops #14424

Open

Description

@strobil

Expected behavior

Should EntityDropItemEvent fire for the frame item and its contents, with the frame as the source? Or are hanging entities intentionally excluded?

Observed/Actual behavior

Destroying an item frame with an explosion fires HangingBreakEvent and ItemSpawnEvent, but no EntityDropItemEvent.

Reproduced for normal and glow item frames, both empty and containing a diamond. Empty frames produce one item drop; filled frames produce two. EntityDropItemEvent fires zero times in all four cases.

Steps/models to reproduce

  1. Extract the attached reproduction archive.
  2. Put frame-drop-probe.jar in plugins/ on a fresh Paper test server with a new world.
  3. Start the server and read the console or plugins/FrameDropProbe/result.txt.

The plugin creates and destroys all four frame variants automatically with World#createExplosion(location, 3.0f, false, false). It uses only the Bukkit API, with no NMS or manually dispatched events. The archive includes the source and test output.

frame-drop-reproduction.zip

Plugin and Datapack List

Only FrameDropProbe 1.0. Datapacks: vanilla (built-in), paper (built-in).

Paper version

This server is running Paper version 26.3-222-main@e3ba7b1 (2026-10-24T13:18:21Z) (Implementing API version 26.3.build.222-stable)
You are running the latest version

Java: Eclipse Adoptium Temurin 25.0.4.1+1-LTS, macOS aarch64.

Other

HangingEntity#spawnAtLocation calls addFreshEntity directly, bypassing the Entity#spawnAtLocation overload that fires EntityDropItemEvent.

Is this intentional, or should hanging-entity drops use the event-firing path?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    MC Issue

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions