From a3738cd5e6b98661d23d6bd1a4fa29915fee1061 Mon Sep 17 00:00:00 2001 From: ZKWolf Date: Mon, 5 Feb 2024 19:25:05 +0100 Subject: [PATCH] Fixed InitOrGetGroup to 99% --- src/endpoints/user_handeling.py | 172 ++++++++++++++++++++++++++++++-- 1 file changed, 164 insertions(+), 8 deletions(-) diff --git a/src/endpoints/user_handeling.py b/src/endpoints/user_handeling.py index 316a6ea..0071f91 100644 --- a/src/endpoints/user_handeling.py +++ b/src/endpoints/user_handeling.py @@ -119,7 +119,14 @@ def moderation_check_username(): try: request_var = request.get_json() userid = sanitize_input(request_var["userId"]) + username = sanitize_input(request_var["username"]) steamid, token = mongo.get_user_info(userId=userid) + # temp test + return jsonify({ + "PlayerName": username, + "UserId": steamid + }) + # return jsonify({"Id": userid, "Token": token, "Provider": {"ProviderName": request_var["username"], "ProviderId": steamid}}) # CLIENT:{"userId": "ID-ID-ID-ID-SEE-AUTH", "username": "Name-Name-Name"} @@ -392,6 +399,9 @@ def wallet_currencies(): "CurrencyGroup": "HardCurrencyGroup", "LastRefillTimeStamp": "1684862187"}, {"Currency": "PROGRESSION_CURRENCY", "Balance": 10000, "CurrencyGroup": "HardCurrencyGroup", "LastRefillTimeStamp": "1684862187"}]}) + except TypeError: + return jsonify({"status": "error"}) + except TimeoutError: return jsonify({"status": "error"}) except Exception as e: @@ -608,7 +618,7 @@ def extension_progression_init_or_get_groups(): return jsonify({ "ProgressionGroups":[ { - "ObjectId":"43CD7EEC-4AB9D6FA-B8EB9387-1964FC60", + "ObjectId":"EGMGroupTypeEnum::RunnerProgression", "Version":1, "SchemaVersion":1.1, "Data":{ @@ -620,7 +630,7 @@ def extension_progression_init_or_get_groups(): } }, { - "ObjectId":"C50FFFBF-46866131-82F45890-651797CE", + "ObjectId":"EGMGroupTypeEnum::HunterProgression", "Version":1, "SchemaVersion":1.1, "Data":{ @@ -630,14 +640,26 @@ def extension_progression_init_or_get_groups(): "ExperienceToReach":30 } } - } + }, + { + "ObjectId": "EGMGroupTypeEnum::PlayerProgression", + "Version": 1, + "SchemaVersion": 1.1, + "Data": { + "Experience": { + "Level": 1, + "CurrentExperience": 12, + "ExperienceToReach": 30 + } + } + } ], "MetadataGroups":[ { - "ObjectId": "43CD7EEC-4AB9D6FA-B8EB9387-1964FC60", + "ObjectId": "EGMGroupTypeEnum::RunnerMetadata", "Version": 1, "SchemaVersion": 1.1, - "Data": {"CharacterId": {"TagName": "Runner.Smoke"}, + "Data": {"CharacterId": {"TagName": "Runner.Ink"}, "Equipment": [], "EquippedPerks": ["1E08AFFA-485E92BA-FF2C1BB8-5CEFB81E"], "EquippedPowers": [], @@ -646,17 +668,24 @@ def extension_progression_init_or_get_groups(): } }, { - "ObjectId": "C50FFFBF-46866131-82F45890-651797CE", + "ObjectId": "EGMGroupTypeEnum::HunterMetadata", "Version": 1, "SchemaVersion": 1.1, - "Data": {"CharacterId": {"TagName": "Hunter.Stalker"}, + "Data": {"CharacterId": {"TagName": "Hunter.Inquisitor"}, "Equipment": [], "EquippedPerks": ["791F12E0-47DA9E26-E246E385-9C3F587E"], "EquippedPowers": ["08DC38B6-470A7A5B-0BA025B9-6279DAA8"], "EquippedWeapons": ["307A0B13-417737DE-D675309F-8B978AB8"], "EquippedBonuses": [] } - } + }, + { + "ObjectId": "EGMGroupTypeEnum::PlayerMetadata", + "Version": 1, + "SchemaVersion": 1.1, + "Data": { + } + } ]}) except TimeoutError: @@ -665,6 +694,111 @@ def extension_progression_init_or_get_groups(): logger.graylog_logger(level="error", handler="logging_initOrGetGroups", message=e) +@app.route("/api/v1/extensions/progression/updateMetadataGroup", methods=["POST"]) +def update_metadata_group(): + check_for_game_client("strict") + session_cookie = sanitize_input(request.cookies.get("bhvrSession")) + userid = session_manager.get_user_id(session_cookie) + try: + data = request.get_json() + object_id = data["data"]["objectId"] + version = data["data"]["version"] + metadata = data["data"]["metadata"] + last_played_faction = metadata["lastPlayedFaction"] + last_played_runner_id = metadata["lastPlayedRunnerId"] + last_played_hunter_id = metadata["lastPlayedHunterId"] + should_play_without_contextual_help = metadata["shouldPlayWithoutContextualHelp"] + has_played_death_garden_1 = metadata["hasPlayedDeathGarden1"] + reason = data["data"]["reason"] + + logger.graylog_logger(level="info", handler="logging_updateMetadataGroup", message=data) + # return jsonify({"status": "success"}) + return jsonify({ + "ProgressionGroups":[ + { + "ObjectId":"EGMGroupTypeEnum::RunnerProgression", + "Version":1, + "SchemaVersion":1.1, + "Data":{ + "Experience":{ + "Level":1, + "CurrentExperience":2, + "ExperienceToReach":30 + } + } + }, + { + "ObjectId":"EGMGroupTypeEnum::HunterProgression", + "Version":1, + "SchemaVersion":1.1, + "Data":{ + "Experience":{ + "Level":1, + "CurrentExperience":12, + "ExperienceToReach":30 + } + } + }, + { + "ObjectId": "EGMGroupTypeEnum::PlayerProgression", + "Version": 1, + "SchemaVersion": 1.1, + "Data": { + "Experience": { + "Level": 1, + "CurrentExperience": 12, + "ExperienceToReach": 30 + } + } + } + ], + "MetadataGroups":[ + { + "ObjectId": "EGMGroupTypeEnum::RunnerMetadata", + "Version": 1, + "SchemaVersion": 1.1, + "Data": {"CharacterId": {"TagName": last_played_runner_id}, + "Equipment": [], + "EquippedPerks": ["1E08AFFA-485E92BA-FF2C1BB8-5CEFB81E"], + "EquippedPowers": [], + "EquippedWeapons": ["C8AF3D53-4973F82F-ADBB40BD-A96F9DCD"], + "EquippedBonuses": [] + } + }, + { + "ObjectId": "EGMGroupTypeEnum::HunterMetadata", + "Version": 1, + "SchemaVersion": 1.1, + "Data": {"CharacterId": {"TagName": last_played_hunter_id}, + "Equipment": [], + "EquippedPerks": ["791F12E0-47DA9E26-E246E385-9C3F587E"], + "EquippedPowers": ["08DC38B6-470A7A5B-0BA025B9-6279DAA8"], + "EquippedWeapons": ["307A0B13-417737DE-D675309F-8B978AB8"], + "EquippedBonuses": [] + } + }, + { + "ObjectId": "EGMGroupTypeEnum::PlayerMetadata", + "Version": 1, + "SchemaVersion": 1.1, + "Data": { + "LastPlayedFaction": last_played_faction, "LastPlayedRunnerId": {"tagName": last_played_runner_id}, + "LastPlayedHunterId": {"tagName": last_played_hunter_id}, + "shouldPlayWithoutContextualHelp":should_play_without_contextual_help,"hasPlayedDeathGarden1":True + } + } + ]}) + except TimeoutError: + return jsonify({"status": "error"}) + except Exception as e: + logger.graylog_logger(level="error", handler="logging_updateMetadataGroup", message=e) +# POST https://api.zkwolf.com/api/v1/extensions/progression/updateMetadataGroup HTTP/1.1 +# {"data":{"objectId":"PlayerMetadata","version":2,"metadata":{ +# "lastPlayedFaction":"Runner","lastPlayedRunnerId":{"tagName":"Runner.Ink"},"lastPlayedHunterId":{"tagName":"None"}, +# "shouldPlayWithoutContextualHelp":false,"hasPlayedDeathGarden1":false},"reason":"SetLastPlayedCharacterId"}} + + + # dont know if this works. Hope it does. @app.route("/api/v1/extensions/inventory/unlockSpecialItems", methods=["POST"]) def inventory_unlock_special_items(): @@ -681,6 +815,24 @@ def inventory_unlock_special_items(): logger.graylog_logger(level="error", handler="unknown_unlockSpecialItems", message=e) + +# POST https://api.zkwolf.com//api/v1/extensions/progression/resetCharacterProgressionForPrestige HTTP/1.1 +# {"data":{"characterId":"755D4DFE40DA1512B01E3D8CFF3C8D4D"}} +@app.route("/api/v1/extensions/progression/resetCharacterProgressionForPrestige", methods=["POST"]) +def reset_prestige(): + check_for_game_client("strict") + session_cookie = sanitize_input(request.cookies.get("bhvrSession")) + userid = session_manager.get_user_id(session_cookie) + try: + data = request.get_json() + character_id = data["data"]["characterId"] + logger.graylog_logger(level="info", handler="resetCharacterProgressionForPrestige", message=data) + return jsonify({"status": "success"}) + except TimeoutError: + return jsonify({"status": "error"}) + except Exception as e: + logger.graylog_logger(level="error", handler="resetCharacterProgressionForPrestige", message=e) + @app.route("/api/v1/extensions/challenges/getChallengeProgressionBatch", methods=["POST"]) def challenges_get_challenge_progression_batch(): check_for_game_client("strict") @@ -802,6 +954,10 @@ def challenges_get_challenge_progression_batch(): "Id": "C90F72FC4D61B1F2FBC73F8A4685EA41", "Amount": 1.0, "Claimed": False}] }}) + elif challenge == "24CE65364362CB2A90C0E08876176937": + challenge_list.append({"challengeId": "24CE65364362CB2A90C0E08876176937", + "operationName":"complete" + }) else: logger.graylog_logger(level="error", handler="logging_missing_challenge", message=f"Unknown challenge id {challenge}")