package io.gitlab.jfronny.googlechat.client; import io.gitlab.jfronny.googlechat.GoogleChat; import io.gitlab.jfronny.googlechat.GoogleChatConfig; import io.gitlab.jfronny.libjf.config.api.v2.ConfigHolder; import io.gitlab.jfronny.libjf.config.api.v2.ConfigInstance; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.option.KeyBinding; import net.minecraft.client.util.InputUtil; import org.jetbrains.annotations.NotNull; public class GoogleChatClient implements ClientModInitializer { @Override public void onInitializeClient() { ConfigInstance ci = ConfigHolder.getInstance().get(GoogleChat.MOD_ID); if (ci != null && FabricLoader.getInstance().isModLoaded("fabric-key-binding-api-v1") && FabricLoader.getInstance().isModLoaded("fabric-lifecycle-events-v1")) { setupKeybind(ci); } } private static void setupKeybind(@NotNull ConfigInstance ci) { // Factored out to prevent loading classes if mods are not present KeyBinding keyBinding = KeyBindingHelper.registerKeyBinding(new KeyBinding( "key." + GoogleChat.MOD_ID + ".toggle", InputUtil.Type.KEYSYM, -1, KeyBinding.MULTIPLAYER_CATEGORY )); ClientTickEvents.END_CLIENT_TICK.register(client -> { if (keyBinding.wasPressed()) { GoogleChatConfig.General.enabled = !GoogleChatConfig.General.enabled; ci.write(); } }); } }