Metadata-Version: 2.5
Name: pybedrock-net
Version: 0.3.6
Summary: PyBedrock Net is a Python Minecraft Bedrock networking toolkit for RakNet transport, protocol packets, authentication, world data, entities, inventory, chat, commands, events, and bot automation.
Project-URL: Homepage, https://pypi.org/project/pybedrock-net/
Project-URL: Repository, https://github.com/pybedrock-net/pybedrock-net
Project-URL: TikTok, https://www.tiktok.com/@s_xwn?_r=1&_t=ZS-994W6rldVjQ
Project-URL: YouTube, https://www.youtube.com/@szewq
Project-URL: Telegram, https://t.me/s_xwn
Author: ZENKAI
License: MIT License
        
        Copyright (c) 2026 PyBedrock Net contributors
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: bedrock,game-bot,minecraft,raknet,udp
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Games/Entertainment
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: build>=1.5.0; extra == 'dev'
Requires-Dist: pytest>=9.1.1; extra == 'dev'
Requires-Dist: twine>=7.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# PyBedrock Net

**PyBedrock Net** is a Python networking toolkit for building Minecraft
Bedrock Edition clients, bots, server tools, and protocol experiments. It is
created and maintained by **ZENKAI** with a focus on a clean API, simple
scripts, and protocol code that can grow without becoming difficult to use.

The project is organized around the complete Bedrock client journey:

- **Client and sessions** — simple client configuration, connection lifecycle,
  and reusable sessions.
- **RakNet and transport** — UDP transport, connection handling, reliability,
  fragmentation, compression, and packet flow.
- **Protocol and packets** — codecs, VarInts, readers, writers, registries,
  version resolution, handshakes, login, gameplay, movement, chat, commands,
  inventory, player, and world packets.
- **Authentication** — offline mode plus the foundations for Microsoft/Xbox
  account sessions and token management.
- **World data** — chunks, subchunks, palettes, blocks, cache, and world
  state.
- **Entities and players** — entity models, metadata, tracking, and player
  state.
- **Bots and automation** — movement, navigation, actions, and controllers.
- **Events and discovery** — event dispatching, server ping, and protocol
  detection.

The package is intentionally built in tested layers: low-level binary
primitives first, then transport and protocol packets, then high-level client
and bot APIs. This makes it useful for both a quick server script and a
larger Bedrock automation project.

## Install

```bash
pip install pybedrock-net
```

The latest development work is tracked as the next package release while the
published 0.3.3 page remains available at
<https://pypi.org/project/pybedrock-net/0.3.3/>.

## Command line

```bash
bedrock-ping play.example.com
bedrock-ping play.example.com --port 19132 --timeout 5
```

## Python

```python
from pybedrock_net import BedrockClient

client = BedrockClient("play.example.com", 19132)
status = client.ping()
print(status.description, status.players_online, "/", status.players_max)
```

The current release provides a real RakNet unconnected ping/pong flow, a
reusable UDP transport, binary codecs, server status parsing, connected
RakNet batch send/receive, Microsoft/Xbox device-code authentication, and
client/bot session foundations. A signed login-chain payload is intentionally
passed into `ClientSession.begin_login()` so applications can choose their
identity provider without the library fabricating credentials.

## Author

**ZENKAI**

- TikTok: <https://www.tiktok.com/@s_xwn?_r=1&_t=ZS-994W6rldVjQ>
- YouTube: <https://www.youtube.com/@szewq>
- Telegram: <https://t.me/s_xwn>

## Development

```bash
python -m pytest
python -m build
```

For local development, install the optional tooling with:

```bash
pip install -e ".[dev]"
```

MIT licensed.