Beispiel #1
0
        /// <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);
        }