Lars Simon Winzer
cf09a70fb8
Add: Change CommandHandler to abstract class and add support for pre-execution checks
2026-04-08 16:49:47 +02:00
Lars Simon Winzer
a747c2de56
Add: HandlerCheck functional interface for pre-execution checks
2026-04-08 16:47:40 +02:00
Jona Walpert
f3ecbd12f5
Feat: Add username text field to main Lobby
2026-04-08 13:34:26 +02:00
Jona Walpert
5d4d2655ef
Add: Supply gameUI with client service at game startup
2026-04-08 13:33:31 +02:00
Jona Walpert
d855f2d568
Feat: add offline mode to prevent errors when trying to send requests to not connected server
2026-04-08 13:29:39 +02:00
Jona Walpert
ca782b389e
Docs: Translate Javadoc and comments to English
2026-04-08 13:26:36 +02:00
Jona Walpert
04bf7ba545
Refactor: move login function from coreClient to LobbyClient
2026-04-08 13:22:24 +02:00
Mathis Ginkel
509aa71d9f
Add: Implement Commands for Chat Protocol
2026-04-07 22:15:23 +02:00
Mathis Ginkel
d1d2fb30e8
Fix: small changes to ChatUI
2026-04-07 22:11:20 +02:00
Jona Walpert
aca61cbd52
Add: first (non functioning) modified version of lobby button controlelr with abckend conenction
2026-04-07 22:11:20 +02:00
Julian Kropff
60ed1ced91
Add: initial client structure for game and network
2026-04-07 22:11:20 +02:00
Mathis Ginkel
eda51f8ac5
Add: CoreClient and ChatClient
2026-04-07 22:11:20 +02:00
Mathis Ginkel
a9dcd79b38
Add: client chat architecture for lobby and global chat
2026-04-07 22:11:20 +02:00
Mathis Ginkel
79831b046c
Fix: small changes in ClientService
2026-04-07 22:11:20 +02:00
Mathis Ginkel
61e54f282e
Resolve Conflicts
2026-04-07 22:11:20 +02:00
Lars Simon Winzer
160ad8f2bb
Docs: Write JavaDoc for components related to LOGIN command
2026-04-07 20:12:22 +02:00
Lars Simon Winzer
d4722989d9
Add: Prevent multiple logins by checking for existing user session
2026-04-07 14:22:09 +02:00
Lars Simon Winzer
7c9cf3e00d
Style: Variable naming
2026-04-07 14:09:35 +02:00
Lars Simon Winzer
5ab29a3337
Docs: Write JavaDoc for added components
2026-04-07 14:02:44 +02:00
Lars Simon Winzer
4789273d8f
Add: Send ErrorResponse with 'NO_USER_ASSOCIATED' code when no user is associated with the session
2026-04-07 14:02:18 +02:00
Lars Simon Winzer
4c10bc7ab0
Refactor: Use removeBySessionId method instead of onDisconnect handler
2026-04-07 13:39:44 +02:00
Lars Simon Winzer
dfbaaac4f0
Merge branch 'main' into 'feat/41-add-serverside-logout-command'
2026-04-07 13:36:07 +02:00
Lars Simon Winzer
822dfe778d
Style: Apply Spotless
2026-04-07 13:31:26 +02:00
Lars Simon Winzer
ee694b8168
Docs: Write JavaDoc for newly added methods
2026-04-07 13:30:09 +02:00
Lars Simon Winzer
36f07880e5
Refactor: Use internal remove method
2026-04-07 13:28:12 +02:00
Lars Simon Winzer
22dc2c7e54
Add: Methods to remove user by UserId, SessionId and Username from SessionRegistry
2026-04-07 13:27:12 +02:00
Lars Simon Winzer
9a7b1c4dea
Add: LOGOUT command in composition root
2026-04-07 12:45:52 +02:00
Lars Simon Winzer
8376f681b1
Add: LogoutHandler for processing logout commands
2026-04-07 12:40:51 +02:00
Lars Simon Winzer
fa0ac684f1
Add: LogoutParser for parsing logout requests
2026-04-07 12:31:48 +02:00
Lars Simon Winzer
4ff28932b4
Add: LogoutRequest for handling logout commands
2026-04-07 12:30:40 +02:00
Lars Simon Winzer
708f6c5773
Add: Integrate LOGIN command in composition root
2026-04-07 12:12:33 +02:00
Lars Simon Winzer
be173f2847
Add: LoginHandler to execute and respond to LoginRequest
2026-04-07 12:10:45 +02:00
Lars Simon Winzer
7eda64b5c3
Add: LoginResponse containing assigned username and UserId
2026-04-07 11:58:43 +02:00
Lars Simon Winzer
8580a2803c
Add: LoginParser to check for required parameter and construct LoginRequest
2026-04-07 11:54:54 +02:00
Lars Simon Winzer
68a69b865e
Add: LoginRequest storing requested username for login
2026-04-07 11:51:39 +02:00
Julian Kropff
6693d57688
Merge remote-tracking branch 'origin/main' into feat/gameui
2026-04-05 13:36:22 +02:00
Julian Kropff
828e2f3131
Fix: checkstyle issues
2026-04-05 11:21:27 +02:00
Julian Kropff
bf7ac4fc34
Fix: formatting and checkstyle issues
2026-04-05 11:15:26 +02:00
Julian Kropff
d4e69d26d7
Merge remote-tracking branch 'origin/main' into feat/game-engine
2026-04-05 11:04:19 +02:00
Julian Kropff
f7dc3d1a8e
Fix: Typo in GameController unit tests for game engine
2026-04-04 23:50:58 +02:00
Julian Kropff
585a78fbcc
Add: GameController unit tests for game engine
2026-04-04 23:38:45 +02:00
Julian Kropff
769105b87d
Add: rule system for game engine
2026-04-04 23:38:19 +02:00
Julian Kropff
a20ba7cef5
Add: hand evaluation for game engine
2026-04-04 23:37:32 +02:00
Julian Kropff
fb71c6de7b
Add: game engine and flow control
2026-04-04 23:35:43 +02:00
Julian Kropff
041a5f135a
Add: player actions for game engine
2026-04-04 23:34:01 +02:00
Julian Kropff
700e8de39d
Add: core domain models for game engine
2026-04-04 23:31:34 +02:00
Jona Walpert
42b5344059
Test: Add in-process TestServer and update LobbyButtonGridManagerTest
...
Add TestServer that speaks the RawPacket/TcpTransport protocol for CREATE_LOBBY,
GET_LOBBY_STATUS and JOIN_LOBBY. Update LobbyButtonGridManagerTest to start the
TestServer and exercise a real `ClientService(host, port)`, enabling integration-style
tests of the client->transport->server roundtrip without an external server.
Refs #36
2026-04-02 22:28:12 +02:00
Jona Walpert
76e62b3cff
Feat: Accept ClientService and delegate to LobbyClient
...
Add constructor overload that accepts ClientService and constructs a LobbyClient.
Avoids implicit host/port lookup in UI code; caller controls network config.
Keeps rendering/status behavior unchanged (async updates, deterministic ordering).
2026-04-02 22:26:14 +02:00
Jona Walpert
1070b5d4b9
Chore(startup): Propagate server ip:port to UI via system properties
...
ClientApp.start parses <ip>:<port>, sets `casono.server.host` / `casono.server.port` and forwards the original launch arg to the JavaFX launcher.
Casinomainui reads JavaFX launch args and exposes the same system properties.
CasinomainuiController reads those properties and constructs `ClientService(host, port)` (no hardcoded defaults)."
2026-04-02 22:12:48 +02:00
Jona Walpert
4daf6ff4a2
Fix: Sort button IDs before iterating map for deterministic rendering
...
Copy mapping.keySet() to a List and call Collections.sort(...) before iterating.
Ensures stable button placement and reproducible image updates (render + update)
2026-04-02 22:00:18 +02:00