Minecraft.How
Загрузка...
Перейти к содержимому
Endstone: Теперь мощь серверов Paper для Bedrock

Endstone: Теперь мощь серверов Paper для Bedrock

Alex Maftei
Alex Maftei
@ice
Обновлено
95 просмотров
TL;DR:Endstone привносит инфраструктуру плагинов в серверы Minecraft Bedrock, позволяя писать плагины на Python и C++ с доступом к более 60 событиям, командам и системам разрешений - при полной совместимости с оригинальным Bedrock.
GitHub · Проект сообщества Minecraft

endstone (EndstoneMC/endstone)

Высокопроизводительный сервер Minecraft Bedrock с родной API для плагинов на C++ и Python

Поддержать на GitHub ⭐
⭐ 623 звёзды💻 C++📜 Apache-2.0

Хотели ли вы когда-нибудь запустить сервер 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 поддерживает это тоже.


Начало работы

Установка требует трёх команд:

bash
pip install endstone
endstone

Всё. Менеджер пакетов Python скачивает релизный бинарник (в зависимости от вашей платформы), а запуск `endstone` стартует сервер в текущей директории. Он сгенерирует серверную конфигурацию и папку `plugins`.

Для вашего первого плагина создайте файл Python в этой папке. Вот минимальный пример:

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-репо) перед тем, как застрянете. Разработчики отвечают быстро, и вы найдёте примеры плагинов и советы по развертыванию от людей, управляющих живыми серверами.

Об авторе
Alex Maftei
Alex MafteiВедущий автор

Lead Writer at Minecraft.How, software developer, and lifelong gamer. I combine hands-on development experience with a passion for gaming and technology. I enjoy exploring new games, experimenting with software, testing mods and tools, and building practical solutions. My writing focuses on sharing real-world experience, technical knowledge, and useful insights with the gaming and developer communities.

Поделитесь с друзьями!

Have a Question or Tip about this Guide?Community Q&A

Ask a question or help other players below. Join the discussion and share your Minecraft tips!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!