# IInputManager
> Manages input effects for players running the Lectern client.
`gg.lode.lecternapi.api.manager.IInputManager`
---
## Signature
```java
public interface IInputManager
```
---
## Methods
### disableKeybind
```java
void disableKeybind(Player player, Keybind keybind)
```
Disables a keybind on the player's client.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `keybind` | `Keybind` | The keybind to disable. |
---
### enableKeybind
```java
void enableKeybind(Player player, Keybind keybind)
```
Re-enables a previously disabled keybind on the player's client.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `keybind` | `Keybind` | The keybind to re-enable. |
---
### clearDisabledKeybinds
```java
void clearDisabledKeybinds(Player player)
```
Clears all disabled keybinds, restoring normal input.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
---
### setKeybindsInverted
```java
void setKeybindsInverted(Player player, boolean inverted)
```
Inverts all keybinds on the player's client. W/S, A/D, sneak/jump, and attack/use are swapped.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `inverted` | `boolean` | `true` to invert, `false` to restore normal input. |
---
### setDisableHitbox
```java
void setDisableHitbox(Player player, boolean disabled)
```
Disables the player's ability to interact with entity hitboxes.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `disabled` | `boolean` | `true` to disable hitbox interaction. |
---
### setHeadLocked
```java
void setHeadLocked(Player player, boolean locked)
```
Locks or unlocks the player's head/camera movement. When locked, the player cannot rotate their camera regardless of mouse input.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `locked` | `boolean` | `true` to lock head movement, `false` to unlock. |
---
### setDisableChunkReload
```java
void setDisableChunkReload(Player player, boolean disabled)
```
Disables or enables chunk reload on the player's client. When disabled, the client will not reload chunks (F3+A).
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `disabled` | `boolean` | `true` to disable chunk reload, `false` to enable. |
---
### setDisableChunkBoundaries
```java
void setDisableChunkBoundaries(Player player, boolean disabled)
```
Disables or enables chunk boundary rendering on the player's client. When disabled, the client will not render chunk boundaries (F3+G).
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `disabled` | `boolean` | `true` to disable chunk boundaries, `false` to enable. |
---
### registerKeybind
```java
void registerKeybind(Player player, String id, String translationKey, int defaultKey, String category)
```
Registers a custom keybind on the player's client. The keybind appears in the player's controls settings and fires `KeybindPressedEvent` when pressed. If a keybind with the same ID already exists, it is replaced.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `id` | `String` | A unique identifier for this keybind (e.g. `"myplugin:ability"`). |
| `translationKey` | `String` | The display name shown in controls (e.g. `"Use Ability"`). |
| `defaultKey` | `int` | The default GLFW key code (e.g. `GLFW.GLFW_KEY_G` = 71). |
| `category` | `String` | The category name in controls (e.g. `"My Plugin"`). |
---
### unregisterKeybind
```java
void unregisterKeybind(Player player, String id)
```
Unregisters a custom keybind from the player's client.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `id` | `String` | The keybind identifier to remove. |
---
### clearKeybinds
```java
void clearKeybinds(Player player)
```
Clears all custom keybinds on the player's client.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
---
## Keybind Enum
`gg.lode.lecternapi.api.data.Keybind`
| Value | Key |
|---|---|
| `ATTACK` | `"attack"` |
| `USE` | `"use"` |
| `FORWARD` | `"forward"` |
| `BACK` | `"back"` |
| `LEFT` | `"left"` |
| `RIGHT` | `"right"` |
| `JUMP` | `"jump"` |
| `SNEAK` | `"sneak"` |
| `INVENTORY` | `"inventory"` |
| `TOGGLE_PERSPECTIVE` | `"togglePerspective"` |
---
## Related Pages
- [[ILecternAPI]] — Access via `getInputManager()`