Пример #1
0
        private async Task HandleCommandAsync(SocketMessage s)
        {
            var timer = new Stopwatch();

            timer.Start();

            var msg = s as SocketUserMessage;

            if (msg == null)
            {
                return;
            }

            var    context = new SocketCommandContext(_client, msg);
            string prefix  = await context.Guild.GetPrefixAsync();

            int  argPos          = 0;
            bool hasStringPrefix = prefix == null ? false : msg.HasStringPrefix(prefix, ref argPos);

            if (hasStringPrefix || msg.HasMentionPrefix(_client.CurrentUser, ref argPos))
            {
                var result = await _service.ExecuteAsync(context, argPos);

                timer.Stop();
                if (!result.IsSuccess)
                {
                    if (result is ExecuteResult r)
                    {
                        Console.WriteLine(r.Exception.ToString());
                    }
                    else
                    {
                        await context.Channel.SendMessageAsync(result.ToString());
                    }
                }
                else
                {
                    await context.LogAsync(timer.ElapsedMilliseconds);
                }
            }
        }