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

 
Тип Скачать Версия Загрузчик Обновлено Размер
Release1.16.5-5.0.0: Typing files sharing1.16.5Forge20 мая 2025738 КБ
Releaseprobejs-4.8.2.jar1.16.5Forge29 марта 2025685,9 КБ
Releaseprobejs-4.8.1.jar1.16.5Forge28 марта 2025685,7 КБ
Release4.8.0: Better Beaning1.16.5Forge27 марта 2025685,6 КБ
Release4.7.2: fixing & info++1.16.5Forge9 марта 2025682,4 КБ
Release4.7.0: `@ReturnsSelf` support & better comment formatting1.16.5Forge4 марта 2025680,5 КБ
Release4.7.1: fix type declaration1.16.5Forge4 марта 2025680,3 КБ
Release4.6.3: Fix again & Mod Scanner1.16.5Forge13 февраля 2025675,6 КБ
Release4.6.1: Fix `java(...)`1.16.5Forge8 февраля 2025669,8 КБ
Release4.6.0: Simulated `Internal`1.16.5Forge4 февраля 2025666 КБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.