# ClientKeybindsReportEvent > Fired when a client reports its full keybind layout, once after each handshake. Later in-session rebinds arrive as `KeybindChangeEvent`. `gg.lode.lecternapi.api.event.ClientKeybindsReportEvent` --- ## Signature ```java public class ClientKeybindsReportEvent extends Event ``` --- ## Notes This is configuration only (which physical key each action is bound to) and carries no press activity or timing. **Deprecated.** The client no longer collects the connect-time keybind layout snapshot, so this event is never fired. Kept so existing listeners still compile. --- ## Variants | Type | Description | |---|---| | `KeybindEntry` | | --- ## Methods ### getPlayer ```java public Player getPlayer() ``` --- ### getKeybinds ```java public List<KeybindEntry> getKeybinds() ``` --- ## Example The full layout arrives once per handshake. Later rebinds come through [[KeybindChangeEvent]] instead: ```java @EventHandler public void onKeybinds(ClientKeybindsReportEvent event) { for (ClientKeybindsReportEvent.KeybindEntry entry : event.getKeybinds()) { if (entry.id().equals("key.jump")) { getLogger().info(event.getPlayer().getName() + " jumps with " + entry.boundKey()); } } } ``` Handy for a hint that names the right key rather than assuming Space. --- ## Related Pages - [[KeybindChangeEvent]]. Rebinds during a session - [[Keybind]]. The ids the client reports - [[IInputManager]]. Disabling and registering keybinds