package com.hea3ven.hardmodetweaks.sleep; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Property.Type; import com.hea3ven.tools.commonutils.mod.ProxyModModule; import com.hea3ven.tools.commonutils.mod.config.FileConfigManagerBuilder.CategoryConfigManagerBuilder; import com.hea3ven.tweaks.DayNightCycle; public class ProxyModHardModeTweaksSleep extends ProxyModModule { private SleepManager sleepManager = null; @Override public CategoryConfigManagerBuilder getConfig() { return new CategoryConfigManagerBuilder("Sleep").addValue("enableSleepPrevention", "true", Type.BOOLEAN, "Enable beds requiring a timeout after being placed before they can be used.", property -> { if (property.getBoolean()) { if (sleepManager == null) { sleepManager = new SleepManager(); MinecraftForge.EVENT_BUS.register(sleepManager); } } else { if (sleepManager != null) { MinecraftForge.EVENT_BUS.unregister(sleepManager); sleepManager = null; } } }) .addValue("sleepTimeout", "3", Type.INTEGER, "The number of days that must pass after placing a bed before it can be used.", property -> { SleepManager.sleepPreventionTimeout = (int) (property.getInt() * 24000 / DayNightCycle.dayLengthMultiplier); }); } }