# IMechanicsManager
> Manages game mechanics toggles and settings.
`gg.lode.observerapi.api.manager`
---
## Signature
```java
public interface IMechanicsManager
```
---
## Nested Types
### ICombatLoggingManager
```java
public interface ICombatLoggingManager
```
Manages combat logging detection and display settings.
#### Methods
##### canCombatLog
```java
boolean canCombatLog()
```
**Returns:** `boolean` - `true` if combat logging detection is enabled
##### getCombatTimer
```java
int getCombatTimer()
```
**Returns:** `int` - the combat timer duration
##### getDisplayType
```java
DisplayType getDisplayType()
```
**Returns:** `DisplayType` - how the combat timer is displayed to players
##### getDisplayMessage
```java
String getDisplayMessage()
```
**Returns:** `String` - the message template for the combat timer display
##### getCombatNotificationTranslation
```java
String getCombatNotificationTranslation()
```
**Returns:** `String` - the translation key for combat notifications
---
### DisplayType
```java
public enum DisplayType
```
| Constant | Description |
|----------|-------------|
| `ACTION_BAR` | Display in the action bar |
| `TITLE` | Display as a title |
| `CHAT` | Display in chat |
---
## Methods
### Boolean Toggles
The following methods each have a getter (`boolean`) and setter (`void`) pair for toggling game mechanics:
| Getter | Setter | Description |
|--------|--------|-------------|
| `canSleep()` | `setCanSleep(boolean)` | Whether players can sleep in beds |
| `canEnchant()` | `setCanEnchant(boolean)` | Whether enchanting tables work |
| `canUseAnvils()` | `setCanUseAnvils(boolean)` | Whether anvils are usable |
| `canUseEnderChests()` | `setCanUseEnderChests(boolean)` | Whether ender chests are usable |
| `canBreedVillagers()` | `setCanBreedVillagers(boolean)` | Whether villagers can breed |
| `canTrade()` | `setCanTrade(boolean)` | Whether villager trading is allowed |
| `canUseRespawnAnchors()` | `setCanUseRespawnAnchors(boolean)` | Whether respawn anchors work |
| `canBedBomb()` | `setCanBedBomb(boolean)` | Whether beds explode in other dimensions |
| `canPortalTrap()` | `setCanPortalTrap(boolean)` | Whether portal trapping is allowed |
| `canIndirectPvp()` | `setCanIndirectPvp(boolean)` | Whether indirect PvP (lava, TNT, etc.) is allowed |
| `canBlockDecay()` | `setCanBlockDecay(boolean)` | Whether block decay is enabled |
| `hasUnbreakableSpawners()` | `setUnbreakableSpawners(boolean)` | Whether spawners are unbreakable |
| `hasWorldBorder()` | `setWorldBorder(boolean)` | Whether the world border is active |
| `canBrewPotions()` | `setCanBrewPotions(boolean)` | Whether brewing stands work |
| `canNether()` | `setCanNether(boolean)` | Whether nether access is allowed |
| `canEnd()` | `setCanEnd(boolean)` | Whether end access is allowed |
| `canGrantRecipes()` | `setCanGrantRecipes(boolean)` | Whether recipes are granted to players |
| `canBlockTrampling()` | `setCanBlockTrampling(boolean)` | Whether farmland trampling is allowed |
---
### increasedAppleRates
```java
double increasedAppleRates()
```
**Returns:** `double` - the apple drop rate multiplier
---
### setIncreasedAppleRates
```java
void setIncreasedAppleRates(double rate)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `rate` | `double` | The apple drop rate multiplier |
---
### increasedFlintRates
```java
double increasedFlintRates()
```
**Returns:** `double` - the flint drop rate multiplier
---
### setIncreasedFlintRates
```java
void setIncreasedFlintRates(double rate)
```
| Parameter | Type | Description |
|-----------|------|-------------|
| `rate` | `double` | The flint drop rate multiplier |
---
### getCombatLoggingManager
```java
ICombatLoggingManager getCombatLoggingManager()
```
**Returns:** `ICombatLoggingManager` - the combat logging manager
---
## Related Pages
- [[IObserverAPI]]
- [[IDecayManager]]