BedrioxDOCUMENTATION
ENTITY EVENT

ProjectileImpactEvent

Cancellable event before a projectile applies its impact.

Cancellable pre-eventBedriox\Api\Event\Entity
WHAT IT REPRESENTS

Represents projectile impact before Bedriox commits the related authoritative change. Plugins may inspect it and cancel or adjust only the values explicitly exposed below.

WHEN IT FIRES

Bedriox dispatches this before the related action commits. Cancelling it prevents that action at this event boundary.

EVENT SEQUENCE

Event after this

If this event is not cancelled and the action succeeds, Bedriox dispatches ProjectileImpactedEvent as the committed outcome. That event cannot cancel or undo the result.

Event data

int $runtimeEntityId

Read-only event value supplied by Bedriox.

Bedriox\Api\Player\Player|Bedriox\Api\Entity\LivingEntity|null $shooter

Read-only event value supplied by Bedriox.

string $projectileIdentifier

Read-only event value supplied by Bedriox.

Bedriox\Api\World\Position $position

Read-only event value supplied by Bedriox.

Bedriox\Api\Player\Player|Bedriox\Api\Entity\Entity|null $target

Read-only event value supplied by Bedriox.

?Bedriox\Api\World\BlockPosition $block

Read-only event value supplied by Bedriox.

Available methods

This type does not declare additional public methods.

Inherited methods

isCancelled(): bool from Bedriox\Api\Event\CancellableEvent

Typed public method.

cancel(): void from Bedriox\Api\Event\CancellableEvent

Typed public method.

setCancelled(bool $cancelled): void from Bedriox\Api\Event\CancellableEvent

Typed public method.

captureState(): mixed from Bedriox\Api\Event\Event

Typed public method.

restoreState(mixed $state): void from Bedriox\Api\Event\Event

Typed public method.

setReadOnly(bool $readOnly): void from Bedriox\Api\Event\Event

Typed public method.

Listen for this event

Register the containing object with PluginContext::events()->registerSubscriber($this), then add a typed handler:

PHP
use Bedriox\Api\Event\EventHandler;
use Bedriox\Api\Event\Entity\ProjectileImpactEvent;

#[EventHandler]
public function onProjectileImpactEvent(ProjectileImpactEvent $event): void
{
    // Keep listener work bounded and use public capabilities only.
}

View exact source ↗