# IPacketComponentManager
> Manages the lifecycle of PacketComponent instances — showing, hiding, and ticking components for individual players.
`gg.lode.lecternapi.api.manager.IPacketComponentManager`
---
## Signature
```java
public interface IPacketComponentManager
```
---
## Methods
### show
```java
void show(Player player, PacketComponent component)
```
Shows a component to the player, sending all element ADD packets. If a component with the same ID is already shown, it is hidden first. Components with tickable elements are automatically registered in the tick loop.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `component` | `PacketComponent` | The component to show. |
---
### hide
```java
void hide(Player player, String componentId)
```
Hides a specific component by ID, sending all element REMOVE packets and unregistering it from the tick loop.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `componentId` | `String` | The ID of the component to hide. |
---
### hideAll
```java
void hideAll(Player player)
```
Hides all components for the player.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
---
### getComponent
```java
@Nullable PacketComponent getComponent(Player player, String componentId)
```
Returns the active component with the given ID for the player, or `null` if none exists.
| Parameter | Type | Description |
|---|---|---|
| `player` | `Player` | The target player. |
| `componentId` | `String` | The component ID. |
**Returns:** `PacketComponent` — The active component, or `null`.
---
## Related Pages
- [[ILecternAPI]] — Access via `getPacketComponentManager()`
- [[PacketComponent]] — Component base class
- [[ElementData]] — Element data types