Commit Graph
123 Commits
Author SHA1 Message Date
selimaj-dev 5df42e2b7c Merge pull request 'Downscale title-screen panorama faces from 4096 to 2048' (#4) from downscale-panorama into master
Reviewed-on: #4
2026-09-25 16:35:37 +00:00
selimaj-devandclaude b3fc524763 Downscale title-screen panorama faces from 4096 to 2048
The six 4096x4096 faces were 110 MB, about 90% of every mod jar
(121.7 MB per Minecraft version). That exceeded the 100 MB upload limit
in front of git.selimaj.dev, made every download huge, and cost ~400 MB
of GPU memory on the title screen. At 2048x2048 they're 33.5 MB (jar
~45 MB, ~100 MB GPU memory) and still sharp on 1440p/4K screens.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 18:30:14 +02:00
selimaj-dev 98da42992e Merge pull request 'Authenticate through Mojang's session server; check client version' (#3) from mojang-session-auth into master
Reviewed-on: #3
2026-09-25 13:24:47 +00:00
selimaj-devandclaude 2de394ebbf Authenticate through Mojang's session server; check client version
Stop sending the Minecraft access token to the Saturn server. The
connect loop now:

1. fetches GET /versions and compares this client's mod version:
   supported -> connect; deprecated -> warn, connect; neither -> warn,
   don't connect (warnings are shown once per status change)
2. requests auth_challenge with the username to get a server id
3. calls Mojang's session `join` with the access token and server id
   (the token only goes to Mojang); a refused token gives up
4. requests auth_verify, which the server confirms with `hasJoined`

Add SaturnProvider.getModVersion() and showWarning() for the version
check and its toast.

