/// <summary>Tries to find a game and execute message input, returns whether it is successful.</summary> private async Task <bool> MessageGameInputAsync(SocketUserMessage message) { var game = games.GetForChannel <IMessagesGame>(message.Channel.Id); if (game == null || !game.IsInput(message.Content, message.Author.Id)) { return(false); } try { await ExecuteGameInputAsync(game, message); } catch (Exception e) when(e is OperationCanceledException || e is TimeoutException) { } catch (HttpException e) { await logger.Log(LogSeverity.Warning, LogSource.Game, $"During {game.GetType().Name} input in {game.ChannelId}: {e.Message}"); } return(true); }
/// <summary>Tries to find a game and execute message input. Returns whether it is successful.</summary> private async ValueTask <bool> MessageGameInputAsync(SocketUserMessage message) { var game = games.GetForChannel <IMessagesGame>(message.Channel.Id); if (game == null || !game.IsInput(message.Content, message.Author.Id)) { return(false); } try { await ExecuteGameInputAsync(game, message); } catch (Exception e) { log.Exception($"During input \"{message.Content}\" in {game.Channel.FullName()}", e, game.GameName); } return(true); }