# 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