feat: add keybind for quickly toggling the mod if FAPI is present
This commit is contained in:
parent
e1d19df4c1
commit
e1be8aeed9
|
@ -28,9 +28,13 @@ dependencies {
|
|||
modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2:${jfMod.libJfVersion.get()}")
|
||||
modImplementation("io.gitlab.jfronny.libjf:libjf-translate-v1:${jfMod.libJfVersion.get()}")
|
||||
include(modImplementation(fabricApi.module("fabric-message-api-v1", fabricVersion))!!)
|
||||
// Keybind
|
||||
modCompileOnly(fabricApi.module("fabric-key-binding-api-v1", fabricVersion))
|
||||
modCompileOnly(fabricApi.module("fabric-lifecycle-events-v1", fabricVersion))
|
||||
|
||||
// Dev env
|
||||
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-config-ui-tiny:${jfMod.libJfVersion.get()}")
|
||||
modLocalRuntime("io.gitlab.jfronny.libjf:libjf-devutil:${jfMod.libJfVersion.get()}")
|
||||
modLocalRuntime(fabricApi.module("fabric-resource-loader-v0", fabricVersion))
|
||||
modLocalRuntime("com.terraformersmc:modmenu:9.0.0-pre.1")
|
||||
}
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -29,5 +29,7 @@
|
|||
"google-chat.jfconfig.advanced.debugLogs.tooltips": "Log additional information about message processing. Useful for debugging",
|
||||
|
||||
"google-chat.jfconfig.client": "Client",
|
||||
"google-chat.jfconfig.server": "Server"
|
||||
"google-chat.jfconfig.server": "Server",
|
||||
|
||||
"key.google-chat.toggle": "Toggle GoogleChat"
|
||||
}
|
|
@ -17,7 +17,8 @@
|
|||
"entrypoints": {
|
||||
"libjf:config": ["io.gitlab.jfronny.googlechat.JFC_GoogleChatConfig"],
|
||||
"server": ["io.gitlab.jfronny.googlechat.server.GoogleChatServer"],
|
||||
"main": ["io.gitlab.jfronny.googlechat.GoogleChat"]
|
||||
"main": ["io.gitlab.jfronny.googlechat.GoogleChat"],
|
||||
"client": ["io.gitlab.jfronny.googlechat.client.GoogleChatClient"]
|
||||
},
|
||||
"mixins": [
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue