kerosene/src/main/java/pm/j4/kerosene/KeroseneMod.java

58 lines
1.7 KiB
Java

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.fabricmc.loader.api.FabricLoader;
import net.fabricmc.loader.api.ModContainer;
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.data.ModInfoProvider;
import pm.j4.kerosene.util.module.ModuleBase;
/**
* The type Kerosene mod.
*/
public class KeroseneMod implements ModInitializer {
@Override
public void onInitialize() {
ConfigManager.initConfig("kerosene");
// always update mod data
Optional<ModContainer> modContainer = FabricLoader.getInstance().getModContainer("kerosene");
modContainer.ifPresent(container -> ModInfoProvider.modData = container.getMetadata());
Optional<ConfigHolder> conf = ConfigManager.getConfig("kerosene");
try {
ModInfoProvider.registerMod(ExampleModule.class);
ModInfoProvider.registerMod(BindingManager.class);
}
catch (Exception e) {
System.out.println(e);
}
//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);
}
}
}));
}
}