Skip to content

ProjectileLaunchEvent ProjectileSource is null when shot by a dispenser. #14194

Description

@danielcanodev

Expected behavior

declaring an "@eventhandler ProjectileLaunchEvent" and reading "event.getEntity().getShooter()" should return a BlockProjectileSource source.

Observed/Actual behavior

declaring an "@eventhandler ProjectileLaunchEvent" and reading "event.getEntity().getShooter()" returns null

Steps/models to reproduce

Create an Events class that implements Listener, register it in the plugin class and add this method to the Listener:

@eventhandler
public void ProjectileLaunch(ProjectileLaunchEvent event){
ProjectileSource shooter = event.getEntity().getShooter();
Combat.PLUGIN.getServer().getPlayer("YOUR_USERNAME").sendPlainMessage(
"Shoot, shooter class: " + (shooter == null ? "null" : shooter.getClass().getName())
);
}
when shooting from a dispenser, shooter is null.

Plugin and Datapack List

Tested in an empty paper instance.

Paper version

Paper version 26.2-112-main@c9e894d (2026-08-11T05:18:39Z) (Implementing API version 26.2.build.112-stable)

Other

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: acceptedDisputed bug is accepted as valid or Feature accepted as desired to be added.version: 26.2

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions