ProbeJS Legacy avatar

ProbeJS Legacy [1.20.1] [1.16.5]

ProbeJS Legacy

является неофициальным продолжением ProbeJS для версий KubeJS, не поддерживаемых официальным ProbeJS.

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

  1. Необходимо установить ProbeJS Legacy.
  2. Войти в однопользовательский мир. Используйте /probejs dump для экспорта данных, собранных ProbeJS Legacy. Для новых пользователей это выполняется автоматически при первом входе в мир.
  3. Откройте папку экземпляра игры в VSCode.
  4. Наслаждайтесь!

Примечание0: введите @item или @block_tag для просмотра сгенерированных сниппетов.

Примечание1: папка экземпляра игры — это место, где можно напрямую увидеть папку kubejs.

Примечание2: Другие IDE с поддержкой типизации TypeScript (.d.ts) также должны работать.

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

(В сравнении с ProbeJS)

  • Эмуляция Internal

    • Теперь ProbeJS Legacy генерирует пространство имён Internal, упрощая миграцию с ProbeJS 6 или ProbeJS Legacy 3.
    • Пример: Internal.ItemStack и Internal.ItemStack_
  • Улучшенные наименования параметров

    • Параметры, конфликтующие с ключевыми словами TypeScript, переименовываются.
    • Параметры методов/конструкторов в формате arg123 заменяются на имена, производные от их типа.

Пример:

"mayUseItemAt"(arg0: $BlockPos$$Type, arg1: $Direction$$Type, arg2: $ItemStack$$Type): boolean

преобразуется в:

"mayUseItemAt"(blockPos0: $BlockPos$$Type, direction1: $Direction$$Type, itemStack2: $ItemStack$$Type): boolean
  • Улучшенный $Class<T>

    • $Class<T> корректно преобразуется в typeof T с учётом граничных условий.
    • Добавлена поддержка базовых классов (например, java.lang.String).
    • T в $Class<T> теперь используется для подсказок типов.
  • Улучшенный instanceof

    • Корректная обработка obj instanceof $SomeClass для классов, загруженных через java(...) или Java.loadClass(...).

Пример:

const $BoatItem = java("some.path.to.BoatItem")

let item = Item.of("boat").item; // тип `item` — `$Item`
if (item instanceof $BoatItem) {
    // здесь тип `item` выводится как `$BoatItem`
}
  • Трансформация полей

    • Некоторые поля преобразуются в геттеры/сеттеры для лучшей поддержки TypeWrapper.
    • Пример: присвоение obj.block = "minecraft:stone" теперь имеет корректную типизацию.
  • Совместное использование типизаций

    • Общие части классов выделяются в отдельные файлы, уменьшая общий размер типизаций.
    • Улучшает производительность IDE за счёт повторного использования типов между скриптами.
  • Улучшенное форматирование комментариев

    • Пустые строки в начале/конце игнорируются.
    • Однострочные комментарии форматируются в одну строку.
  • Методы, помеченные @OnlyIn, содержат комментарии об ограничении по стороне (сервер/клиент).

  • Большие файлы xxx.d.ts автоматически разделяются для улучшения производительности IDE.

  • Методы и поля в файлах объявлений сортируются естественным образом.

  • Разрешение значений в global. Глубина настраивается через 'global' Resolving Depth.

Сбор данных

События KubeJS

Для 1.16.5: записываются все запущенные события. Если событие отсутствует, вызовите его перед дампом (например, поместите блок для block.place).

Для 1.20.1: все зарегистрированные события KJS дампируются автоматически.

События Forge

Записываются все события Forge независимо от их вызова (настраивается через Class Scanner).

Java-классы

Используются различные методы сбора классов. Записываются:

  • Классы, загруженные вручную (java(...), Java.loadClass(...)).
  • Классы, используемые JS-привязками (например, AABB, Text).
  • Классы, на которые ссылаются известные классы (например, Item.class через ItemStack.class).
  • Объекты реестров (например, BoatItem). По умолчанию пропускаются неванильные объекты (настраивается через Registry Object Filter).
  • Классы из определённых модов (см. Mods with forced Full Scanning).
  • Классы из кэш-файла (<папка экземпляра>/.probe/classes.txt).
  • Классы, найденные сканером (см. Class Scanner).

Требуемые зависимости

KubeJS avatarKubeJSLatvianModder

Скачать ProbeJS Legacy

 
Тип Скачать Версия Загрузчик Обновлено Размер
Release3.10.0: Rhizo 3.0 support1.16.5Forge3 июня 2024247,8 КБ
Release3.9.9: tag dumping++ & snippet rework1.16.5Forge12 мая 2024228,5 КБ
Release3.2.0: Rhizo(not typo) support1.16.5Forge14 апреля 2024207,3 КБ
Release3.1.0: better type recognizing1.16.5Forge10 апреля 2024199,8 КБ
Release3.0.0: Rich display info dumping1.16.5Forge31 марта 2024182,7 КБ
Release3.0.1: Fix `Internal.ItemStackJS_`1.16.5Forge31 марта 2024183,2 КБ
Release2.6.1: Fix "optional" class dumping crash1.16.5Forge25 марта 2024162,6 КБ
Release2.6.0: Registry Dumping!1.16.5Forge23 марта 2024162,3 КБ
Release2.5.0: RecipeFilter_ & FunctionalInterfaces1.16.5Forge14 марта 2024157,9 КБ
Release2.4.1: Fix type casting error1.16.5Forge15 февраля 2024159,4 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.