|
1 | | -this update adds a public developer API for third-party plugins, hardens auth security, |
2 | | -and fixes a bunch of stability issues across the board. |
| 1 | +This update includes a small fix for an issue where the version was saved incorrectly, causing the launcher to always ask for an update. |
3 | 2 |
|
4 | | -so whats new: |
5 | | - |
6 | | -**developer API** |
7 | | - |
8 | | -- new `api` module for third-party plugin integration, available on maven central |
9 | | -- typed message channels via `CommandBridgeAPI.channel(Class)` with send, request, broadcast, and listen |
10 | | -- delivery conditions on senders: `requirePlayer(UUID)` to gate on player presence, `whenOnline(UUID)` to queue until the player connects |
11 | | -- server lifecycle events via `onServerConnected` and `onServerDisconnected` (proxy only) |
12 | | -- connection state tracking via `onConnectionStateChanged` (all platforms) |
13 | | -- player locator service for resolving which server a player is on (proxy only) |
14 | | -- `CommandBridgeProvider.get()` and `CommandBridgeProvider.get(Class)` to obtain the API instance |
15 | | -- proxy-only methods return `Optional<Subscription>` instead of raw `Subscription`, returning `Optional.empty()` on backends |
16 | | -- full JDK-style JavaDocs across all API types |
17 | | - |
18 | | -**security** |
19 | | - |
20 | | -- hardened auth flow with constant-time HMAC comparison to prevent timing attacks |
21 | | -- fixed `AUTH_OK` race condition where messages could be sent before the client processed auth success |
22 | | -- added reconnect on failed server proof verification |
23 | | -- operator execution no longer grants wildcard permissions, only explicit ones |
24 | | - |
25 | | -**fixes** |
26 | | - |
27 | | -- fixed cooldown being applied before dispatch instead of after |
28 | | -- fixed MiniMessage tags in error messages not being escaped |
29 | | -- fixed script reload not being thread-safe |
30 | | -- fixed player join events firing for already-tracked players |
31 | | -- fixed polling not being reset on shutdown |
32 | | -- fixed auth check missing on config reload |
33 | | -- fixed `Log` varargs handling for single-argument messages |
34 | | -- fixed config name not being passed to `ConfigManager` in the velocity backend adapter |
35 | | -- fixed operator permission resolution being inconsistent across platform executors |
36 | | -- left-aligned all chat UI output and removed pixel-width centering |
37 | | -- various null guard and stability improvements across dispatch, registration, and player tracking |
38 | | - |
39 | | -**internals** |
40 | | - |
41 | | -- modernized codebase to java 21 idioms |
42 | | -- rebuilt test suite from scratch with 136 tests across core, velocity, and backends |
43 | | -- added CI test workflow and testing documentation |
44 | | - |
45 | | -breaking changes: |
46 | | -- `RunAs` and `ConnectionState` moved to the `api` package, internal duplicates removed |
47 | | - |
48 | | -latest commit: d7f43a1 |
| 3 | +latest commit: 9563e3c |
0 commit comments