Rhizo для Minecraft: обновлённый движок скриптов для KubeJS
Если вы когда-нибудь писали скрипты на KubeJS и сталкивались с загадочными именами вроде func_110455_j(), то вы поймёте, зачем нужен Rhizo. Это обновлённый форк движка Rhino, который возвращает к жизни давно заброшенную ветку для Minecraft 1.16.5 и приносит целый ворох новых возможностей. Проще говоря, Rhizo для Minecraft делает написание скриптов куда приятнее и понятнее.
Что такое Rhizo и зачем он нужен
Rhizo — это не самостоятельный мод в привычном смысле, а движок JavaScript, на котором работает KubeJS. Оригинальный Rhino для версии 1.16.5 давно перестал получать обновления, и многие баги так и остались неисправленными. Rhizo решает эту проблему: он берёт за основу старый код, чинит ошибки и добавляет функции, которых раньше не было.
Главная фишка — поддержка remapper. Раньше, чтобы обратиться к методу getOpPermissionLevel() из класса MinecraftServer, приходилось писать func_110455_j() — имя, которое ничего не говорит человеку. С Rhizo вы вызываете метод по его нормальному, читаемому имени MCP. Это экономит время и нервы, особенно когда скрипт разрастается до сотен строк.
Ключевые нововведения Rhizo
Remapper и поддержка ProbeJS Legacy
Remapper не просто переименовывает методы — он полностью меняет подход к работе. Вместе с ProbeJS Legacy 3.2.0 вы получаете дамп remapped-имён, что даёт автодополнение и подсказки типов прямо в редакторе. Учтите: оригинальные SRG-имена намеренно скрыты, так что если в вашем старом скрипте использовались func_12345_ab_, их придётся заменить на человеческие названия.
Расширенная поддержка enum
Теперь имя или индекс перечисления может заменять сам enum в вызовах методов и присваиваниях. Можно писать enum == "some_enum_name" или enum == 1, не импортируя перечисление отдельно. Мелочь, а код становится чище.
Java Generics, rest-параметры и новые операторы
Улучшенная поддержка Java Generics делает type wrapper рабочим в большем числе случаев. Появились rest-параметры в функциях, итерация по Java Iterable через for..of, операторы опциональной цепочки (a ?. b) и nullish coalescing (a ?? b). Также работают Object.entries() и Object.values().
Исправления и лицензия
Починен JSON-вывод для Iterable: JSON.stringify() теперь корректно обрабатывает все элементы массива, а не только первый, как было в старом Rhino. Rhizo сохраняет имена параметров при компиляции, что заметно упрощает отладку. Проект распространяется под лицензией MPL-2.0.
Совместимость и загрузчики
Rhizo ориентирован на Minecraft 1.16.5 и работает через Forge. Именно для этой версии он и создавался, поскольку оригинальный Rhino здесь официально признан EOL. Если вы сидите на более новых версиях, скорее всего, вам подойдут другие решения, но для 1.16.5 Rhizo — практически безальтернативный вариант.
Кстати, если не хочется возиться с ручной установкой, лаунчер foxygame.net предлагает установку Rhizo в один клик — движок подтянется вместе с нужной версией KubeJS автоматически, и вам не придётся искать совместимые сборки вручную.
Как установить Rhizo
Установка не требует глубоких знаний. Вот базовый порядок действий:
- Убедитесь, что у вас установлен Minecraft 1.16.5 с Forge.
- Скачайте Rhizo для Minecraft из официального источника или через лаунчер.
- Поместите файл в папку mods вашего профиля.
- Установите KubeJS и, при желании, ProbeJS Legacy 3.2.0 для подсказок типов.
- Запустите игру и проверьте работу скриптов в папке kubejs.
Если вы использовали SRG-имена в старых скриптах, обязательно отредактируйте их под remapped-названия, иначе код не заработает.
Стоит ли скачать Rhizo
Rhizo — это грамотное решение для тех, кто продолжает играть и разрабатывать на Minecraft 1.16.5. Читаемые имена методов, поддержка enum, новые операторы и исправленные баги делают написание скриптов заметно комфортнее. Если вы работаете с KubeJS на этой версии, скачать Rhizo однозначно имеет смысл: движок живой, развивается и закрывает дыры, которые оригинальный Rhino оставил навсегда.
===ARTICLE===