
Endstone: Теперь мощь серверов Paper для Bedrock
endstone (EndstoneMC/endstone)
Высокопроизводительный сервер Minecraft Bedrock с родной API для плагинов на C++ и Python
Хотели ли вы когда-нибудь запустить сервер Bedrock с возможностями настройки Java Edition's Paper? Endstone заполняет этот пробел, предоставляя поддержку плагинов и глубокий контроль сервером, сохраняя целостность совместимости с оригиналом.
Что делает Endstone
Будем честны: стандартные серверы Bedrock ограничены. Вы не можете отменить события, контролировать пакеты или изменять ядро игровой логики, как в Paper или Spigot. Endstone меняет это, располагаясь между вами и самим Bedrock, перехватывая события и предлагая полный API для плагинов. Это не система дополнений или движок скриптов. Это правильный сервер-оболочка с архитектурной мощью, которой годами пользуются игроки Java.
Интересная часть? Это действительно заменяемое решение. Ваши файлы мира, конфигурации, существующая настройка Bedrock - всё работает. Нет необходимости в миграции. Просто установите Endstone, укажите путь к вашему миру и начните загружать плагины. Основной сервер Bedrock работает незамеченным под капотом, поэтому стандартные функции остаются целыми и надёжными.
Под капотом - это C++, выполняющее тяжёлую работу. Проект имеет 623 звёзд на GitHub и активное развитие (последняя версия поддерживает Bedrock 1.26.12). Сам API плагинов опирается на закономерности дизайна, знакомые разработчикам Bukkit - если вы раньше писали плагины для Paper, модель сразу станет понятна.
Почему использовать это
Очевидный случай: вы управляете сервером Bedrock и хотите добавить кастомные команды, системы разрешений или механики игровой логики без написания с нуля собственного дополнения. Endstone занимается инфраструктурой - событиями, табло, формами, доступом к инвентарю, данным игрока - чтобы вы могли сосредоточиться на логике.
Конкретные примеры. Предположим, вы хотите систему уровней, где игроки зарабатывают XP и открывают команды. В стандартном Bedrock вы боретесь с ограничениями дополнений. С Endstone вы пишете обработчик событий, который отслеживает урон игрока, рассчитывает XP, обновляет табло и динамически присваивает разрешения. Несколько десятков строк Python - и готово. Вы также могли бы реализовать полную экономическую систему, кастомную механику боя, события в подземельях или ранжированное соперничество PvP.
Другой подход: связь между серверами. Вы управляете Bedrock, но хотите, чтобы игроки могли подключаться из серверов Java Edition через прокси-инструменты. Контроль пакетов в Endstone позволяет перехватывать и изменять последовательности подключения, косметику и другие межверсионные конфликты. Это не гладко работает сразу, но возможно в пределах, недоступных чистому Bedrock.
Windows или Linux. Поддержка Docker существует. Python 3.10+ на Windows 10+ или Ubuntu 22.04+ / Debian 12+. Это достаточно гибко для большинства хостингов. И если вам нужна производительность C++ для критического плагина, API поддерживает это тоже.
Начало работы
Установка требует трёх команд:
pip install endstone
endstone
Всё. Менеджер пакетов Python скачивает релизный бинарник (в зависимости от вашей платформы), а запуск `endstone` стартует сервер в текущей директории. Он сгенерирует серверную конфигурацию и папку `plugins`.
Для вашего первого плагина создайте файл Python в этой папке. Вот минимальный пример:
from endstone.plugin import Plugin
from endstone.event import event_handler, PlayerJoinEvent
class MyPlugin(Plugin):
api_version = "0.10"
def on_enable(self):
self.logger.info("MyPlugin enabled!")
self.register_events(self)
@event_handler
def on_player_join(self, event: PlayerJoinEvent):
event.player.send_message(f"Добро пожаловать, {event.player.name}!")
Поместите его в `plugins/`, перезапустите сервер, и в логах увидите „MyPlugin enabled!”. Игроки, подключающиеся, получат приветственное сообщение. Всё это цикл обратной связи.
Проект предоставляет шаблоны для Python и C++ если вы хотите структурированную основу. Но честно говоря, пример плагина выше достаточно мал, чтобы скопировать и начать экспериментировать.
Что делает его мощным
Объём API существенный. Мы говорим о более 60 событиях, охватывающих подключение игроков, разрушение блоков, получение урона, открытие инвентаря, чат и многое другое. Команды работают с встроенным парсингом команд Bedrock (без необходимости кастомного парсинга строк). Вы получаете табло, формы (интерактивный UI-систему), разрешения, доступ к инвентарю, данные игрока и данные мира.
Контроль пакетов - это то, где Endstone отличается от других решений. Вы можете слушать низкоуровневые сетевые пакеты до их обработки сервером. Это открывает двери для анти-чита, хаков совместимости между версиями и тонкого отмены событий. Измените пакет в полёте, и изменение нормально распространится.
Автоматически оставаться совместимым с последними выпусками Bedrock? Философия дизайна отдает предпочтение поддержке ежемесячных релизов Minecraft вместо игры в догонялки. Релиз v0.11.3 добавил поддержку реестра BlockType и исправил несколько ошибок сериализации пакетов, вызывающих отключения. Это темп, на котором вы сможете рассчитывать - быстрые итерации, поддерживающие API актуальным.
Что может поймать людей
Плагины на Python удобны, но медленнее, чем C++. Если вы строите что-то, работающее на каждом тике для тысяч игроков, C++ - ваш ответ. Но для событий, срабатывающих периодически (подключение игрока, чат, кастомные команды), Python достаточно быстр.
Миры, созданные в чистом Bedrock, будут работать, но если у вас есть резервные копии реалма или мир-специфичные данные вне папки уровня (например, метаданные резервной копии реалма), вам, возможно, потребуется ручная миграция. Endstone обрабатывает формат мира родно - это просто окружающая инфраструктура, которая иногда требует调整.
Также помните, что вы запускаете **Bedrock**-сервер, а не Java. Это важно для доступности плагинов. Многие популярные плагины для Java (Essentials, Vault, библиотеки форматирования чата) не имеют аналогов для Bedrock. Вам придётся писать больше с нуля. Сообщество меньше, но растёт, а официальные репозитории шаблонов дают стартовые точки.
Как это сравнивается с альтернативами
PocketMine и Nukkit - старые реализации серверов Bedrock. Они не запускают родной Bedrock под капотом - вместо этого они переименовали сервер с нуля. Это означает больше контроля, но и больше обслуживания, медленнее обновления и иногда тонкие различия в поведении. Endstone оборачивает реальный Bedrock, поэтому стандартные функции гарантированно сохраняются.
Официальное скриптинг-аддон ограничено по дизайну. Оно отлично подходит для косметики и простой логики, но не может подключаться к сервер-уровню событий или систем разрешений. Endstone - лучший выбор, если вам нужный контроль.
Если вы на Java Edition, Paper (или Spigot/Bukkit) по-прежнему остаётся золотым стандартом и всегда будет таковым. Endstone специально для сообществ Bedrock, нуждающихся в инфраструктуре плагинов.
Примечания к реальному запуску
Запустите его в Docker для чистой изоляции и обновлений. Запустите его за обратным прокси, если вы публикуете его публично (Bedrock использует UDP, поэтому ваша конфигурация брандмауэра важна). И перед развертыванием чего-либо в продакшн протестируйте плагины локально. Разработочная настройка Endstone достаточно проста, чтобы итерировать на ноутбуке.
Для хостинга публичного сервера рассмотрите использование наших бесплатных инструментов DNS, предлагаемых на Minecraft.How's бесплатном DNS-сервисе, чтобы управлять доменом сервера надёжно и дёшево. И если вы поддерживаете белый список, Minecraft Whitelist Creator упрощает генерацию и управление списком игроков.
Проверьте сообщество Discord (ссылка на GitHub-репо) перед тем, как застрянете. Разработчики отвечают быстро, и вы найдёте примеры плагинов и советы по развертыванию от людей, управляющих живыми серверами.
Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.
Комментарии
Пока нет комментариев. Станьте первым, кто поделится своим мнением!


