Skip to main content

r-python-bedrock-protocol

Высокопроизводительная асинхронная библиотека на Python для работы с сетевым протоколом Minecraft: Bedrock Edition (MCPE).

Автор: Reikiioi
Вдохновлено: bedrock-protocol от команды PrismarineJS.


⚡ Особенности

  • Асинхронность и скорость: Построено на asyncio и поддерживается uvloop для минимальных задержек и высокой пропускной способности I/O.
  • Быстрая криптография: Прямая интеграция OpenSSL (cryptography) для шифрования пакетов AES-256-CFB8 и ECDH ключей.
  • Простой и удобный API: Простая событийная модель (@client.on('text'), @server.on('connect')).
  • Транспорт RakNet: Асинхронный клиент и сервер протокола RakNet UDP.
  • Встроенный Пинг: Получение статуса сервера (MOTD, количество игроков, версия протокола).
  • MITM Прокси (Relay): Удобный инструмент для анализа и перехвата пакетов.

🚀 Установка

pip install r-python-bedrock-protocol

Или из исходного кода:

git clone https://github.com/Reikiioi/r-python-bedrock-protocol.git
cd r-python-bedrock-protocol
pip install -e .

💻 Примеры использования

1. Подключение Клиента (Echo-бот)

import asyncio
from r_python_bedrock_protocol import create_client

async def main():
    client = create_client(
        host="127.0.0.1",
        port=19132,
        username="Steve",
        offline=True
    )

    @client.on("connect")
    def on_connect():
        print("Подключено к серверу!")

    @client.on("join")
    def on_join():
        print("Успешный вход в мир!")

    @client.on("text")
    def on_text(packet):
        print(f"{packet.get('source_name')}: {packet.get('message')}")

    await client.connect()

if __name__ == "__main__":
    asyncio.run(main())

2. Запрос статуса сервера (Ping)

import asyncio
from r_python_bedrock_protocol import ping

async def main():
    info = await ping("play.cubecraft.net", 19132)
    print(f"Сервер: {info.motd}")
    print(f"Версия: {info.version} (Протокол {info.protocol_version})")
    print(f"Игроки: {info.players_online}/{info.players_max}")

if __name__ == "__main__":
    asyncio.run(main())

3. Запуск Сервера

import asyncio
from r_python_bedrock_protocol import create_server

async def main():
    server = create_server(host="0.0.0.0", port=19132, motd="Мой Bedrock Сервер")

    @server.on("connect")
    def on_connect(client):
        print(f"Новое подключение: {client.address}")

    await server.listen()
    print("Сервер запущен на 0.0.0.0:19132")
    await asyncio.Event().wait()

if __name__ == "__main__":
    asyncio.run(main())

📜 Лицензия

Распространяется под лицензией MIT.
Copyright (c) 2026 Reikiioi.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

r_python_bedrock_protocol-0.3.0.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

r_python_bedrock_protocol-0.3.0-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file r_python_bedrock_protocol-0.3.0.tar.gz.

File metadata

File hashes

Hashes for r_python_bedrock_protocol-0.3.0.tar.gz
Algorithm Hash digest
SHA256 86e75a728829aa253d3c1f2a304f84161d38e1d6eda10c5dfb75a12ff2fdc959
MD5 f02677798cd34935d6fe1a7eec05f0db
BLAKE2b-256 d90a003c997ae25deadf3077e16d1338ba8b436576d1aa52b1eb470b4976be7d

See more details on using hashes here.

File details

Details for the file r_python_bedrock_protocol-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for r_python_bedrock_protocol-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5223c50dc2d623429735c017522c141966a1e4c1cbce04d32ecf2112e38e836f
MD5 f230c7fe42b009a4251d95f66a57e6f6
BLAKE2b-256 a88d47c2f1a3a3bbacb3da3fe6699563c5c7894b6cbaf4c2463eb37fddcffa74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page