docs: updated README, bumped version
This commit is contained in:
parent
f295e31cce
commit
338f6c91cc
3 changed files with 46 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "aiocraft"
|
name = "aiocraft"
|
||||||
version = "1.0.0"
|
version = "0.3.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|
45
README.md
45
README.md
|
@ -1,2 +1,45 @@
|
||||||
# aiocraft
|
# aiocraft
|
||||||
An asyncio-driven headless client library for block game
|
**an asyncio-driven headless client library for block game with packet definitions**
|
||||||
|
|
||||||
|
aiocraft is a collection of types, definitions and utils to build minecraft clients without involving the official client and Java
|
||||||
|
|
||||||
|
it is built on top of [PrismarineJS/minecraft-data](https://github.com/PrismarineJS/minecraft-data), which contains definitions for all types across all versions.
|
||||||
|
|
||||||
|
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)**
|
||||||
|
|
||||||
|
## Packets
|
||||||
|
The whole Minecraft protocol from `0.30c` to `1.19.3` is compiled and available.
|
||||||
|
Feature flags to only include certain protocol versions are planned.
|
||||||
|
All types and packets are instantiable and serializable on all supported protocols:
|
||||||
|
```
|
||||||
|
from aiocraft.proto import PacketArmAnimation
|
||||||
|
a_packet = PacketArmAnimation(hand=0)
|
||||||
|
await client.dispatcher.write(a_packet)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Client
|
||||||
|
An abstract client is provided, but it's supposed to be extended (like in **[Treepuncher](https://git.alemi.dev/treepuncher/about)**)
|
||||||
|
Such client includes all game phases implemented and both a `.join()` or a `.info()` method to handle the flow.
|
||||||
|
|
||||||
|
## Types
|
||||||
|
aiocraft defines these minecraft types:
|
||||||
|
|
||||||
|
* `Dimension`
|
||||||
|
* `Difficulty`
|
||||||
|
* `Gamemode`
|
||||||
|
* `GameProfile`
|
||||||
|
* `Enchantment`
|
||||||
|
* `BlockPos`
|
||||||
|
* `Item` (without constants)
|
||||||
|
* `Texture`
|
||||||
|
* `Player`
|
||||||
|
|
||||||
|
more types are planned but still not generated:
|
||||||
|
|
||||||
|
* `Entity`
|
||||||
|
* `Block`
|
||||||
|
* `Item` (with constants)
|
||||||
|
|
||||||
|
## World
|
||||||
|
A chunk parser is provided with native code (Rust + PyO3). It is pretty fast but the abstract client doesn't make use of it.
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ build-backend = "maturin"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "aiocraft"
|
name = "aiocraft"
|
||||||
version = "0.1.0"
|
|
||||||
authors = [
|
authors = [
|
||||||
{ email = "me@alemi.dev", name = "alemi"},
|
{ email = "me@alemi.dev", name = "alemi"},
|
||||||
{ email = "francescotolomei@mail.com", name = "f-tml" },
|
{ email = "francescotolomei@mail.com", name = "f-tml" },
|
||||||
|
@ -30,6 +29,7 @@ classifiers = [
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = {file = "LICENSE"}
|
license = {file = "LICENSE"}
|
||||||
keywords = ["python", "rust", "mc", "minecraft", "protocol", "async", "asyncio", "definitions"]
|
keywords = ["python", "rust", "mc", "minecraft", "protocol", "async", "asyncio", "definitions"]
|
||||||
|
dynamic = ["version"]
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pynbt",
|
"pynbt",
|
||||||
|
|
Loading…
Reference in a new issue