Skip to main content

Events API

Paper extends Bukkit’s event system with numerous additional events and enhancements. Events allow plugins to listen to and modify game behavior.

Event Basics

Listening to Events

Registering Listeners

Event Priority

Control when your listener is called relative to other plugins:
Use MONITOR priority only for observing events, never for modifying them.

Ignoring Cancelled Events

Player Events

Join/Quit Events

Movement Events

PlayerMoveEvent is called very frequently. Avoid heavy operations in this event.

Interaction Events

Chat Events

AsyncChatEvent is asynchronous. Be careful with thread safety!

Block Events

Block Break/Place

Block Growth

Entity Events

Entity Damage

Entity Death

Entity Spawn

Inventory Events

Inventory Click

Inventory Open/Close

World Events

Chunk Events

Weather Events

Paper-Specific Events

Paper adds many additional events in the io.papermc.paper.event package:

Player Events

Entity Events

Custom Events

Create your own events:

Calling Custom Events

Cancellable Events

Event Best Practices

Always check if an event is cancellable before calling setCancelled().
Async events (like AsyncChatEvent, AsyncPlayerPreLoginEvent) run off the main thread. Do not access Bukkit API from async events!
Use @EventHandler(ignoreCancelled = true) to avoid processing cancelled events unnecessarily.

Complete Event List

For a complete list of all available events, see:

Next Steps

Plugin Development

Build plugins with events

Entity API

Work with entities