42 lines
1.7 KiB
Java
42 lines
1.7 KiB
Java
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();
|
|
}
|
|
});
|
|
}
|
|
}
|