package pm.j4.kerosene; import java.util.Optional; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.minecraft.client.options.KeyBinding; import pm.j4.kerosene.modules.ExampleModule; import pm.j4.kerosene.modules.bindings.BindingManager; import pm.j4.kerosene.util.config.ConfigHolder; import pm.j4.kerosene.util.config.ConfigManager; import pm.j4.kerosene.util.config.Module; import pm.j4.kerosene.util.data.ModInfoProvider; import pm.j4.kerosene.util.module.ModuleBase; /** * The type Kerosene mod. */ @Module(ExampleModule.class) @Module(BindingManager.class) public class KeroseneMod implements ModInitializer { @Override public void onInitialize() { ConfigManager.initConfig("kerosene", KeroseneMod.class); Optional conf = ConfigManager.getConfig("kerosene"); //initialize any keybinds, data, etc. ModInfoProvider.getRegisteredMods().forEach(ModuleBase::init); //initialize keybind handler conf.ifPresent(configHolder -> ClientTickEvents.END_CLIENT_TICK.register(client -> { if (ModInfoProvider.client != client) { ModInfoProvider.client = client; } for (KeyBinding b : BindingManager.getActiveKeybinds()) { while (b.wasPressed()) { configHolder.globalConfig.bindings.get(b).activate(client); } } })); } }