Added README
parent
9acc85be48
commit
900f08c17c
|
@ -0,0 +1,46 @@
|
||||||
|
# tmd
|
||||||
|
A Minecraft protocol-compatible server written from scratch in Rust.
|
||||||
|
|
||||||
|
Supports Minecraft version 1.16.1 (protocol version 736),
|
||||||
|
including protocol compression, encryption, and authentication.
|
||||||
|
|
||||||
|
Most of the protocol infrastructure is there, so complete protocol support
|
||||||
|
is mostly a matter of defining Play state packets with my handy macros.
|
||||||
|
The protocol infrastructure is actually written bi-directionally
|
||||||
|
and in theory should work as a protocol client as well,
|
||||||
|
although that is not currently actively persued or tested.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
### Compression
|
||||||
|
The server will use protocol compression by default.
|
||||||
|
You can disable it by disabling the crate's `compression` feature,
|
||||||
|
although disabling it would probably be pointless.
|
||||||
|
|
||||||
|
The compression threshold is 64 bytes.
|
||||||
|
|
||||||
|
### Encryption
|
||||||
|
The server will also use protocol encryption by default.
|
||||||
|
You can disable it by disabling the crate's `encryption` feature.
|
||||||
|
|
||||||
|
To use encryption, you will need to a 1024-bit RSA keypair
|
||||||
|
and store it in DER format as `private/pub.der` and `private/priv.der`.
|
||||||
|
|
||||||
|
You can do that with OpenSSL using these comamnds:
|
||||||
|
|
||||||
|
```
|
||||||
|
openssl genpkey -algorithm RSA -aes256 -pkeyopt rsa_keygen_bits:1024 -outform DER -out priv.der
|
||||||
|
openssl rsa -pubout -inform DER -in priv.der -outform DER -out pub.der
|
||||||
|
```
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
The server will run in 'online mode' by default,
|
||||||
|
which means only players authenticated with Mojang can connect.
|
||||||
|
You can disable it by disabling the crate's `authentication` feature.
|
||||||
|
This feature also depends on the `encryption` feature.
|
||||||
|
|
||||||
|
**If you wish to set your server to 'offline mode', you will have to disable encryption as well.**
|
||||||
|
Although disabling authentication means that the server will allow unauthenticated clients to connect,
|
||||||
|
the official client will disconnect from an encrypted server if it fails to authenticate with Mojang.
|
||||||
|
To be able to connect to a server with authentication off and encryption on,
|
||||||
|
you would either need to be logged in (which defeats the point) or use a modified client.
|
||||||
|
To my knowedge, no such modified client currently exists.
|
Loading…
Reference in New Issue