Скачать Smart Key Prompts — Minecraft Моды — MetaMods

Smart Key Prompts

Активный

Установок

1

Последнее обновление

2 месяца назад

Версии

1.20.1 — 1.21.1
Клиент
Fabric
Forge
Neoforge
Утилиты

Smart Key Prompts

Мод Smart Key Prompts для Minecraft предлагает игрокам умные подсказки управления и удобную перенастройку клавиш, значительно улучшая игровой процесс и упрощая управление привязками клавиш.

Основные возможности

Этот мод динамически отображает релевантные подсказки управления в зависимости от текущего контекста игры. Разработчики могут использовать предоставленные API для управления видимостью подсказок:

// Показать зарегистрированную привязку клавиш по идентификатору
public static void show(String id, String desc);

// Отобразить пользовательскую подсказку с клавишей и описанием
public static void custom(String id, String key, String desc);

// Создать псевдоним для существующей привязки клавиш с другим названием
public static void alias(String id, String key, String desc);

Вызывайте эти методы во время клиентского тика с условной логикой для отображения подсказок. Также доступна поддержка через датапаки, хотя с некоторыми ограничениями по условиям.

showcase1

Каждый id представляет идентификатор группы клавиш. Например, интеграция с JEI использует jei_skp и по умолчанию отключена. Вы можете в любое время отключать или включать группы клавиш через конфигурацию, используя их идентификаторы.

Управление в игре

Когда подсказки видны:

  • Нажмите Control (по умолчанию: K) + Левый клик, чтобы открыть экран настройки привязок клавиш
  • Нажмите Control + Правый клик, чтобы переключить видимость и позицию HUD
  • Прокрутите колесо мыши, удерживая Control, чтобы изменить масштаб HUD

showcase2

Примечание: Быстрая настройка привязок клавиш работает только для show и alias. Она не работает для custom подсказок.

Удержание клавиши Control блокирует подсказки, устраняя необходимость точного выбора времени для взаимодействий.

Примеры использования

Пример на Java:

@SubscribeEvent
public static void tick(TickEvent.ClientTickEvent event) {
    if (!ModList.get().isLoaded("immersive_aircraft")) return;
    Player player = Minecraft.getInstance().player;
    if (player == null || Minecraft.getInstance().screen != null) return;

    String vehicle = Utils.getVehicleType(player);
    if (vehicle != null && vehicle.startsWith("immersive_aircraft:")) {
        SmartKeyPrompts.custom(modid, Utils.getKeyByDesc("key.inventory"), "immersive_aircraft.slot.upgrade");
        SmartKeyPrompts.show(modid, "key.immersive_aircraft.dismount");

        String keyUse = Utils.getKeyByDesc("key.immersive_aircraft.fallback_use");
        SmartKeyPrompts.custom(modid,
            Objects.equals(keyUse, "key.keyboard.unknown") ? "key.mouse.right" : keyUse,
            "item.immersive_aircraft.item.weapon");

        if (vehicle.equals("immersive_aircraft:biplane")) {
            SmartKeyPrompts.custom(modid, Utils.getKeyByDesc("key.jump"), "item.immersive_aircraft.engine");
        }
    }
}

Пример на KubeJS:

let SmartKeyPrompts = Java.loadClass("com.mafuyu404.smartkeyprompts.SmartKeyPrompts");
let Utils = Java.loadClass("com.mafuyu404.smartkeyprompts.init.Utils");

ClientEvents.tick(event => {
    let player = event.player;
    if (["key.left", "key.right", "key.forward", "key.back"]
          .map(desc => Utils.isKeyPressedOfDesc(desc)).includes(true)) {
        SmartKeyPrompts.show("parcool", "key.parcool.Dodge");
    }
    if (!player.onGround() && !player.isInWater()) {
        SmartKeyPrompts.show("parcool", "key.parcool.Breakfall");
        SmartKeyPrompts.show("parcool", "key.parcool.ClingToCliff");
    }
    if (player.isSprinting()) {
        SmartKeyPrompts.show("parcool", "key.parcool.FastRun");
    }
    if (Utils.isKeyPressedOfDesc("key.parcool.FastRun")) {
        SmartKeyPrompts.show("parcool", Utils.getKeyByDesc("key.parcool.Dodge"));
        SmartKeyPrompts.custom("parcool", Utils.getKeyByDesc("key.sneak"), "parcool.action.CatLeap");
    }
});

Пример с датапаком:

{
  "modid": "tacz_skp",
  "vars": {
    "modLoaded": "isModLoaded('tacz')",
    "hasTaczGun": "mainHandItem() == 'tacz:modern_kinetic_gun'",
    "isNotInVehicle": "!isInVehicle()"
  },
  "entries": [
    {
      "when": {
        "modLoaded": "true",
        "hasTaczGun": "true",
        "isNotInVehicle": "true"
      },
      "then": [
        "show('tacz_skp', 'key.tacz.shoot.desc')",
        "show('tacz_skp', 'key.tacz.zoom.desc')",
        "show('tacz_skp', 'key.tacz.reload.desc')"
      ]
    }
  ]
}

Планируемые функции

  • Больше позиций отображения подсказок (например, следование за курсором)
  • Поддержка двойного нажатия и длительного удержания клавиш
  • Улучшения внешнего вида HUD
  • Возможная поддержка между версиями
Участники проекта
Mafuyu404

Mafuyu404

Разработчик

zhenshiz

zhenshiz

Разработчик

Flechazo098

Flechazo098

Разработчик

Создан: 18 июл 2025

ID: 239983