mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
Update README.md
This commit is contained in:
parent
0c0fec0065
commit
e9e60eca80
1 changed files with 13 additions and 10 deletions
|
@ -12,13 +12,16 @@ Unfortunately, using azalea-protocol requires Rust nightly because [specializati
|
|||
|
||||
Adding new packets is usually pretty easy, but you'll want to have Minecraft's decompiled source code which you can obtain with tools such as [DecompilerMC](https://github.com/hube12/DecompilerMC).
|
||||
|
||||
1. Find the packet in Minecraft's source code. Minecraft's packets are in the `net/minecraft/network/protocol/<state>` directory. The state for your packet is usually `game`.
|
||||
2. Add a new file in the [`packets/<state>`](./src/packets/game) directory with the snake_cased version of the name Minecraft uses.
|
||||
3. Copy the code from a similar packet and change the struct name.
|
||||
4. Add the fields from Minecraft's source code from either the read or write methods.
|
||||
If it's a `varint`, use `#[var] pub <name>: i32` (or u32 if it makes more sense).
|
||||
If it's a `varlong`, use `#[var] pub <name>: i64` (or u64).
|
||||
If it's a byte, use i8 or u8.
|
||||
Etc.. You can look at [wiki.vg](https://wiki.vg/Protocol) if you're not sure about how a packet is structured, but be aware that wiki.vg uses different names for most things.
|
||||
5. Add the packet to the `mod.rs` file in the same directory. You will have to look at [wiki.vg](https://wiki.vg/Protocol) to determine the packet id here.
|
||||
6. That's it! Format your code, submit a pull request, and wait for it to be reviewed.
|
||||
1. First, you'll need the packet id. You can get this from azalea-protocol error messages, or from wiki.vg.
|
||||
2. Run `python codegen/newpacket.py [packet id] [clientbound or serverbound] \[game/handshake/login/status\]`\
|
||||
3. Go to the directory where it told you the packet was generated. If there's no comments, you're done. Otherwise, keep going.
|
||||
4. Find the packet in Minecraft's source code. Minecraft's packets are in the `net/minecraft/network/protocol/<state>` directory. The state for your packet is usually `game`.
|
||||
5. Add the fields from Minecraft's source code from either the read or write methods. You can look at [wiki.vg](https://wiki.vg/Protocol) if you're not sure about how a packet is structured, but be aware that wiki.vg uses different names for most things.
|
||||
6. Format the code, submit a pull request, and wait for it to be reviewed.
|
||||
|
||||
### Implementing packets
|
||||
|
||||
You can manually implement reading and writing functionality for a packet by implementing McBufReadable and McBufWritable, but you can also have this automatically generated for a struct or enum by deriving McBuf.
|
||||
|
||||
Look at other packets as an example.
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue