mirror of
https://github.com/CompeyDev/elytra-lock-fabric.git
synced 2024-12-12 21:00:42 +00:00
60 lines
2 KiB
Java
60 lines
2 KiB
Java
|
package xyz.devcomp.elytralock;
|
||
|
|
||
|
import xyz.devcomp.elytralock.config.ConfigHandler;
|
||
|
import xyz.devcomp.elytralock.config.ConfigUtil;
|
||
|
import xyz.devcomp.elytralock.events.ClientTickEndHandler;
|
||
|
import xyz.devcomp.elytralock.events.HudRenderHandler;
|
||
|
|
||
|
import org.lwjgl.glfw.GLFW;
|
||
|
|
||
|
import org.slf4j.Logger;
|
||
|
import org.slf4j.LoggerFactory;
|
||
|
|
||
|
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.fabric.api.client.rendering.v1.HudRenderCallback;
|
||
|
import net.fabricmc.loader.api.FabricLoader;
|
||
|
|
||
|
import net.minecraft.client.MinecraftClient;
|
||
|
import net.minecraft.client.option.KeyBinding;
|
||
|
import net.minecraft.client.util.InputUtil;
|
||
|
|
||
|
public class ElytraLock implements ClientModInitializer {
|
||
|
public static final Logger LOGGER = LoggerFactory.getLogger("Elytra Lock");
|
||
|
public static final FabricLoader LOADER = FabricLoader.getInstance();
|
||
|
private static KeyBinding lockKeybind;
|
||
|
private static boolean locked = false;
|
||
|
public static MinecraftClient client;
|
||
|
|
||
|
@Override
|
||
|
public void onInitializeClient() {
|
||
|
LOGGER.info("ElytraLock initializing!");
|
||
|
|
||
|
lockKeybind = KeyBindingHelper.registerKeyBinding(
|
||
|
new KeyBinding("key.elytralock.lock", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_J, "category.elytralock"));
|
||
|
LOGGER.info("Registered keybind for locking elytra");
|
||
|
|
||
|
client = MinecraftClient.getInstance();
|
||
|
|
||
|
if (ConfigUtil.isYaclLoaded()) {
|
||
|
LOGGER.info("YACL_v3 is loaded, loading elytra toggle");
|
||
|
locked = new ConfigHandler().getInstance().toggle;
|
||
|
} else {
|
||
|
LOGGER.warn("YACL_v3 is not loaded, not persisting elytra toggle");
|
||
|
}
|
||
|
|
||
|
HudRenderCallback.EVENT.register(new HudRenderHandler());
|
||
|
ClientTickEvents.END_CLIENT_TICK.register(new ClientTickEndHandler());
|
||
|
|
||
|
LOGGER.info("Registered HUD_RENDER & END_CLIENT_TICK events successfully!");
|
||
|
}
|
||
|
|
||
|
public static boolean isLocked() {
|
||
|
if (lockKeybind.wasPressed()) {
|
||
|
locked = !locked;
|
||
|
}
|
||
|
|
||
|
return locked;
|
||
|
}
|
||
|
}
|