# Events Overview
> Lectern dispatches Bukkit events when the client sends data to the server.
`gg.lode.lecternapi.api.event`
---
## Base Class
All Lectern events extend `LecternClientEvent`:
```java
public abstract class LecternClientEvent extends Event {
public Player getPlayer();
public String getEventId();
}
```
---
## Event Categories
### Button Events
| Event | Description |
|---|---|
| [[ButtonClickEvent]] | Player clicked a HUD button. |
| [[ButtonHoverEvent]] | Player hovered/unhovered a button. |
### Input Events
| Event | Description |
|---|---|
| [[KeybindPressedEvent]] | Player pressed or released a keybind. |
| [[KeybindChangeEvent]] | Player changed a keybind assignment. |
### Menu Events
| Event | Description |
|---|---|
| [[MenuCloseEvent]] | Player closed a packet menu. |
### Modal Prompt Events
| Event | Description |
|---|---|
| [[ModalPromptClickEvent]] | Player clicked a CONSUMER button on a modal prompt. |
### Cutscene Events
| Event | Description |
|---|---|
| [[CutsceneCallbackEvent]] | Cutscene reached a callback marker. |
| [[CutsceneCompleteEvent]] | Cutscene finished playing. |
### Voice Chat Events
| Event | Description |
|---|---|
| [[PlayerMuteEvent]] | Player muted themselves (suggestive). |
| [[PlayerUnmuteEvent]] | Player unmuted themselves. |
| [[PlayerDeafenEvent]] | Player deafened themselves. |
| [[PlayerUndeafenEvent]] | Player undeafened themselves. |
### Client Reporting Events
| Event | Description |
|---|---|
| [[ClientModsReportEvent]] | Client reported installed mods. |
| [[ClientPacksReportEvent]] | Client reported resource packs. |
| [[ClientPackDataEvent]] | Complete resource pack received from client. |
### Handshake Events
| Event | Description |
|---|---|
| [[LecternHandshakeEvent]] | Player's Lectern client completed the handshake. After this event, the player can receive effect packets. |
### Security Events
| Event | Description |
|---|---|
| [[PossibleInjectedClientEvent]] | Client detected potentially injected mod. |
---
## Listening to Events
Register event listeners like any Bukkit event:
```java
public class MyListener implements Listener {
@EventHandler
public void onButtonClick(ButtonClickEvent event) {
Player player = event.getPlayer();
String reference = event.getReference();
player.sendMessage("You clicked: " + reference);
}
@EventHandler
public void onKeybind(KeybindPressedEvent event) {
if (event.isPressed() && event.getKey().equals("key.jump")) {
event.getPlayer().sendMessage("Jump pressed!");
}
}
@EventHandler
public void onCutsceneComplete(CutsceneCompleteEvent event) {
Player player = event.getPlayer();
String id = event.getCutsceneId();
player.sendMessage("Finished cutscene: " + id);
}
}
```
---
## Related Pages
- [[Lectern/Developers/Overview]] — Developer overview