
PySpigot
PySpigot - плагин для серверов Minecraft на Bukkit/Spigot/Paper, который позволяет писать скрипты на Python. Скрипты работают как мини-плагины: регистрируют события, команды, задачи и имеют полный доступ к Bukkit API.
PySpigot - это мощный инструмент для администраторов серверов Minecraft, которые хотят расширять функционал без глубокого знания Java. Вместо того чтобы писать полноценные плагины на Java, можно создавать скрипты на Python - они выполняются прямо на сервере через Jython (Python на Java). По сути, это аналог Skript, но гораздо гибче и производительнее.
Скрипты PySpigot имеют полный доступ ко всему Bukkit/Spigot API, а также к API любых других установленных плагинов. Это значит, что вы можете автоматизировать практически любую механику: от кастомных команд до сложных игровых событий.
Возможности
- Загрузка скриптов при старте сервера и через команды
- Остановка, перезагрузка и выгрузка скриптов без перезапуска сервера
- Поддержка как одиночных файлов, так и многомодульных проектов
- Регистрация слушателей событий (event listeners)
- Регистрация команд
- Планирование задач (синхронных и асинхронных)
- Работа с конфигурационными файлами
- Поддержка ProtocolLib (пакеты) и PlaceholderAPI (плейсхолдеры)
- Логирование ошибок отдельно для каждого скрипта
- Загрузка Java-библиотек прямо во время работы
- Полный доступ к Bukkit API и API других плагинов
- Работа с SQL, MongoDB и Redis
- И многое другое
Команды
/pyspigot reload- выводит полезные ссылки (документация и т.п.)/pyspigot info [scriptname/projectname]- подробная информация о скрипте или проекте (время работы, зарегистрированные слушатели, команды)/pyspigot listscripts- список загруженных и выгруженных скриптов/pyspigot load [scriptname/projectname]- загрузить скрипт или проект/pyspigot loadlibrary [libraryname]- загрузить Java-библиотеку/pyspigot reloadall- перезагрузить весь плагин (скрипты, проекты, библиотеки, конфиг)/pyspigot reload [scriptname/projectname]- перезагрузить конкретный скрипт/pyspigot reloadconfig- перезагрузить config.yml/pyspigot unload [scriptname/projectname]- выгрузить скрипт или проект
Конфигурация
Настройки хранятся в config.yml. Вот основные параметры:
# Отключить сбор статистики bStats
metrics-enabled: true
# Задержка загрузки скриптов после старта сервера (в тиках)
script-load-delay: 20
# Правила перемещения библиотек
library-relocations: []
# Формат времени в логах скриптов
log-timestamp-format: 'MMM dd yyyy HH:mm:ss'
# Логировать действия со скриптами в консоль
script-action-logging: true
# Подробное логирование Redis
verbose-redis-logging: true
# Автовыгрузка скрипта при выгрузке зависимого плагина
script-unload-on-plugin-disable: true
# Настройки Jython
jython-options:
init-on-startup: true
properties:
- 'python.cachedir.skip=true'
args:
- ''
# Значения по умолчанию для опций скриптов
script-option-defaults:
main: 'main.py'
enabled: true
load-priority: 1
plugin-depend: []
file-logging-enabled: true
min-logging-level: 'INFO'
permission-default: 'op'
# Отладка
debug-options:
print-stack-traces: false
show-update-messages: true
jython-logging-level: 'INFO'
patch-threading: true
Зачем это нужно?
Если вы администрируете сервер Minecraft и хотите быстро добавлять небольшие фичи без написания полноценных плагинов на Java - PySpigot ваш выбор. Скрипты на Python пишутся быстрее, их легко править на лету. При этом вы не теряете в возможностях: доступен весь Bukkit API.
Плагин работает на серверах Bukkit, Spigot, Paper и Purpur для Minecraft 1.16 и новее. Скачайте PySpigot и попробуйте автоматизировать свой сервер по-новому.
