Ejemplo n.º 1
0
        public void Process(SlashCommandPayload command)
        {
            var character = new NowCharacter();
            var reply     = new SlashCommandReply();
            var action    = GetAction(command.text);

            switch (action)
            {
            case NowActions.Checkin:
                reply.text          = GenerateCheckin();
                reply.response_type = "in_channel";
                break;

            case NowActions.CreateCharacter:
                character           = GetCharacter(command.team_domain, command.user_name);
                reply.text          = String.Format("Behold {0}, a powerful {1} (Level {2}).\nStr: {3}, Dex: {4}, Con: {5}, Int: {6}, Wis: {7}, Cha: {8}", character.Name, character.Class, character.Level, character.Strength, character.Dexterity, character.Constitution, character.Intelligence, character.Wisdom, character.Charisma);
                reply.response_type = "in_channel";
                break;

            case NowActions.RerollCharacter:
                character           = RerollCharacter(command.team_domain, command.user_name);
                reply.text          = String.Format("{0} has rerolled {1} and returned to level {2}.\nStr: {3}, Dex: {4}, Con: {5}, Int: {6}, Wis: {7}, Cha: {8}", character.Name, character.Class, character.Level, character.Strength, character.Dexterity, character.Constitution, character.Intelligence, character.Wisdom, character.Charisma);
                reply.response_type = "in_channel";
                break;

            case NowActions.Help:
                reply.text          = "/rpg..... Create or show off your character\n/rpg reroll..... Reset your character, class, stats and level\n/rpg leaderboard..... List top 10 characters on your server\n/rpg fight {name}..... Fight your character against {name}\n/rpg help..... Show this list of commands";
                reply.response_type = "ephemeral";
                break;

            case NowActions.Leaderboard:
                reply.text          = GetLeaderboard(command.team_domain);
                reply.response_type = "ephemeral";
                break;

            case NowActions.Fight:
                character           = GetCharacter(command.team_domain, command.user_name);
                reply.text          = Fight(command.team_domain, character.Name, command.text);
                reply.response_type = reply.text == "Opponent not found." ? "ephemeral" : "in_channel";
                break;

            case NowActions.Error:
            default:
                reply.text          = "Error in command string.";
                reply.response_type = "ephemeral";
                break;
            }

            SendPost(reply, command.response_url);
        }
Ejemplo n.º 2
0
 private async void SendPost(SlashCommandReply reply, string url)
 {
     var json    = JsonConvert.SerializeObject(reply);
     var content = new StringContent(json, UnicodeEncoding.UTF8, "application/json");
     await _client.PostAsync(url, content);
 }