Перейти к содержимому

Combind

Расширь ванильные привязки клавиш с поддержкой комбо

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
4,9 тыс.
Подписчиков на Modrinth
4
версии
3
Обновлён
15 сентября 202615 сент.
Опубликован
в 2025
Key Binds Screen 26.3 · свайп

Коротко о моде

Работает на Fabric
Для Minecraft 26.1.2–26.3
Ставится только в игру; на сервер ставить не нужно
Последняя версия — 1.0.0+26.3 от 15 сентября 2026
Нужен Fabric API
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа серверене нужен

Ставится только в игру; на сервер ставить не нужно

Версии игры26.1.2–26.3
Описание переведено автоматическиПоказать оригинал (EN)

Этот мод расширяет ванильные привязки клавиш поддержкой комбо, позволяя привязать любое действие к аккорду или последовательности клавиш вместо одной клавиши.

Он только клиентский и не требует установки на сервере.

Key Binds Screen 26.3

Возможности

Аккорды

  • Привязывайте действия к комбинациям клавиш, таким как Left Shift + E, Left Control + Left Button или любой другой паре удерживаемая клавиша + триггер
  • Любая клавиша или кнопка мыши может быть триггером или удерживаемой клавишей в аккорде. Последняя нажатая при записи клавиша становится триггером, а все ранее удержанные клавиши дополняют комбинацию
  • Без ограничений! Удерживайте сколько угодно клавиш для сколь угодно дикой комбинации
  • Может сопровождаться комбо-последовательностью

Последовательности

  • Привязывайте действия к повторным нажатиям клавиш, таким как двойное нажатие Q или тройное нажатие Space
  • Настраиваемое временное окно определяет, как быстро должны происходить нажатия
  • Без ограничений! Привязывайте к любому количеству нажатий

Интеграция в экран управления

  • Запись комбо встроена прямо в ванильный экран Управление > Привязки клавиш, то есть отдельного интерфейса нет
  • Нажмите Escape, чтобы снять привязку клавиши

Настройка

  • Allow Conflicts: Если отключено, нажатие комбо не будет также запускать привязки, чьи клавиши полностью в него входят. Например, если привязаны и E, и Left Shift + E, нажатие Left Shift + E обычно запустит обе. Отключение этой опции гарантирует, что сработает только Left Shift + E. То же самое касается последовательностей: если одиночное нажатие и многократное нажатие привязаны к одной клавише (например, Q и Q Q), нажатие этой клавиши запустит только привязку одиночного нажатия. Две привязки вроде Left Control + E и Left Shift + E не считаются конфликтующими, поскольку нажатие одной никогда не запустит другую случайно. Они обе сработают, только если вы намеренно удержите Left Control + Left Shift + E. Эта настройка применяется только к привязкам с одинаковой клавишей-триггером (по умолчанию: вкл.)
  • Sequence Window: Как быстро нужно повторно нажимать клавишу в игре, чтобы последовательность засчиталась (по умолчанию: 400 мс)
  • Sequence Recording Window: Как долго регистратор ждёт между нажатиями при записи последовательности в экране управления (по умолчанию: 200 мс)
  • Настройки сохраняются в config/combind.json

Случаи использования

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

Практический пример

Двойное нажатие Q (Q Q) (или даже тройное нажатие Q (Q Q Q)!) для выбрасывания предметов вместо одиночного нажатия. Больше никаких случайных выбросов.

Совместимость

У этого мода нет обязательных зависимостей кроме Fabric API. Он работает с:

  • ModMenu (рекомендуется) — добавляет кнопку настроек в список модов как альтернативу ручному редактированию config/combind.json
  • Controlling и Searchables — ищите привязки по их комбо, используя синтаксис вроде key:"Left Shift + E" или key:"Q Q". Не поддерживается начиная с combind-v1.0.0+26.3, пока оба мода не выпустят версию, совместимую с 26.3

Примечание: Некоторые специфичные ванильные взаимодействия привязаны к определённому типу ввода и могут не работать после переназначения. Например, кнопка мыши, привязанная к «Открыть инвентарь», не закроет его так, как это сделала бы клавиша, а клавиша, привязанная к «Выбрать блок», не поддержит перетаскивание для дублирования блоков внутри контейнеров так, как это сделала бы кнопка мыши.

Примечание: Если вы столкнётесь с проблемами совместимости, пожалуйста, сообщите о них на странице GitHub Issues.


Для разработчиков модов

Использование API Combind

Combind предоставляет три API-класса в пакете net.pemiridosa.combind.api, которые позволяют вашему моду регистрировать привязки клавиш с полной поддержкой комбо.

Настройка зависимости

Добавьте Combind как зависимость времени компиляции через репозиторий Modrinth Maven:

// build.gradle
repositories {
    maven { url "https://api.modrinth.com/maven" }
}

dependencies {
    compileOnly "maven.modrinth:combind:VERSION"
    localRuntime "maven.modrinth:combind:VERSION" // optional: for dev runs
}

Объявите зависимость в fabric.mod.json. Используйте depends, если ваш мод требует Combind, или suggests, если она необязательна:

"depends": {
    "combind": "*"
}

API-классы

КлассНазначение
CombindKeyBindingОборачивает ванильный KeyMapping с поддержкой комбо — основная точка входа
KeyComboОписывает комбо: одиночная клавиша, аккорд, последовательность или аккорд + последовательность
InputKeyПредставляет один физический ввод — InputKey.keyboard(scancode) или InputKey.mouse(button)

