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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file r_python_bedrock_protocol-0.3.0.tar.gz.
File metadata
- Download URL: r_python_bedrock_protocol-0.3.0.tar.gz
- Upload date:
- Size: 30.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86e75a728829aa253d3c1f2a304f84161d38e1d6eda10c5dfb75a12ff2fdc959
|
|
| MD5 |
f02677798cd34935d6fe1a7eec05f0db
|
|
| BLAKE2b-256 |
d90a003c997ae25deadf3077e16d1338ba8b436576d1aa52b1eb470b4976be7d
|
File details
Details for the file r_python_bedrock_protocol-0.3.0-py3-none-any.whl.
File metadata
- Download URL: r_python_bedrock_protocol-0.3.0-py3-none-any.whl
- Upload date:
- Size: 32.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5223c50dc2d623429735c017522c141966a1e4c1cbce04d32ecf2112e38e836f
|
|
| MD5 |
f230c7fe42b009a4251d95f66a57e6f6
|
|
| BLAKE2b-256 |
a88d47c2f1a3a3bbacb3da3fe6699563c5c7894b6cbaf4c2463eb37fddcffa74
|