63 Commits
Author SHA1 Message Date
selimaj-devandclaude b72279a7fd Support 0.1.3-beta and deprecate 0.1.2-beta by default
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-28 23:02:35 +02:00
selimaj-devandclaude a5a937694d Support 0.1.2-beta and deprecate 0.1.1-beta by default
0.1.2-beta changes nothing the server relies on, so 0.1.1-beta clients
still connect, with a notice to update.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-27 19:18:55 +02:00
selimaj-devandclaude 56f511d5f6 Require authentication for RPCs and rate-limit fan-out methods
- Every method except auth_challenge/auth_verify now requires a verified
  session (auth::require) and answers "Not authenticated" otherwise.
  Before, an unauthenticated connection could send emote_event
  notifications to any connected player and probe who is online with
  get_player.
- Rate-limit per connection the methods that fan out to other players:
  emote (burst 5, +1/s) and send_player (burst 10, +1/s).
- Cap emote/send_player targets at 256 and de-duplicate them.
- Default SUPPORTED_VERSIONS to 0.1.1-beta.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 19:56:44 +02:00
selimaj-devandclaude c9abf5df77 Authenticate through Mojang's session server; add version manifest
Replace `auth` (which received the player's Minecraft access token) with
the vanilla online-mode flow, so the token never reaches this server:

- auth_challenge: validate the username and return a random one-time
  server id
- the client calls Mojang's session `join` with its token and that id
- auth_verify: confirm the join with Mojang's `hasJoined` and log the
  player in

Add GET /versions returning {"supported": [...], "deprecated": [...]}
from the SUPPORTED_VERSIONS / DEPRECATED_VERSIONS env vars (defaults:
0.1.0-beta3 supported), exposed in compose.yaml.

Refs saturnclientmc/saturnclient#7

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 15:22:18 +02:00
selimaj-devandclaude b1a836fc2a Bump session-rs to 0.2.1
Picks up the fix that releases session handlers on close, so closed
connections no longer leak their Session and handler state.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 05:48:01 +02:00
selimaj-devandclaude 1f874a5cff Switch to axum and session-rs 0.2 with a health endpoint
- Serve the session WebSocket on `/` through axum
  (`Session::from_axum`) with a 1 MiB message limit
- Add `/health` (checks the database) and a `server healthcheck`
  subcommand used by the Dockerfile HEALTHCHECK
- Shut down on SIGTERM/Ctrl+C so container stops are immediate
- Move per-connection handler registration into `register_handlers`

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 05:44:15 +02:00
selimaj-devandclaude 2ea0a1228f Make server deployable with Docker Compose on Coolify
- Read bind address and database URL from BIND_ADDR / DATABASE_URL
  (defaults unchanged for local cargo run)
- Rename DockerFile to Dockerfile and rewrite it: current Rust for
  edition 2024, BuildKit cache mounts, non-root user, DB on /data
- Add compose.yaml publishing ${HOST_PORT:-8080} with a persistent
  data volume, and a .dockerignore

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 05:00:32 +02:00
selimaj-dev 89cffe3e99 Updated session version 2026-03-30 13:42:59 +02:00
selimaj-dev b2531665e2 Updated session version 2026-03-30 13:42:50 +02:00
selimaj-dev d3beaea6ae Spain flag and removed spanish empire hat (does not exist) 2026-03-25 12:04:04 +01:00
selimaj-dev cd2d74b29c Merge pull request #4 from RudideC/patch-1
wow
2026-03-21 22:27:47 +01:00
selimaj-dev 49206dca38 Added spanish empire 2026-03-21 22:26:50 +01:00
selimaj-dev 2aef3a339c Bucket end 2026-03-21 14:33:31 +01:00
selimaj-dev c834bf2909 Added cosmetics 2026-03-21 13:19:44 +01:00
selimaj-dev e7941fb2c9 Merge pull request #3 from saturnclientmc/rewritten
Rewritten
2026-02-23 10:06:49 -08:00
selimaj-dev ae7cf7bbb8 Dockerfile 2026-02-23 19:06:19 +01:00
selimaj-dev a0409c6763 Fixed 2026-02-23 18:42:35 +01:00
selimaj-dev 768bbd239b Attempting to fix sendplayer 2026-02-23 17:46:47 +01:00
selimaj-dev bdbd37307c Restructured for better modularity 2026-02-23 17:02:38 +01:00
selimaj-dev e250895386 Get user 2026-02-23 16:30:02 +01:00
selimaj-dev ffb88c86c3 Fixed bug and restructured 2026-02-23 09:09:30 +01:00
selimaj-dev a4b1ce559f Emote broadcasting 2026-02-23 08:27:36 +01:00
selimaj-dev 5cc4685588 Session management 2026-02-23 07:57:10 +01:00
selimaj-dev d42d753a87 Reqwest 2026-02-23 05:49:08 +01:00
selimaj-dev c2fefd9904 Gitignore db 2026-02-23 03:19:38 +01:00
selimaj-dev db806e76af Fixed init-db error 2026-02-23 03:14:22 +01:00
selimaj-dev 02985ce60a Working code 2026-02-23 02:49:03 +01:00
selimaj-dev cdb40f64f4 Structuring 2026-02-23 02:25:38 +01:00
selimaj-dev 7b532981a1 Structuring 2026-02-23 02:02:22 +01:00
selimaj-dev 56fb719cca Testing new session server 2026-02-23 00:36:24 +01:00
selimaj-dev 9b554aa510 Rewriting 2026-02-20 18:47:36 +01:00
selimaj-dev 5139fda1c3 Fixed duplication when buying 2025-09-03 04:44:05 +02:00
selimaj-dev 3b387033ed Black hole cloaks 2025-09-03 04:33:52 +02:00
selimaj-dev 86a66e0d60 amg petronas and ferrari with redbull 2025-08-21 00:45:51 +02:00
selimaj-dev bcfc9a3447 Bmw cloak 2025-08-19 20:12:53 +02:00
selimaj-dev 8308b9e011 Notify system 2025-08-16 16:30:16 +02:00
selimaj-dev bc298fe0fa hat buy 2025-06-23 07:01:22 +02:00
selimaj-dev 1be11822ed crimson mark 2025-06-23 06:59:44 +02:00
selimaj-dev 28b3699b3b working buy system 2025-06-22 15:58:49 -05:00
selimaj-dev 782ffb0520 working buy system 2025-06-22 15:44:22 -05:00
selimaj-dev e994ab77bc testing buy 2025-06-22 15:01:34 -05:00
selimaj-dev 417c2020d8 testing buy 2025-06-22 12:29:32 -05:00
selimaj-dev 40556c410a testing coins 2025-06-21 11:12:32 -05:00
selimaj-dev 792ee3a708 better error handling 2025-04-13 06:24:48 +02:00
selimaj-dev 53d0baa4a7 improved error handling #1 2025-04-13 06:12:26 +02:00
selimaj-dev a4992a163d functional encryption 2025-04-13 05:59:26 +02:00
selimaj-dev b5c1a3760c encryption example 2025-04-13 03:22:06 +02:00
selimaj-dev 69ad3f92de encryption example 2025-04-13 03:14:16 +02:00
selimaj-dev a48a8c2dda fix? 2025-04-02 20:28:29 +02:00
selimaj-dev 5731e193c8 online system 2025-04-02 20:08:14 +02:00
selimaj-dev 6b01a37ec6 few changes 2025-03-31 23:15:14 +02:00
selimaj-dev caae6ea0fc cloak sec and hats 2025-03-30 12:18:54 +02:00
selimaj-dev dfe7b0e1f7 testing 2025-03-28 21:26:40 +01:00
selimaj-dev 9de55aaf23 testing 2025-03-28 21:22:02 +01:00
selimaj-dev bc25766e5a hats 2025-03-28 16:43:57 +01:00
selimaj-dev bd6eda5f19 few updates 2025-03-17 16:07:08 +01:00
selimaj-dev 73653723ea few updates 2025-03-17 11:54:45 +01:00
selimaj-dev 2eaa843016 few bug fixes 2025-03-14 03:33:48 +01:00
selimaj-dev 663f395c6e good structure 2025-03-13 21:58:48 +01:00
selimaj-dev c750dbd8f1 testing 2025-03-10 22:56:58 +01:00
selimaj-dev f7fa5d5be4 rewrite 2025-03-06 22:38:53 +01:00
selimaj-dev 6b406c24d3 socket server with rust 2025-03-06 00:33:08 +01:00
selimaj-dev 553db4c8a6 v0.1 alpha 2025-03-05 21:51:05 +01:00