using API.Models.DataClasses; using API.Models.Game; using API.Services.GameManager; using Microsoft.AspNetCore.SignalR; namespace API.Controllers; public class GameHubSocket(IGameManager gameManager) : Hub { private readonly IGameManager _gameManager = gameManager; public async Task CreateGame(string playerName, Coordinates gFs) { var player = new Player(playerName, Context.ConnectionId); var result = _gameManager.CreateGame(gFs, player); await Groups.AddToGroupAsync(Context.ConnectionId, result.Item1); await Clients.Caller.SendAsync("GameCreated", new { GameId = result.Item1, GameCode = result.Item2, }); } public async Task JoinGame(int gameCode, string playerName) { var player = new Player(playerName, Context.ConnectionId); var result = await _gameManager.JoinGame(player, gameCode); if (result == null) { await Clients.Caller.SendAsync("Error", "Spiel nicht gefunden oder voll."); return; } await Groups.AddToGroupAsync(Context.ConnectionId, gameCode.ToString()); await Clients.Caller.SendAsync("GameCreated", new { GameId = result, GameCode = gameCode, }); } public async Task Place(string gameId, int index) { } }