- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 112
- Подписчиков на Modrinth
- 0
- версия
- 1
- Обновлён
- 6 мая 20266 мая
- Опубликован
- в 2026
Коротко о моде
Нужен и в игре, и на сервере
PythonMC
PythonMC — это серверный мод для Fabric, добавляющий в Minecraft 1.21.1 лёгкое скриптование на Python. Он позволяет владельцам серверов писать простые скрипты на Python для типовой автоматизации, сообщений игрокам, серверных событий и поведения по командам без перекомпиляции мода.
Возможности
- Загружает скрипты Python из папки конфигурации сервера.
- Автоматически запускает и управляет локальным хостом скриптов Python 3.8+.
- Предоставляет события жизненного цикла сервера, тиков и подключения игроков.
- Открывает небольшой API для логирования, широковещательных сообщений, личных сообщений и выполнения серверных команд.
- Включает админ-команды
/pythonmcдля статуса, перезагрузок, перезапусков, пользовательских событий и быстрых сниппетов Python. - При первом запуске поставляется с примером скрипта.
Требования
- Minecraft 1.21.1
- Fabric Loader 0.18.4 или новее
- Fabric API
- Java 21
- Python 3.8 или новее, установленный на сервере Python должен быть доступен как
python3илиpythonвPATHсервера. Если Python установлен в другом месте, задайте одно из этого перед запуском Minecraft:
-Dpythonmc.python=/path/to/pythonили:
PYTHONMC_PYTHON=/path/to/pythonУстановка
- Установите Fabric Loader для Minecraft 1.21.1.
- Установите Fabric API.
- Поместите jar-файл PythonMC в папку
modsсервера. - Убедитесь, что Python 3.8+ установлен на машине, запускающей сервер.
- Запустите сервер один раз. PythonMC создаст эту папку:
config/pythonmc/scriptsОн также создаст стартовый скрипт:
config/pythonmc/scripts/main.pyНаписание скриптов
Скрипты — это обычные файлы .py внутри:
config/pythonmc/scriptsФайлы, имена которых начинаются с _, игнорируются. После редактирования скриптов перезагрузите их в игре или из консоли сервера:
/pythonmc reloadБазовый пример:
import pythonmc_api as mc
def on_server_started(ctx):
mc.log("PythonMC script loaded.")
def on_player_join(ctx):
mc.tell(ctx["name"], "Welcome! This message came from PythonMC.")API скриптов
Импортируйте встроенный API так:
import pythonmc_api as mcДоступные функции:
mc.log(message, level="info")
mc.broadcast(message)
mc.tell(player_name, message)
mc.execute(command)mc.execute(command) выполняет команду сервера Minecraft от имени источника команд сервера. Используйте осторожно.
События
PythonMC вызывает функции в ваших скриптах при наступлении соответствующих событий. Поддерживаемые обработчики событий:
def on_server_started(ctx): ...
def on_server_stopping(ctx): ...
def on_server_tick(ctx): ...
def on_player_join(ctx): ...
def on_player_leave(ctx): ...
def on_shutdown(ctx): ...
def on_event(event_name, ctx): ...Объект ctx содержит данные события. Он поддерживает как доступ в стиле словаря, так и .get():
def on_player_join(ctx):
player_name = ctx["name"]
player_uuid = ctx.get("uuid")Общие поля событий игрока:
name
uuidОбщие поля событий сервера:
players
max_players
tick
scripts_dirКоманды
Все команды требуют уровень разрешений 4.
/pythonmc status
/pythonmc start
/pythonmc stop
/pythonmc restart
/pythonmc reload
/pythonmc py <python code>
/pythonmc event <event_name>Подробности команд:
/pythonmc statusпоказывает, запущен ли хост Python и откуда загружаются скрипты./pythonmc startзапускает хост скриптов Python, если он остановлен./pythonmc stopостанавливает хост скриптов Python./pythonmc restartперезапускает хост скриптов Python./pythonmc reloadперезагружает скрипты изconfig/pythonmc/scripts.- `/pythonmc py ` выполняет сниппет Python в процессе хоста.
/pythonmc event <event_name>отправляет пользовательское событие скриптам. Пример пользовательского события:
import pythonmc_api as mc
def on_event(event_name, ctx):
if event_name == "maintenance":
mc.broadcast("Server maintenance is starting soon.")Затем выполните:
/pythonmc event maintenanceЗамечания по безопасности
Скрипты PythonMC выполняются на машине сервера с правами процесса сервера Minecraft. Устанавливайте или пишите только те скрипты, которым доверяете. Скрипт Python может выполнять обычные файловые и процессные операции Python, а mc.execute() может запускать команды Minecraft от имени источника команд сервера. Для публичных или общих серверов ограничьте доступ к команде /pythonmc только доверенными операторами.
Только для серверной стороны
PythonMC предназначен для серверного скриптования. Клиентам не нужно устанавливать мод при подключении к серверу, который его использует, если только ваш модпак или настройка сервера не требуют совпадающих списков модов.
Решение проблем
Если скрипты не запускаются:
- Выполните
/pythonmc status. - Убедитесь, что установлен Python 3.8+.
- Убедитесь, что
python3илиpythonработает в том же окружении, из которого запускается сервер Minecraft. - При необходимости задайте
-Dpythonmc.python=/path/to/python. - Проверьте лог сервера на сообщения с тегом
pythonmcили[python]. Если изменения скриптов не применяются: - Убедитесь, что файл находится в
config/pythonmc/scripts. - Убедитесь, что имя файла заканчивается на
.py. - Убедитесь, что имя файла не начинается с
_. - Выполните
/pythonmc reload. - Проверьте лог сервера на вывод трассировки Python.
Частые вопросы
Как установить Python MC Mod?
Установите Fabric под свою версию Minecraft, скачайте Python MC Mod под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Python MC Mod?
У Python MC Mod есть сборки для Minecraft 1.21.1.
Нужен ли Python MC Mod на сервере?
Нужен и в игре, и на сервере