Update README

This commit is contained in:
roblabla 2015-03-06 19:54:27 +00:00
parent 28b75aab79
commit 6d2bd31242

257
README.md
View File

@ -4,19 +4,21 @@ Parse and serialize minecraft packets, plus authentication and encryption.
## Features
* Supports Minecraft version 1.7.10
* Supports Minecraft version 1.8.1
* Parses all packets and emits events with packet fields as JavaScript
objects.
* Send a packet by supplying fields as a JavaScript object.
* Client
- Authenticating and logging in
- Encryption on and encryption off
- Encryption
- Compression
- Both online and offline mode
- Respond to keep-alive packets.
- Ping a server for status
* Server
- Offline mode
- Encryption and online mode
- Online/Offline mode
- Encryption
- Compression
- Handshake
- Keep-alive checking
- Ping status
@ -98,7 +100,10 @@ server.on('login', function(client) {
`npm install minecraft-protocol`
On Windows, first follow the Windows instructions from
URSA, an optional dependency, should improve login times
for servers. However, it can be somewhat complicated to install.
Follow the instructions from
[Obvious/ursa](https://github.com/Obvious/ursa)
## Documentation
@ -228,125 +233,138 @@ correct data type.
### Test Coverage
```
packets
√ handshaking,ServerBound,0x00
√ status,ServerBound,0x00
√ status,ServerBound,0x01
√ status,ClientBound,0x00
√ status,ClientBound,0x01
√ login,ServerBound,0x00
√ login,ServerBound,0x01
√ login,ClientBound,0x00
√ login,ClientBound,0x01
√ login,ClientBound,0x02
√ play,ServerBound,0x00
√ play,ServerBound,0x01
√ play,ServerBound,0x02
√ play,ServerBound,0x03
√ play,ServerBound,0x04
√ play,ServerBound,0x05
√ play,ServerBound,0x06
√ play,ServerBound,0x07
√ play,ServerBound,0x08
√ play,ServerBound,0x09
√ play,ServerBound,0x0a
√ play,ServerBound,0x0b
√ play,ServerBound,0x0c
√ play,ServerBound,0x0d
√ play,ServerBound,0x0e
√ play,ServerBound,0x0f
√ play,ServerBound,0x10
√ play,ServerBound,0x11
√ play,ServerBound,0x12
√ play,ServerBound,0x13
√ play,ServerBound,0x14
√ play,ServerBound,0x15
√ play,ServerBound,0x16
√ play,ServerBound,0x17
√ play,ClientBound,0x00
√ play,ClientBound,0x01
√ play,ClientBound,0x02
√ play,ClientBound,0x03
√ play,ClientBound,0x04
√ play,ClientBound,0x05
√ play,ClientBound,0x06
√ play,ClientBound,0x07
√ play,ClientBound,0x08
√ play,ClientBound,0x09
√ play,ClientBound,0x0a
√ play,ClientBound,0x0b
√ play,ClientBound,0x0c
√ play,ClientBound,0x0d
√ play,ClientBound,0x0e
√ play,ClientBound,0x0f
√ play,ClientBound,0x10
√ play,ClientBound,0x11
√ play,ClientBound,0x12
√ play,ClientBound,0x13
√ play,ClientBound,0x14
√ play,ClientBound,0x15
√ play,ClientBound,0x16
√ play,ClientBound,0x17
√ play,ClientBound,0x18
√ play,ClientBound,0x19
√ play,ClientBound,0x1a
√ play,ClientBound,0x1b
√ play,ClientBound,0x1c
√ play,ClientBound,0x1d
√ play,ClientBound,0x1e
√ play,ClientBound,0x1f
√ play,ClientBound,0x20
√ play,ClientBound,0x21
√ play,ClientBound,0x22
√ play,ClientBound,0x23
√ play,ClientBound,0x24
√ play,ClientBound,0x25
√ play,ClientBound,0x26
√ play,ClientBound,0x27
√ play,ClientBound,0x28
√ play,ClientBound,0x29
√ play,ClientBound,0x2a
√ play,ClientBound,0x2b
√ play,ClientBound,0x2c
√ play,ClientBound,0x2d
√ play,ClientBound,0x2e
√ play,ClientBound,0x2f
√ play,ClientBound,0x30
√ play,ClientBound,0x31
√ play,ClientBound,0x32
√ play,ClientBound,0x33
√ play,ClientBound,0x34
√ play,ClientBound,0x35
√ play,ClientBound,0x36
√ play,ClientBound,0x37
√ play,ClientBound,0x38
√ play,ClientBound,0x39
√ play,ClientBound,0x3a
√ play,ClientBound,0x3b
√ play,ClientBound,0x3c
√ play,ClientBound,0x3d
√ play,ClientBound,0x3e
√ play,ClientBound,0x3f
√ play,ClientBound,0x40
✓ handshaking,ServerBound,0x00
✓ status,ServerBound,0x00
✓ status,ServerBound,0x01
✓ status,ClientBound,0x00
✓ status,ClientBound,0x01
✓ login,ServerBound,0x00
✓ login,ServerBound,0x01
✓ login,ClientBound,0x00
✓ login,ClientBound,0x01
✓ login,ClientBound,0x02
✓ login,ClientBound,0x03
✓ play,ServerBound,0x00
✓ play,ServerBound,0x01
✓ play,ServerBound,0x02
✓ play,ServerBound,0x03
✓ play,ServerBound,0x04
✓ play,ServerBound,0x05
✓ play,ServerBound,0x06
✓ play,ServerBound,0x07
✓ play,ServerBound,0x08
✓ play,ServerBound,0x09
✓ play,ServerBound,0x0a
✓ play,ServerBound,0x0b
✓ play,ServerBound,0x0c
✓ play,ServerBound,0x0d
✓ play,ServerBound,0x0e
✓ play,ServerBound,0x0f
✓ play,ServerBound,0x10
✓ play,ServerBound,0x11
✓ play,ServerBound,0x12
✓ play,ServerBound,0x13
✓ play,ServerBound,0x14
✓ play,ServerBound,0x15
✓ play,ServerBound,0x16
✓ play,ServerBound,0x17
✓ play,ServerBound,0x18
✓ play,ServerBound,0x19
✓ play,ClientBound,0x00
✓ play,ClientBound,0x01
✓ play,ClientBound,0x02
✓ play,ClientBound,0x03
✓ play,ClientBound,0x04
✓ play,ClientBound,0x05
✓ play,ClientBound,0x06
✓ play,ClientBound,0x07
✓ play,ClientBound,0x08
✓ play,ClientBound,0x09
✓ play,ClientBound,0x0a
✓ play,ClientBound,0x0b
✓ play,ClientBound,0x0c
✓ play,ClientBound,0x0d
✓ play,ClientBound,0x0e
✓ play,ClientBound,0x0f
✓ play,ClientBound,0x10
✓ play,ClientBound,0x11
✓ play,ClientBound,0x12
✓ play,ClientBound,0x13
✓ play,ClientBound,0x14
✓ play,ClientBound,0x15
✓ play,ClientBound,0x16
✓ play,ClientBound,0x17
✓ play,ClientBound,0x18
✓ play,ClientBound,0x19
✓ play,ClientBound,0x1a
✓ play,ClientBound,0x1b
✓ play,ClientBound,0x1c
✓ play,ClientBound,0x1d
✓ play,ClientBound,0x1e
✓ play,ClientBound,0x1f
✓ play,ClientBound,0x20
✓ play,ClientBound,0x21
✓ play,ClientBound,0x22
✓ play,ClientBound,0x23
✓ play,ClientBound,0x24
✓ play,ClientBound,0x25
✓ play,ClientBound,0x26
✓ play,ClientBound,0x27
✓ play,ClientBound,0x28
✓ play,ClientBound,0x29
✓ play,ClientBound,0x2a
✓ play,ClientBound,0x2b
✓ play,ClientBound,0x2c
✓ play,ClientBound,0x2d
✓ play,ClientBound,0x2e
✓ play,ClientBound,0x2f
✓ play,ClientBound,0x30
✓ play,ClientBound,0x31
✓ play,ClientBound,0x32
✓ play,ClientBound,0x33
✓ play,ClientBound,0x34
✓ play,ClientBound,0x35
✓ play,ClientBound,0x36
✓ play,ClientBound,0x37
✓ play,ClientBound,0x38
✓ play,ClientBound,0x39
✓ play,ClientBound,0x3a
✓ play,ClientBound,0x3b
✓ play,ClientBound,0x3c
✓ play,ClientBound,0x3d
✓ play,ClientBound,0x3e
✓ play,ClientBound,0x3f
✓ play,ClientBound,0x40
✓ play,ClientBound,0x41
✓ play,ClientBound,0x42
✓ play,ClientBound,0x43
✓ play,ClientBound,0x44
✓ play,ClientBound,0x45
✓ play,ClientBound,0x46
✓ play,ClientBound,0x47
✓ play,ClientBound,0x48
✓ play,ClientBound,0x49
client
√ pings the server (32734ms)
√ connects successfully - online mode (23367ms)
√ connects successfully - offline mode (10261ms)
√ gets kicked when no credentials supplied in online mode (18400ms)
√ does not crash for 10000ms (24780ms)
✓ pings the server (65754ms)
✓ connects successfully - online mode (STUBBED)
✓ connects successfully - offline mode (STUBBED)
✓ gets kicked when no credentials supplied in online mode (67167ms)
✓ does not crash for 10000ms (69597ms)
mc-server
√ starts listening and shuts down cleanly (73ms)
√ kicks clients that do not log in (295ms)
√ kicks clients that do not send keepalive packets (266ms)
√ responds to ping requests (168ms)
√ clients can log in and chat (158ms)
√ kicks clients when invalid credentials (680ms)
√ gives correct reason for kicking clients when shutting down (123ms)
✓ starts listening and shuts down cleanly
✓ kicks clients that do not log in (133ms)
✓ kicks clients that do not send keepalive packets (122ms)
✓ responds to ping requests
✓ clients can log in and chat (39ms)
✓ kicks clients when invalid credentials (8430ms)
✓ gives correct reason for kicking clients when shutting down (42ms)
111 tests complete (3 minutes)
123 tests complete (4 minutes)
```
# Debugging
@ -359,6 +377,11 @@ NODE_DEBUG="minecraft-protocol" node [...]
## History
### 0.13.0
* Updated protocol version to support 1.8.1 (thanks [wtfaremyinitials](https://github.com/wtfaremyinitials))
* Lots of changes in how some formats are handled.
### 0.12.3
* Fix for/in used over array, causing glitches with augmented Array prototypes (thanks [pelikhan](https://github.com/pelikhan))