# 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