# ILifestealManager
> Manages the lifesteal mechanic, allowing players to gain or lose health through combat.
`gg.lode.observerapi.api.manager`
---
## Signature
```java
public interface ILifestealManager
```
---
## Methods
### isEnabled
```java
boolean isEnabled()
```
**Returns:** `boolean` - `true` if lifesteal is enabled
---
### setEnabled
```java
void setEnabled(boolean enabled)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `enabled` | `boolean` | Whether lifesteal is enabled |
---
### getItemName
```java
String getItemName()
```
**Returns:** `String` - the display name of the heart item
---
### setItemName
```java
void setItemName(String name)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `name` | `String` | The display name for the heart item |
---
### getItemModel
```java
String getItemModel()
```
**Returns:** `String` - the item model identifier
---
### setItemModel
```java
void setItemModel(String model)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `model` | `String` | The item model identifier |
---
### isStackable
```java
boolean isStackable()
```
**Returns:** `boolean` - `true` if heart items can stack
---
### setStackable
```java
void setStackable(boolean stackable)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `stackable` | `boolean` | Whether heart items can stack |
---
### getLifestealType
```java
LifestealType getLifestealType()
```
**Returns:** [[LifestealType]] - the current lifesteal trigger type
---
### setLifestealType
```java
void setLifestealType(LifestealType type)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `type` | `LifestealType` | The lifesteal trigger type |
---
### getMaxHealth
```java
double getMaxHealth()
```
**Returns:** `double` - the maximum health a player can reach through lifesteal
---
### setMaxHealth
```java
void setMaxHealth(double maxHealth)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `maxHealth` | `double` | The maximum health cap |
---
### getMinHealth
```java
double getMinHealth()
```
**Returns:** `double` - the minimum health a player can be reduced to through lifesteal
---
### setMinHealth
```java
void setMinHealth(double minHealth)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `minHealth` | `double` | The minimum health floor |
---
### canWithdraw
```java
boolean canWithdraw()
```
**Returns:** `boolean` - `true` if players can withdraw hearts as items
---
### setCanWithdraw
```java
void setCanWithdraw(boolean canWithdraw)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `canWithdraw` | `boolean` | Whether withdrawal is allowed |
---
### shouldRemoveHeart
```java
boolean shouldRemoveHeart()
```
**Returns:** `boolean` - `true` if the heart item should be removed on use
---
### setShouldRemoveHeart
```java
void setShouldRemoveHeart(boolean shouldRemove)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `shouldRemove` | `boolean` | Whether to remove the heart item |
---
## Related Pages
- [[LifestealType]]
- [[PlayerConsumeHeartEvent]]
- [[PlayerWithdrawHeartEvent]]