Create: Recipe Hooks
Создайте библиотеку для модов/аддонов/скриптов, основанных на рецептах, и т. д.
- Загрузчики
- FabricNeoForgeForgeQuilt
- Скачиваний на Modrinth
- 285
- Подписчиков на Modrinth
- 1
- версии
- 4
- Обновлён
- 16 августа 202616 авг.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
Create Recipe Hooks
Create Recipe Hooks — это серверная библиотека для Minecraft 1.20.1 (Forge и Fabric), которая вызывает события, когда машина Create завершает обработку рецепта, а также когда машина Create обрабатывает блок мира: добыча Дрелью, сбор Урожайной машиной, валка деревьев Пилой. Она предоставляет единый API, чтобы моды-интеграции — такие как квестовые книги, скрипты автоматизации и инструменты аналитики — могли реагировать на производство Create без написания собственных миксинов.
Что она делает
Мод внедряется в машины Create на уровне байт-кода и вызывает три события:
- recipeFinished — машина Create завершила рецепт (Basin, Fan, Press, Millstone, Crushing Wheels, Saw, Crafter, Deployer, Spout, Item Drain, Sand Paper, Sequenced Assembly, CEI Printer)
- blockProcessed — машина обработала блок мира: одно событие на каждый блок, сломанный Механической Дрелью, на каждое растение, срезанное Механической Урожайной машиной, на каждый отдельный блок, срезанный горизонтальной Механической Пилой
- treeCut — Механическая Пила свалила целое дерево, с точным количеством брёвен и листвы
Каждое событие несёт:
- Source — какая машина выполнила работу
- Привязка к игроку — UUID игрока, установившего машину (для Crushing Wheels: кто бросил предмет, с откатом к тому, кто установил колёса, для ввода с ленты и воронки). Сохраняется между перезапусками сервера и переносится внутри движущихся контрапций
- ID рецепта, входные и выходные предметы, выходные жидкости — для событий рецептов
- ID блока, состояние блока, флаг контрапции, количество брёвен — для событий блоков
- Позиция блока — где это произошло в мире
Поддерживаемые машины
| Машина | Константа Source | Событие |
|---|---|---|
| Basin (Mixing / Compacting) | BASIN | recipeFinished |
| Crushing Wheels | CRUSHING_WHEEL | recipeFinished |
| Mechanical Saw (рецепты) | MECHANICAL_SAW | recipeFinished |
| Spout (рецепт и наполнение ведра) | SPOUT_FILLING | recipeFinished |
| Millstone | MILLSTONE | recipeFinished |
| Mechanical Press (лента и мир) | MECHANICAL_PRESS | recipeFinished |
| Mechanical Crafter | MECHANICAL_CRAFTER | recipeFinished |
| Deployer | DEPLOYER_BELT | recipeFinished |
| Encased Fan (лента и мир) | FAN_BLASTING / FAN_HAUNTING / FAN_SPLASHING / FAN_SMOKING | recipeFinished |
| Item Drain (рецепты, ведра, зелья) | ITEM_DRAIN_EMPTYING | recipeFinished |
| Sand Paper | SAND_PAPER | recipeFinished |
| Sequenced Assembly (финальный шаг) | SEQUENCED_ASSEMBLY | recipeFinished |
| CEI Printer (опционально, только Forge) | CEI_PRINTER | recipeFinished |
| Mechanical Drill (стационарная и контрапция) | MECHANICAL_DRILL | blockProcessed |
| Mechanical Harvester (контрапция) | MECHANICAL_HARVESTER | blockProcessed |
| Mechanical Saw, горизонтальная (стационарная и контрапция) | MECHANICAL_SAW | treeCut / blockProcessed |
Скриптинг на KubeJS без дополнительных аддонов
CRH регистрирует собственную группу событий KubeJS. Одни и те же скрипты работают без изменений на Forge и Fabric, с опциональным фильтром по источнику и встроенным определением владельца:
CRHEvents.recipeFinished('MILLSTONE', event => {
const player = event.getOwner();
if (!player) return;
player.server.runCommandSilent('give ' + player.name.string + ' minecraft:emerald 1');
});
CRHEvents.treeCut('MECHANICAL_SAW', event => {
// event.getLogCount(), event.getBlockId(), event.getOwner()
});
Готовые примеры скриптов (интеграция с FTB Quests, фильтрация вывода, счётчики по игрокам, квесты на добычу Дрелью, подсчёт брёвен) доступны в README.
Зачем это может понадобиться
Если вы делаете интеграцию с квестами (FTB Quests и т.п.), вы можете запускать прогресс квеста в момент, когда машина Create завершает работу, с привязкой к нужному игроку — а не только когда предметы попадают в инвентарь. Квесты вроде «переплавить 64 железа с помощью Fan», «добыть 500 камня Дрелью» или «свалить 50 деревьев Пилой» становятся одним коротким скриптом каждый.
Если вы пишете инструменты аналитики или логирования для сервера, вы получаете единый надёжный поток событий для всего производства Create.
Сам по себе этот мод ничего видимого не делает. Это библиотека — вы не увидите никакого игрового интерфейса, предметов или блоков. Устанавливайте его, когда его требует другой мод или скрипт. Он серверный: клиенты без мода могут зайти на сервер, где он установлен. Для одиночной игры установите его в свой инстанс.
Требования
- Minecraft 1.20.1
- Файл для Forge: Forge 47 или новее, Create 6.0.8 или новее. Также работает на NeoForge 1.20.1, проверено на клиентах и выделенных серверах
- Файл для Fabric: Fabric Loader 0.15+, Fabric API, Create Fabric 6.0.8.1 или новее. Работает на Quilt
- KubeJS — опционально, только для JS-скриптинга (EventJS или другие аддоны не требуются)
- Create Enchantment Industry — опциональная мягкая зависимость на Forge; события CEI Printer вызываются только при установленном CEI
Для разработчиков
Регистрируйте слушатели во время инициализации мода — одинаково на обоих загрузчиках:
CreateRecipeHooks.register(ctx -> {
if (ctx.getSource() == RecipeSource.BASIN) {
// ctx.getRecipeId(), ctx.getItemOutputs(), ctx.getBlockPos(), ...
}
});
CreateRecipeHooks.registerBlockProcessed(ctx -> {
// ctx.getBlockId(), ctx.isContraption(), ctx.getMetadata()
});
CreateRecipeHooks.registerTreeCut(ctx -> {
// ctx.getLogCount(), ctx.getLeafCount()
});
На Forge события также публикуются в шине событий (CreateRecipeFinishedEvent, CreateBlockProcessedEvent, CreateTreeCutEvent); на Fabric это обычные колбэки (CreateRecipeFinishedCallback, CreateBlockProcessedCallback, CreateTreeCutCallback).
Для тестирования на Forge доступен режим отладки. Запустите с аргументом JVM -Dcrh.debug=true, чтобы записывать каждое завершение рецепта в logs/crh-events.log.
Полная документация по API доступна в README для каждого загрузчика в репозитории на GitHub.
Лицензия
LGPL-3.0-or-later — можно свободно использовать в публичных и приватных сборках модов и как зависимость в других модах. Форки и производные моды должны оставаться открытыми под той же лицензией с указанием авторства.
Частые вопросы
Как установить Create: Recipe Hooks?
Установите Fabric под свою версию Minecraft, скачайте Create: Recipe Hooks под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Create: Recipe Hooks?
У Create: Recipe Hooks есть сборки для Minecraft 1.20.1, 1.21.1.
Нужен ли Create: Recipe Hooks на сервере?
Ставится только на сервер; игрокам ставить не нужно