Refs saturnclientmc/saturnclient#7

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 15:22:37 +02:00
selimaj-dev 510760d590 Merge pull request 'Reconnect to the Saturn server and time out requests' (#2) from reconnect-and-timeouts into master
Reviewed-on: #2
2026-09-25 12:48:46 +00:00
selimaj-devandclaude 3b4e1ab4cb Reconnect to the Saturn server and time out requests
Move to session-java 0.2.0 (Gitea package registry) and rework
ServiceClient around a single connect loop:

- Reconnect with exponential backoff (1 s -> 60 s) when the connection
  drops, e.g. on every server redeploy; give up only when retrying cannot
  help (no Minecraft session, or the server rejects the token)
- Publish the session only after authentication succeeds, and replace
  (rather than append to) owned cosmetics and clear cached players on
  reconnect
- Time out every request after 10 s and connecting after 10 s, so a lost
  response can no longer hang the player-lookup worker forever
- Register onClientStopping once, and keep a local session reference in
  request callbacks
- Allow -Dsaturn.serverUri to point the client at a local server

Refs saturnclientmc/saturnclient#4, saturnclientmc/saturnclient#5

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 14:46:30 +02:00
selimaj-dev 8cb458c9bd Merge pull request 'Stop per-frame player lookups and make shared state thread-safe' (#1) from fix-player-lookups into master
Reviewed-on: #1
2026-09-25 12:01:26 +00:00
selimaj-devandclaude 9e3bf14ffa Stop per-frame player lookups and make shared state thread-safe
SaturnPlayer stored non-Saturn players as null, which looked the same as
"not fetched yet", so every render re-queued them and flooded the server
with get_player requests. Remember negative lookups and re-check them
after 60 s, retry failed lookups after 5 s, queue each player at most
once, skip lookups while disconnected, and replace the hand-rolled worker
thread with a single-thread executor.

getPlayer now returns null only when the server says the player isn't on
Saturn and throws on failure, so failures are retried instead of cached.

Make state shared between network callbacks and the render thread safe:
ConcurrentHashMap for players, CopyOnWriteArrayList for owned cosmetics,
volatile session/uuid and cosmetic fields, and run emote notifications
on the client thread.

Refs saturnclientmc/saturnclient#2, saturnclientmc/saturnclient#6

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-25 14:00:29 +02:00
Kr4ight 2cfd93c197 Fix inputs 2026-04-09 01:27:52 +02:00
selimaj-dev 1ddfd9d024 Improved auth 2026-04-08 10:41:24 +02:00
selimaj-dev 5e44a71054 Added implementation for identifier as effect icon 2026-04-08 08:27:13 +02:00
selimaj-dev 5dd4b17db5 Merge pull request #8 from saturnclientmc/fix-auth-timeout
Hopefully fixed auth timeout
2026-04-07 20:16:00 +02:00
Kr4ight 3379acef80 Hopefully fixed auth timeout 2026-04-07 20:14:56 +02:00
selimaj-dev f07750cdcb Fixed large logs when session is offline saturnclientmc/saturclient#66 2026-03-30 13:51:35 +02:00
selimaj-dev d73895ac7c Working freelook 2026-03-26 17:59:29 +01:00
selimaj-dev 7eb8b6a120 Freelook zoom 2026-03-26 16:26:49 +01:00
selimaj-dev 3e4985c6bc Zoom curve 2026-03-26 16:02:29 +01:00
selimaj-dev 53dfa37b64 Improved rounded rectangles 2026-03-25 23:26:19 +01:00
selimaj-dev b81a4dda98 Improved rounded rectangles #59 2026-03-25 22:18:16 +01:00
selimaj-dev fc1500abbd Improved MatrixStackRef #59 2026-03-25 18:43:35 +01:00
selimaj-dev c72af1300a Improved RenderScope #59 2026-03-25 18:23:14 +01:00
selimaj-dev 3d315fa2cc Refactor MatrixStack and RenderScope #59 2026-03-25 17:58:08 +01:00
selimaj-dev 6873f76c43 Light refactors 2026-03-24 13:09:20 +01:00
selimaj-dev dceff0e675 Added requires on features 2026-03-24 12:55:03 +01:00
selimaj-dev 3d0b95b566 Refactored spec and management 2026-03-24 12:44:29 +01:00
selimaj-dev bdab6586d4 Refactored all the common/module to feature 2026-03-24 11:52:43 +01:00
selimaj-dev 8471894248 Refactored Feature to Mod (renamed) 2026-03-24 11:50:21 +01:00
selimaj-dev 3138f7ec62 Refactored Feature to Mod 2026-03-24 11:48:04 +01:00
selimaj-dev 174c95240c Mod Preview 2026-03-24 01:38:43 +01:00
selimaj-dev 2b6194223a Sanitized cloaks and hats 2026-03-23 20:51:00 +01:00
selimaj-dev eb40ece9f6 Gif loading 2026-03-23 20:41:54 +01:00
selimaj-dev 8398c8ce7a Gif loading 2026-03-23 20:33:07 +01:00
selimaj-dev 34eb217747 Gif loading 2026-03-23 20:20:04 +01:00
Rudi ca42b00067 Merge pull request #7 from RudideC/master
spain flag
2026-03-21 23:19:18 +01:00
RudideC 4374dbcb80 Merge branch 'master' of https://github.com/RudideC/common 2026-03-21 23:17:58 +01:00
RudideC 8f09c4cf71 spain flag 2026-03-21 23:17:46 +01:00
Rudi 483be646b0 Merge pull request #6 from RudideC/master
final size??
2026-03-21 22:44:39 +01:00
RudideC 976ec154c2 final size?? 2026-03-21 22:44:10 +01:00
Rudi 1cdaf1938b Merge pull request #5 from RudideC/master
just testing sizes atp
2026-03-21 22:37:33 +01:00
RudideC 325f33a506 just testing sizes atp 2026-03-21 22:36:46 +01:00
Rudi 828a608241 Merge pull request #4 from RudideC/master
fixed, maybe?
2026-03-21 22:22:02 +01:00
RudideC 187b8c3e0f fixed, maybe? 2026-03-21 22:21:33 +01:00
selimaj-dev e9375c1927 Merge pull request #3 from RudideC/master
best cloak ever
2026-03-21 21:46:12 +01:00
RudideC 4cbc574048 best cloak ever 2026-03-21 21:44:58 +01:00
selimaj-dev f1913de95c Fixed saturn player tracking 2026-03-21 20:40:20 +01:00
selimaj-dev 9064238c3a Bucket preview and end texture 2026-03-21 14:36:59 +01:00
selimaj-dev 6d76899630 Hat previews 2026-03-21 14:19:57 +01:00
selimaj-dev ddc48eaf34 Cloak previews 2026-03-21 14:00:51 +01:00
selimaj-dev 1a1f4f07a3 bucket hat 2026-03-21 13:12:18 +01:00
selimaj-dev ff516e3feb End materials and cloaks 2026-03-21 10:57:00 +01:00