修快捷键

This commit is contained in:
BRanulf 2025-04-30 22:41:11 +08:00
parent ecd6e66b9e
commit 9bbac5d8a1
3 changed files with 26 additions and 18 deletions

View File

@ -6,7 +6,7 @@ minecraft_version=1.21.4
yarn_mappings=1.21.4+build.8 yarn_mappings=1.21.4+build.8
loader_version=0.16.10 loader_version=0.16.10
# Mod Properties # Mod Properties
mod_version=1.14.514.002 mod_version=1.14.514.003
maven_group=org.example1 maven_group=org.example1
archives_base_name=elytraboostmod archives_base_name=elytraboostmod
# Dependencies # Dependencies

View File

@ -7,6 +7,7 @@ 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.keybinding.v1.KeyBindingHelper;
import net.fabricmc.fabric.api.event.player.UseBlockCallback; import net.fabricmc.fabric.api.event.player.UseBlockCallback;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.FireworkRocketItem; import net.minecraft.item.FireworkRocketItem;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@ -15,7 +16,7 @@ import net.minecraft.util.Hand;
public class ElytraBoostNotPlaceModClient implements ClientModInitializer { public class ElytraBoostNotPlaceModClient implements ClientModInitializer {
private static ModConfig config; private static ModConfig config;
private static boolean lastToggleState = true; private static boolean keyWasPressed = false;
@Override @Override
public void onInitializeClient() { public void onInitializeClient() {
@ -23,25 +24,33 @@ public class ElytraBoostNotPlaceModClient implements ClientModInitializer {
AutoConfig.register(ModConfig.class, JanksonConfigSerializer::new); AutoConfig.register(ModConfig.class, JanksonConfigSerializer::new);
config = AutoConfig.getConfigHolder(ModConfig.class).getConfig(); config = AutoConfig.getConfigHolder(ModConfig.class).getConfig();
// TODO 注册快捷键待修复 // 注册快捷键
// KeyBindingHelper.registerKeyBinding(config.toggleKey); KeyBinding toggleKeyBinding = KeyBindingHelper.registerKeyBinding(config.toggleKey);
// 每tick检查快捷键 // 每tick检查快捷键
ClientTickEvents.END_CLIENT_TICK.register(client -> { ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (config.toggleKey.wasPressed()) { if (toggleKeyBinding.wasPressed()) {
config.modEnabled = !config.modEnabled; if (!keyWasPressed) {
AutoConfig.getConfigHolder(ModConfig.class).save(); keyWasPressed = true;
config.modEnabled = !config.modEnabled;
// 显示通知 // 异步保存配置
if (client.player != null) { new Thread(() -> {
String status = config.modEnabled ? "§a启用" : "§c禁用"; AutoConfig.getConfigHolder(ModConfig.class).save();
client.player.sendMessage( }).start();
Text.translatable(config.modEnabled ?
"message.elytraboostnotplace.enabled" : // 显示通知
"message.elytraboostnotplace.disabled"), if (client.player != null) {
true client.player.sendMessage(
); Text.translatable(config.modEnabled ?
"notification.elytraboostnotplace.enabled" :
"notification.elytraboostnotplace.disabled"),
true
);
}
} }
} else {
keyWasPressed = false;
} }
}); });

View File

@ -16,8 +16,7 @@ public class ModConfig implements ConfigData {
public KeyBinding toggleKey = new KeyBinding( public KeyBinding toggleKey = new KeyBinding(
"key.elytraboostnotplace.toggle", "key.elytraboostnotplace.toggle",
InputUtil.Type.KEYSYM, InputUtil.Type.KEYSYM,
GLFW.GLFW_KEY_UNKNOWN, GLFW.GLFW_KEY_B,
"category.elytraboostnotplace.main" "category.elytraboostnotplace.main"
); );
} }