Плагин для серверов Майнкрафт, который позволяет создавать серверные дополнения на TypeScript, JavaScript и Python. Скрипты работают внутри сервера через GraalJS и GraalPy, а API даёт привычные для выбранного языка события, команды, игроков, миры и игровые объекты.
Возможности
- Обработка игровых событий, создание команд с аргументами, правами и автодополнением.
- Работа с игроками, мирами, локациями, чанками, блоками, предметами, инвентарями и мобами.
- Безопасные задачи по тикам, корутины Python и
async/await. - Создание генераторов миров и наполнителей чанков.
- Конфигурация и отдельная папка данных для каждого скриптового плагина.
- HTTP- и WebSocket-клиенты для связи с внешними сервисами.
- Создание интерфейсов игры через React: таб-лист, скорборд, босс-бар и инвентари.
- При установленном PacketEvents — обработка сетевых пакетов через типизированные константы и обёртки.
Команды
/graaly reload— перезагрузить скриптовые плагины./graaly status— проверить загруженные языки и число скриптовых плагинов.
Настройка
Скриптовые плагины размещаются в plugins/Graaly/scripts/. Для TypeScript и JavaScript используется папка с расширением .jsplugin, для Python — .pyplugin; в ней нужен plugin.yml и основной файл плагина.
Параметры среды находятся в plugins/Graaly/config.yml. В разделе runtime можно включать JavaScript и Python, настраивать тайм-ауты и число повторных попыток загрузки. Для автономной работы перенесите полный проверенный кэш среды с другого сервера и установите auto-download: false.
Требования
Для работы плагина нужен Java 17 или новее, совместимый с используемым сервером. Node.js требуется для разработки на TypeScript и JavaScript, а Python — для инструментов разработки и проектов с FastAPI; сам сервер исполняет скрипты через встроенные GraalJS и GraalPy. PacketEvents требуется только для обработки пакетов.
