# ICapsuleManager
> Manages capsules, their locations, and player assignments.
`gg.lode.observerapi.api.manager`
---
## Signature
```java
public interface ICapsuleManager
```
---
## Methods
### setCapsules
```java
void setCapsules(List<Capsule> capsules)
```
Sets the full list of capsules.
| Parameter | Type | Description |
|-----------|------|-------------|
| `capsules` | `List<Capsule>` | The capsules to set |
---
### setCapsuleLocations
```java
void setCapsuleLocations(List<Location> locations)
```
Sets capsule locations. Creates new capsules at the given locations.
| Parameter | Type | Description |
|-----------|------|-------------|
| `locations` | `List<Location>` | The locations for capsules |
---
### setCapsuleType
```java
void setCapsuleType(CapsuleType type)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `type` | `CapsuleType` | The capsule grouping type |
---
### hasCapsule
```java
boolean hasCapsule(Player player)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `player` | `Player` | The player to check |
**Returns:** `boolean` - `true` if the player is assigned to a capsule
---
### getCapsuleType
```java
CapsuleType getCapsuleType()
```
**Returns:** [[CapsuleType]] - the current capsule type
---
### getCapsules
```java
List<Capsule> getCapsules()
```
**Returns:** `List<Capsule>` - all capsules
---
### removePlayerFromCapsule
```java
void removePlayerFromCapsule(Player player)
```
Removes a player from their assigned capsule.
| Parameter | Type | Description |
|-----------|------|-------------|
| `player` | `Player` | The player to remove |
---
### sendPlayersToCapsules
```java
void sendPlayersToCapsules(@Nullable Player executor)
```
Sends all players to their assigned capsules.
| Parameter | Type | Description |
|-----------|------|-------------|
| `executor` | `@Nullable Player` | The player who triggered the action, or `null` |
---
### release
```java
void release()
```
Releases all players from their capsules.
---
### save
```java
void save()
```
Persists capsule data to storage.
---
### swapCapsules
```java
void swapCapsules(Player player1, Player player2)
```
Swaps the capsule assignments of two players.
| Parameter | Type | Description |
|-----------|------|-------------|
| `player1` | `Player` | The first player |
| `player2` | `Player` | The second player |
---
### reload
```java
void reload()
```
Reloads capsule data from storage.
---
### sendPlayerToCapsule
```java
void sendPlayerToCapsule(Player player, Capsule capsule)
```
Sends a specific player to a specific capsule.
| Parameter | Type | Description |
|-----------|------|-------------|
| `player` | `Player` | The player to send |
| `capsule` | `Capsule` | The target capsule |
---
## Related Pages
- [[Capsule]]
- [[CapsuleType]]
- [[PlayerAssignedToCapsuleEvent]]
- [[PlayerSwapCapsulesEvent]]