Exemplo n.º 1
0
        private async Task OnMessageReceivedAsync(SocketMessage s)
        {
            var msg = s as SocketUserMessage;     // Ensure the message is from a user/bot

            if (msg == null)
            {
                return;
            }
            if (msg.Author.Id == _client.CurrentUser.Id)
            {
                return;                                              // Ignore self when checking commands
            }
            if (!msg.ToString().StartsWith("~"))
            {
                return;
            }

            var context = new SocketCommandContext(_client, msg);     // Create the command context

            bool   messageChannel = true;
            string response       = "";

            var commands = msg.ToString().Substring(1).Split(' ');

            switch (commands[0].ToLower())
            {
            case "help":
                response      += Help();
                messageChannel = false;
                break;

            case "weather":
            case "w":
                WeatherCommand wc = new WeatherCommand(_rng, _logger);
                response = wc.Generate(commands);
                break;

            case "wildsurge":
            case "ws":
                WildSurgeCommand wcs = new WildSurgeCommand(_rng, _logger);
                response = wcs.Generate(commands);
                break;

            case "npc":
                NPCCommand npcc = new NPCCommand(_rng, _logger);
                response = npcc.Generate(commands);
                break;

            case "injury":
                InjuryCommand injury = new InjuryCommand(_rng, _logger);
                response = injury.Generate(commands);
                break;

            case "madness":
                MadnessCommand madness = new MadnessCommand(_rng, _logger);
                response = madness.Generate(commands);
                break;

            case "bard":
                BardCommand bard = new BardCommand(_rng, _logger);
                response = bard.Generate(commands);
                break;

            default:
                response += "Command not recognized";
                break;
            }

            if (messageChannel)
            {
                await context.Channel.SendMessageAsync(_diceParser.Parse(response));
            }
            else
            {
                await context.User.SendMessageAsync(response);
            }
            await context.Channel.SendMessageAsync("I have sent help to your PMs.");
        }