Примеры

Аккорд — удерживаемый модификатор(ы) + клавиша-триггер

Привяжите действие к Left Shift + E:

KeyMapping.Category category = KeyMapping.Category.register(
    Identifier.fromNamespaceAndPath("mymod", "mymod")
);

KeyMapping someActionMapping = KeyMappingHelper.registerKeyMapping(
    new KeyMapping("key.mymod.someaction", InputConstants.KEY_E, category)
);

// Left Shift + E
CombindKeyBinding someActionBinding = CombindKeyBinding.of(someActionMapping,
    new KeyCombo(
        InputKey.keyboard(InputConstants.KEY_E),
        new InputKey[]{ InputKey.keyboard(InputConstants.KEY_LSHIFT) }
    )
);

someActionBinding
    .onPress(ctx -> LOGGER.info("Some action PRESSED — combo: {}", ctx.combo().getDisplayName()))
    .onRelease(ctx -> LOGGER.info("Some action RELEASED — combo: {}", ctx.combo().getDisplayName()));
Аккорд с несколькими модификаторами

Привяжите действие к Left Control + Left Shift + E:

KeyMapping someActionMapping = KeyMappingHelper.registerKeyMapping(
    new KeyMapping("key.mymod.someaction", InputConstants.KEY_E, category)
);

// Left Control + Left Shift + E
CombindKeyBinding someActionBinding = CombindKeyBinding.of(someActionMapping,
    new KeyCombo(
        InputKey.keyboard(InputConstants.KEY_E),
        new InputKey[]{
            InputKey.keyboard(InputConstants.KEY_LCONTROL),
            InputKey.keyboard(InputConstants.KEY_LSHIFT)
        }
    )
);

someActionBinding
    .onPress(ctx -> LOGGER.info("Some action PRESSED — combo: {}", ctx.combo().getDisplayName()))
    .onRelease(ctx -> LOGGER.info("Some action RELEASED — combo: {}", ctx.combo().getDisplayName()));
Последовательность — нажатие одной и той же клавиши несколько раз

Привяжите действие к M M (двойное нажатие) или M M M (тройное нажатие):

KeyMapping someActionMapping = KeyMappingHelper.registerKeyMapping(
    new KeyMapping("key.mymod.someaction", InputConstants.KEY_M, category)
);

// Double-tap M (M M)
CombindKeyBinding someActionBinding = CombindKeyBinding.of(someActionMapping,
    KeyCombo.sequence(InputKey.keyboard(InputConstants.KEY_M), 2)
);

// Triple-tap M (M M M) — even safer
CombindKeyBinding someActionBinding = CombindKeyBinding.of(someActionMapping,
    KeyCombo.sequence(InputKey.keyboard(InputConstants.KEY_M), 3)
);

someActionBinding
    .onPress(ctx -> LOGGER.info("Some action PRESSED — combo: {}", ctx.combo().getDisplayName()))
    .onRelease(ctx -> LOGGER.info("Some action RELEASED — combo: {}", ctx.combo().getDisplayName()));
Аккорд + последовательность — удерживайте модификатор(ы) при многократном нажатии

Привяжи действие к Left Shift + Q Q (двойное нажатие Q с зажатым Shift):

// Left Shift + Q Q
CombindKeyBinding binding = CombindKeyBinding.of(mapping,
    new KeyCombo(
        InputKey.keyboard(InputConstants.KEY_Q),
        new InputKey[]{ InputKey.keyboard(InputConstants.KEY_LSHIFT) },
        2
    )
);
Кнопка мыши как триггер

Привяжи действие к Left Control + Left Button:

// Left Control + Left Mouse Button
CombindKeyBinding binding = CombindKeyBinding.of(mapping,
    new KeyCombo(
        InputKey.mouse(InputConstants.MOUSE_BUTTON_LEFT),
        new InputKey[]{ InputKey.keyboard(InputConstants.KEY_LCONTROL) }
    )
);
Одна клавиша (явная комбинация не нужна)

CombindKeyBinding.of(mapping) выводит начальную комбинацию из клавиши по умолчанию у KeyMapping:

CombindKeyBinding binding = CombindKeyBinding.of(mapping); // defaults to the KeyMapping's key
Без привязки — по умолчанию клавиша не назначена
// Player must configure this in the Controls > Key Binds screen
CombindKeyBinding binding = CombindKeyBinding.of(mapping, KeyCombo.unbound());

Опрос по тикам (в ванильном стиле)

Если ты предпочитаешь стандартный паттерн опроса по тикам вместо колбэков, он работает без изменений через ванильный KeyMapping:

ClientTickEvents.END_CLIENT_TICK.register(client -> {
    while (someActionMapping.consumeClick()) {
        // handle each queued click
    }

    if (someActionMapping.isDown()) {
        // binding is currently held
    }
});

Подробнее — в полной реализации по адресу src/client/java/net/pemiridosa/combind/api.

Частые вопросы

Как установить Combind?

Установите Fabric под свою версию Minecraft, скачайте Combind под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Combind?

У Combind есть сборки для Minecraft 26.1.2–26.3.

Нужен ли Combind на сервере?

Ставится только в игру; на сервер ставить не нужно

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее