Плагин для серверов Майнкрафт на Paper, который позволяет создавать и запускать серверные дополнения на TypeScript и JavaScript. Он загружает модули из своей папки, даёт им доступ к событиям и командам Bukkit, а также позволяет перезагружать код без перезапуска сервера.
Возможности
- Автоматически находит модули в папке
plugins/PaperTS: для каждого нужен каталог с файломpackage.json. - Запускает файл, указанный в поле
mainфайлаpackage.json. - Через глобальный объект
PaperTSможно регистрировать обработчики событий Bukkit и собственные команды, работать сPersistentDataContainer, получать экземплярJavaPluginи создаватьRunnable. - При выгрузке или перезагрузке модуля вызывает его функцию
cleanup, если она объявлена: в ней можно закрыть соединения с базой данных, веб-сервер и другие ресурсы. - Java-классы импортируются через
require: поддерживаются пути, начинающиеся сorg.,java.,net.иcom.. Методы Java видаgetName()иsetName(value)доступны как свойства:player.nameиplayer.name = "...".
Команды
/paperts reload— перезагрузить все модули./paperts reload <module>— перезагрузить указанный модуль./paperts list— показать загруженные модули./paperts unload <module>— выгрузить модуль./paperts load <module>— загрузить модуль.
Настройка
Для модуля создайте отдельную папку в plugins/PaperTS, добавьте package.json и укажите в нём точку входа, например "main": "index.js". Зависимости ищутся от корня папки модуля.
В package.json можно задать способ запуска полем runType:
SynchronousOnNextTick— синхронно на следующем тике сервера;AsynchronousOnNextTick— асинхронно на следующем тике;NewThread— асинхронно в отдельном потоке.
Для интернационализации Node.js поместите данные ICU в plugins/PaperTS/node-icu.
Требования
Нужен сервер на Paper. Плагин использует Javet и среду выполнения Node.js; она загружается автоматически из зависимостей Javet, поэтому платформа сервера должна поддерживаться Javet.
