
KubeJS + CC: Tweaked
Мод KubeJS + CC: Tweaked связывает скрипты KubeJS с компьютерами ComputerCraft. Добавляйте свои периферийные методы к любым блокам в Minecraft 1.19.2 и 1.20.1 на Forge.
KubeJS + CC: Tweaked - мод для Майнкрафт, который объединяет два мощных инструмента автоматизации: скриптовый движок KubeJS и программируемые компьютеры из CC: Tweaked. Если вы когда-нибудь хотели, чтобы ваш компьютер на Lua мог напрямую читать прогресс плавки в печке, остаток топлива в генераторе или вообще любые данные из NBT блока - этот bridge-мод именно для этого.
Скачать KubeJS + CC: Tweaked стоит в первую очередь тем, кто строит серьёзные автоматизированные базы и устал от ограничений стандартной периферии ComputerCraft.
В чём суть мода
По умолчанию CC: Tweaked (он же КомпьютерКрафт) умеет взаимодействовать только с теми блоками, для которых кто-то заранее написал периферийное API. Ванильная печка? Мимо. Механизм из стороннего мода? Тоже мимо, если автор не позаботился об интеграции.
KubeJS + CC: Tweaked снимает это ограничение. Через событие ComputerCraftEvents.peripheral вы сами, обычным скриптом KubeJS, регистрируете периферию для любого блока и описываете методы, которые будут доступны с компьютера или черепашки (turtle). Хотите - к одному конкретному блоку по ID, хотите - сразу к группе через регулярное выражение.
По факту это превращает связку KubeJS и ComputerCraft в универсальный инструмент автоматизации: любой тайл-энтити в мире становится программируемым.
Пример: добавляем методы печке
Вот как выглядит регистрация периферии для ванильной печи. Скрипт кладётся в папку kubejs/server_scripts (или startup_scripts, в зависимости от версии KubeJS):
// priority: 0
ComputerCraftEvents.peripheral(event => {
// Первый параметр: тип периферии
// Второй параметр: к какому блоку привязываем
// Во втором параметре можно использовать regex
event.registerPeripheral("furnace", "minecraft:furnace")
// mainThreadMethod ограничен 1 вызовом за тик,
// потому что выполняется в главном потоке,
// синхронизированном с блоком
.mainThreadMethod("burnTime", (container, direction, arguments) => {
// Возвращает оставшееся время горения топлива
return container.entityData.getInt("BurnTime")
})
.mainThreadMethod("cookingProgress", (container) => {
// Возвращает процент готовности текущего предмета.
// Если два тика подряд вернулся 0 - печка простаивает
let data = container.entityData
let cookTime = data.getInt('CookTime')
let cookTimeTotal = data.getInt('CookTimeTotal')
if (!cookTimeTotal) return 0;
return (cookTime / cookTimeTotal) * 100
})
// Обычный method без лимита вызовов,
// но у него нет доступа к большинству данных мира -
// например, к NBT тайл-энтити он обратиться не сможет
.method("say_hi", (container, direction, arguments) => {
container.up.set("diamond_block")
return "hi, here's your diamond block"
})
})
После этого подключаете к печке wired modem, и с компьютера на Lua спокойно вызываете peripheral.call("furnace_0", "burnTime") или cookingProgress. Можно построить систему, которая сама подкидывает уголь, когда топливо на исходе, или переключает входные слоты по расписанию.
Важный нюанс: mainThreadMethod против method
Тут часто спотыкаются новички, поэтому объясню на пальцах:
- mainThreadMethod - выполняется в главном потоке игры. Можно читать NBT, инвентари, состояние блоков. Цена - максимум один вызов за тик, потому что метод встаёт в очередь основного потока.
- method - без ограничений по частоте вызовов, но работает вне основного потока. Доступа к данным мира почти нет, зато можно манипулировать самим компьютером и его окружением (как в примере выше с установкой алмазного блока сверху).
Правило простое: читаете данные из блока - берите mainThreadMethod, делаете что-то быстрое и не завязанное на мир - обычный method.
Совместимость и требования
Проект узкоспециализированный, поэтому список требований короткий, но жёсткий:
| Параметр | Значение |
|---|---|
| Загрузчик | только Forge |
| Версии Minecraft | 1.20.1 - 1.20.2 и 1.19.2 |
| Обязательные зависимости | KubeJS и CC: Tweaked |
| Сторона | клиент и сервер |
Fabric, Quilt и NeoForge не поддерживаются - мод изначально писался под Forge и портировался силами сообщества. Для работы нужны оба родительских проекта: без KubeJS не будет скриптового движка, без CC: Tweaked - самих компьютеров.
Учтите, что проект давно не получал крупных обновлений - последние правки касались в основном мелочей вроде updateJSONURL и улучшений для IDE. Тем не менее на указанных версиях Майнкрафта мод стабилен и используется в сборках до сих пор. Авторство оригинала принадлежит Amygdaloideae (Prunoideae), а порт на актуальные версии вышел при участии richie3366.
Кому реально пригодится
Если вы играете в ванилу или лёгкие сборки - проходите мимо, мод вам ничего не даст. А вот если собираете техно-сборку на Forge 1.20.1, где KubeJS управляет рецептами и механиками, а ComputerCraft отвечает за логистику и контроль - это must-have связка.
Типичные сценарии, где мод раскрывается:
- мониторинг десятков машин с одного компьютера через wired-сеть;
- автоматическая подача ресурсов по фактическому состоянию механизма, а не по таймеру;
- интеграция модовых блоков, у которых вообще нет нативной поддержки ComputerCraft;
- серверные проекты, где админ через скрипты KubeJS выдаёт игрокам программируемый доступ к механизмам.
Совет из практики: начинайте с простых геттеров вроде burnTime, отладьте их через программу peripherals на компьютере, и только потом городите сложную логику. И не забывайте, что regex во втором параметре registerPeripheral позволяет одной строкой покрыть, например, все печки из модов - что-то вроде ".*:.*furnace.*".
Скачать мод KubeJS + CC: Tweaked для Minecraft 1.20.1 и 1.19.2 можно на этой странице. Ставьте вместе с КубеДЖС и КомпьютерКрафтом - и ваши компьютеры наконец увидят весь мир, а не только его маленький разрешённый кусочек.
Как поиграть с друзьями с модом KubeJS + CC: Tweaked?
Мод KubeJS + CC: Tweaked куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода KubeJS + CC: Tweaked будет готов за пару минут - BungeeHost сделает всё за вас.
