Ejemplo n.º 1
0
        internal async Task <Dictionary <string, BadgeDefinition> > GetBadges()
        {
            Dictionary <string, BadgeDefinition> badges = new Dictionary <string, BadgeDefinition>();

            using (IAsyncDbClient client = ConnectionProvider.GetConnection())
            {
                using (IQuery query = client.CreateQuery("SELECT * FROM `badge_definitions`;"))
                {
                    using (var reader = await query.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            string code = reader.GetData <string>("code").ToUpper();

                            if (!badges.ContainsKey(code))
                            {
                                badges.Add(code, new BadgeDefinition(code, reader.GetData <string>("required_right")));
                            }
                        }
                    }
                }
            }

            return(badges);
        }
Ejemplo n.º 2
0
 internal async Task ProgressAchievement(int userId, string group, int newLevel, int newProgress)
 {
     using (IAsyncDbClient client = ConnectionProvider.GetConnection())
     {
         using (IQuery query = client.CreateQuery("REPLACE INTO `user_achievements` VALUES ('@0', @1, '@2', '@3')", userId, group, newLevel, newProgress))
         {
             await query.ExecuteNonQueryAsync();
         }
     }
 }
Ejemplo n.º 3
0
        internal async Task <UserCache> GetUserCache(int userId)
        {
            UserCache userCache = null;

            using (IAsyncDbClient client = ConnectionProvider.GetConnection())
            {
                using (IQuery query = client.CreateQuery("SELECT `username`, `motto`, `look` FROM users WHERE id = @0 LIMIT 1", userId))
                {
                    using (var reader = await query.ExecuteReaderAsync())
                        while (await reader.ReadAsync())
                        {
                            userCache = new UserCache(
                                userId,
                                reader.GetData <string>("username"),
                                reader.GetData <string>("motto"),
                                reader.GetData <string>("look"));
                        }
                }
            }

            return(userCache);
        }
Ejemplo n.º 4
0
        public async Task <Dictionary <string, Achievement> > GetAchievementLevelsAsync()
        {
            Dictionary <string, Achievement> achievements = new Dictionary <string, Achievement>();

            using (IAsyncDbClient client = ConnectionProvider.GetConnection())
            {
                using (IQuery query = client.CreateQuery("SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `achievements`"))
                {
                    using (var reader = await query.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                            uint   id             = reader.GetData <uint>("id");
                            string category       = reader.GetData <string>("category");
                            string groupName      = reader.GetData <string>("group_name");
                            int    rewardPixels   = reader.GetData <int>("reward_pixels");
                            int    rewardPoints   = reader.GetData <int>("reward_points");
                            int    progressNeeded = reader.GetData <int>("progress_needed");

                            AchievementLevel level = new AchievementLevel(reader.GetData <int>("level"), rewardPixels, rewardPoints, progressNeeded);

                            if (!achievements.ContainsKey(groupName))
                            {
                                Achievement achievement = new Achievement((int)id, groupName, category, reader.GetData <int>("game_id"));
                                achievement.AddLevel(level);
                                achievements.Add(groupName, achievement);
                            }
                            else
                            {
                                achievements[groupName].AddLevel(level);
                            }
                        }
                    }
                }
            }

            return(achievements);
        }
Ejemplo n.º 5
0
        internal async Task <List <BotResponse> > GetResponses()
        {
            List <BotResponse> responses = new List <BotResponse>();

            using (IAsyncDbClient dbclient = ConnectionProvider.GetConnection())
            {
                using (IQuery query = dbclient.CreateQuery("SELECT `bot_ai`,`chat_keywords`,`response_text`,`response_mode`,`response_beverage` FROM `bots_responses`"))
                {
                    using (var reader = await query.ExecuteReaderAsync())
                        while (await reader.ReadAsync())
                        {
                            responses.Add(new BotResponse(
                                              reader.GetData <string>("bot_ai"),
                                              reader.GetData <string>("chat_keywords"),
                                              reader.GetData <string>("response_text"),
                                              reader.GetData <string>("response_mode"),
                                              reader.GetData <string>("response_beverage")));
                        }
                }
            }

            return(responses);
        }