public static function update()
 {
     set_time_limit(0);
     ignore_user_abort(1);
     $options = XenForo_Application::get('options');
     $gameStats = $options->steamGameStats;
     $forceUpdate = $options->steamGameStatsForce;
     if ($gameStats > 0) {
         $db = XenForo_Application::get('db');
         $sHelper = new Steam_Helper_Steam();
         $results = $db->fetchAll("SELECT u.user_id, p.provider_key FROM xf_user u, xf_user_external_auth p \n                                    WHERE u.user_id = p.user_id \n                                    AND p.provider = 'steam' \n                                    AND p.provider_key > 0 \n                                    AND u.is_banned \n                                    NOT IN (1)");
         foreach ($results as $row) {
             /*
              * Gets all game info
              *
              * @see Steam_Helper_Steam
              */
             $games = $sHelper->getUserGames($row['provider_key']);
             foreach ($games as $id => $data) {
                 // game info
                 if ($forceUpdate > 0) {
                     $gameInfoQuery = "INSERT IGNORE INTO xf_steam_games(game_id, game_name, game_logo, game_link) \n                                    VALUES({$id}, '{$data['name']}', '{$data['logo']}', '{$data['link']}')\n                                    ON DUPLICATE KEY UPDATE game_logo = '{$data['logo']}';";
                 } else {
                     $gameInfoQuery = "INSERT IGNORE INTO xf_steam_games(game_id, game_name, game_logo, game_link) \n                                    VALUES({$id}, '{$data['name']}', '{$data['logo']}', '{$data['link']}');";
                 }
                 $db->query($gameInfoQuery);
                 // update
                 $r = $db->fetchRow("SELECT * FROM xf_user_steam_games \n                                        WHERE user_id = {$row['user_id']} \n                                        AND game_id = {$id};");
                 if ($r == NULL) {
                     // Insert
                     $db->insert("xf_user_steam_games", array('user_id' => $row['user_id'], 'game_id' => $id, 'game_hours' => $data['hours'], 'game_hours_recent' => $data['hours_recent']));
                 } else {
                     // Update
                     $db->query("UPDATE xf_user_steam_games \n                                    SET game_hours = {$data['hours']}, game_hours_recent = {$data['hours_recent']} \n                                    WHERE user_id = {$row['user_id']} AND game_id = {$id};");
                 }
             }
         }
     }
 }
 private function updateUserStats($userId, $steamId)
 {
     $options = XenForo_Application::get('options');
     $gamestatsreg = $options->steamGameStatsReg;
     if ($gamestatsreg > 0) {
         $db = XenForo_Application::get('db');
         $sHelper = new Steam_Helper_Steam();
         $games = $sHelper->getUserGames($steamId);
         foreach ($games as $id => $data) {
             // game info
             $db->query("INSERT IGNORE INTO xf_steam_games(game_id, game_name, game_logo, game_link) \n                            VALUES({$id}, '{$data['name']}', '{$data['logo']}', '{$data['link']}');");
             // update
             $r = $db->fetchRow("SELECT * FROM xf_user_steam_games WHERE user_id = {$userId} AND game_id = {$id};");
             if ($r == NULL) {
                 // Insert
                 $db->insert("xf_user_steam_games", array('user_id' => $userId, 'game_id' => $id, 'game_hours' => $data['hours'], 'game_hours_recent' => $data['hours_recent']));
             } else {
                 // Update
                 $db->query("UPDATE xf_user_steam_games SET game_hours = {$data['hours']}, game_hours_recent = {$data['hours_recent']} \n                                WHERE user_id = {$userId} AND game_id = {$id};");
             }
         }
     }
 }