Esempio n. 1
0
        private async Task HandleCommandAsync(SocketMessage messageParam)
        {
            if (!(messageParam is SocketUserMessage message))
            {
                return;
            }

            var argPos = 0;

            if (!message.HasStringPrefix("dos", ref argPos, StringComparison.InvariantCultureIgnoreCase) ||
                message.Author.IsBot)
            {
                return;
            }

            while (argPos < message.Content.Length && message.Content[argPos] == ' ')
            {
                argPos++;
            }

            var context = new DosCommandContext(client, message)
            {
                DosGame = gameRouterService.TryFindGameByChannel(message.Channel)
            };

            int nextArgPos;

            if ((nextArgPos = message.Content.IndexOf("&&", StringComparison.InvariantCulture)) != -1)
            {
                nextArgPos += 2;
                while (nextArgPos < message.Content.Length && message.Content[nextArgPos] == ' ')
                {
                    nextArgPos++;
                }
                context.NextCommandArgPos = nextArgPos;
            }

            await commands.ExecuteAsync(context, argPos, serviceProvider);
        }