Skip to content

Commit 338f6c9

Browse files
committed
docs: updated README, bumped version
1 parent f295e31 commit 338f6c9

File tree

3 files changed

+46
-3
lines changed

3 files changed

+46
-3
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "aiocraft"
3-
version = "1.0.0"
3+
version = "0.3.0"
44
edition = "2021"
55

66
[lib]

README.md

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,45 @@
11
# aiocraft
2-
An asyncio-driven headless client library for block game
2+
**an asyncio-driven headless client library for block game with packet definitions**
3+
4+
aiocraft is a collection of types, definitions and utils to build minecraft clients without involving the official client and Java
5+
6+
it is built on top of [PrismarineJS/minecraft-data](https://github.com/PrismarineJS/minecraft-data), which contains definitions for all types across all versions.
7+
8+
aiocraft provides a raw implementation of a client but it isn't ready to be used, if you're looking for a convenient client library take a look at **[Treepuncher](https://git.alemi.dev/treepuncher/about)**
9+
10+
## Packets
11+
The whole Minecraft protocol from `0.30c` to `1.19.3` is compiled and available.
12+
Feature flags to only include certain protocol versions are planned.
13+
All types and packets are instantiable and serializable on all supported protocols:
14+
```
15+
from aiocraft.proto import PacketArmAnimation
16+
a_packet = PacketArmAnimation(hand=0)
17+
await client.dispatcher.write(a_packet)
18+
```
19+
20+
## Client
21+
An abstract client is provided, but it's supposed to be extended (like in **[Treepuncher](https://git.alemi.dev/treepuncher/about)**)
22+
Such client includes all game phases implemented and both a `.join()` or a `.info()` method to handle the flow.
23+
24+
## Types
25+
aiocraft defines these minecraft types:
26+
27+
* `Dimension`
28+
* `Difficulty`
29+
* `Gamemode`
30+
* `GameProfile`
31+
* `Enchantment`
32+
* `BlockPos`
33+
* `Item` (without constants)
34+
* `Texture`
35+
* `Player`
36+
37+
more types are planned but still not generated:
38+
39+
* `Entity`
40+
* `Block`
41+
* `Item` (with constants)
42+
43+
## World
44+
A chunk parser is provided with native code (Rust + PyO3). It is pretty fast but the abstract client doesn't make use of it.
45+

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ build-backend = "maturin"
44

55
[project]
66
name = "aiocraft"
7-
version = "0.1.0"
87
authors = [
98
{ email = "[email protected]", name = "alemi"},
109
{ email = "[email protected]", name = "f-tml" },
@@ -30,6 +29,7 @@ classifiers = [
3029
readme = "README.md"
3130
license = {file = "LICENSE"}
3231
keywords = ["python", "rust", "mc", "minecraft", "protocol", "async", "asyncio", "definitions"]
32+
dynamic = ["version"]
3333

3434
dependencies = [
3535
"pynbt",

0 commit comments

Comments
 (0)