diff --git a/README.md b/README.md index 95a6b18..ac8c16a 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ cargo build --release A list of third-party implementations, projects using `lazymc`, that you might find useful: -- Docker: [crbanman/papermc-lazymc](https://hub.docker.com/r/crbanman/papermc-lazymc) _PaperMC with lazymc in Docker_ +- Docker: [crbanman/papermc-lazymc](https://hub.docker.com/r/crbanman/papermc-lazymc) _(PaperMC with lazymc in Docker)_ ## License diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..cc25ca0 --- /dev/null +++ b/TODO.md @@ -0,0 +1,21 @@ +# TODO + +- Better organize code +- Resolve TODOs in code +- Don't drop errors, handle everywhere where needed (some were dropped while + prototyping to speed up development) + +## Nice to have + +- Console error if server already started on port, not through `lazymc` +- Kick with message if proxy-to-server connection fails for new client. +- Test configuration on start (server dir exists, command not empty) +- Also quit `lazymc` after CTRL+C signal, after server has stopped +- Dynamically increase/decrease server polling interval based on server state +- Server polling through query (`enable-query` in `server.properties`, uses GameSpy4 protocol) + +## Experiment + +- Lobby method: let players connect with an emulated empty server (like 2b2t's + queue), redirect them when the server started. +- `io_uring` on Linux for efficient proxying (see `tokio-uring`) diff --git a/src/status.rs b/src/status.rs index f3bb040..c191e23 100644 --- a/src/status.rs +++ b/src/status.rs @@ -177,7 +177,7 @@ pub async fn hold<'a>( // If hold timeout is reached, kick client if since.elapsed().as_secs() >= timeout { - warn!(target: "lazymc", "Holding client reached timeout of {}s, disconnecting", timeout); + warn!(target: "lazymc", "Held client reached timeout of {}s, disconnecting", timeout); kick(&config.messages.login_starting, &mut inbound.split().1).await?; return Ok(()); }