Fixed some Blueprinting issues

This commit is contained in:
ZKWolf 2024-04-25 08:16:01 +02:00
parent d6d0c8b8a1
commit 2c54959f92

View File

@ -1156,7 +1156,11 @@ class ChallengeHandler:
def get_progression_batch(self, challenge_id, userid, db_challenge):
#combine challenge dicts and see if ID is in them
#Should not alter anything if challenge_id is not a recognized challenge
if challenge_id in {**self.daily_challenges, **self.weekly_challenges, **challenge_data}:
if challenge_id in self.daily_challenges or challenge_id in self.weekly_challenges:
user_data = mongo.get_data_with_list(login=userid, login_steam=False, items={"challengeProgression"})[
"challengeProgression"]
for challenge in user_data:
if challenge["challengeId"] == challenge_id:
if challenge_id in db_challenge:
challenge = db_challenge[challenge_id]
if challenge["value"] == 0:
@ -1164,10 +1168,11 @@ class ChallengeHandler:
"completed": False}
else:
if challenge["completed"]:
reward_key = "rewards"
reward_key = "rewardsClaimed"
# TEST should be rewardsClaimed
else:
reward_key = "rewards"
# todo add rewards func
data = {
"challengeId": challenge["challengeId"],
"className": "ChallengeProgressionCounter",
@ -1233,10 +1238,43 @@ class ChallengeHandler:
return {"challengeId": challenge_id, "completed": False}
else:
user_data = mongo.get_data_with_list(login=userid, login_steam=False, items={"challengeProgression"})["challengeProgression"]
for challenge in user_data:
if challenge["challengeId"] == challenge_id:
if challenge["value"] == 0:
data = {"challengeId": challenge["challengeId"],
"completed": False}
else:
if challenge["completed"]:
reward_key = "rewardsClaimed"
# TEST should be rewardsClaimed
else:
reward_key = "rewards"
if challenge["challengeId"] in self.hard_code_challenges:
try:
rewards = get_reward(challenge["blueprint"])
except KeyError:
rewards = {}
logger.graylog_logger(level="error", handler="get_progression_batch", message=f"Challenge {challenge_id} Blueprint Error.")
else:
rewards = {}
data = {
"challengeId": challenge["challengeId"],
"className": "ChallengeProgressionCounter",
reward_key: [
rewards
],
"completed": challenge["completed"],
"schemaVersion": 1,
"value": challenge["value"]
}
return data
logger.graylog_logger(level="info", handler="get_progression_batch", message=f"Challenge {challenge_id} not found in user data")
#A lot of challenges are sent that are not in challenge_data
#Add them anyways
if challenge_id not in db_challenge:
self.add_challenge_to_user(userid, challenge_id, "ChallengeProgressionCounter")
# if challenge_id not in db_challenge:
# self.add_challenge_to_user(userid, challenge_id, "ChallengeProgressionCounter")
return {"challengeId": challenge_id, "completed": False}
# def login_update_time(self, userId):