internal void RemovePlayerAsync(Player player) { if (is_disposing()) { return; } remove_player(player.permanent_id); Task.Run(async() => { var attempt = new RemovePlayerAttempt { PlayerId = player.permanent_id }; try { var result = await client.RemovePlayerAsync(attempt); if (!result.IsRemoved) { Log.Warning("Tried to remove player from service but the service is not running."); } } catch (RpcException) { //Server is down. There is nothing to do } catch (Exception e) { Log.Exception(e); } }); }
public override Task <RemovePlayerResult> RemovePlayer(RemovePlayerAttempt request, ServerCallContext context) { try { var player_id = request.PlayerId; OnRemovePlayer(player_id); return(Task.FromResult(new RemovePlayerResult { IsRemoved = true })); } catch (Exception e) { Log.Exception(e); return(Task.FromResult(new RemovePlayerResult { IsRemoved = false })); } }