public async Task Leave() { using var _ = await Lock(); if (_myInfo is not null) { await PlayersService.Leave(_myInfo); _myInfo = null; OnMyInfoChanged?.Invoke(this, _myInfo); TokenStock = 0; } }
public async Task <PlayerInfo> Register(PlayerInfo myInfo) { using var _ = await Lock(); Logger.LogInformation("Register"); if (_myInfo is not null) { return(_myInfo); } Logger.LogInformation("Registering with PS"); _myInfo = await PlayersService.Register(myInfo); if (_myInfo is not null) { OnMyInfoChanged?.Invoke(this, _myInfo); TokenStock = MaxTokenStock; } return(_myInfo); }
public PlayerServiceWebClient(SignalRConnection signalR) { SignalR = signalR; SignalR.HubConnection.On <IImmutableList <PlayerState> >("PlayerlistChanged", newValue => { OnPlayerlistChanged?.Invoke(this, newValue); }); SignalR.HubConnection.On <PlayerInfo?>("MyInfoChanged", newValue => { OnMyInfoChanged?.Invoke(this, newValue); }); SignalR.HubConnection.On <int>("TokenStockChanged", newValue => { OnTokenStockChanged?.Invoke(this, newValue); }); HubConnection.On <ChangeSet>("BoardChanged", changes => { OnBoardChanged?.Invoke(this, changes); }); HubConnection.On <int>("CountdownChanged", countDown => { OnCountdownChanged?.Invoke(this, countDown); }); }