# 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]]