def post(self): args = parser.parse_args() UUID = str(uuid4()) if not args.account_key: args.account_key = 0 if len(args.account_key) < 5: args.account_key = 0 character_to_add = dict(args) # print(UUID) # print(character_to_add) if args.account_key is not 0: if checkUUID(args.account_key, 'accounts'): account = literal_eval(db.hget('accounts', args.account_key)) temp = dict() for information in character_to_add: if information in keep_informations: temp[information] = character_to_add[information] temp['class_name'] = literal_eval( db.hget('classes', temp["class_key"]))['class_name'] temp['character_key'] = UUID account["account_characters"].append(temp) # print(temp) # print(account["account_characters"]) data_account = {args.account_key: json.dumps(account)} db.hmset('accounts', data_account) db.hset('quests', UUID, "{}") else: abort(404, message="uuid {} not found".format(args.account_key)) data = {UUID: json.dumps(character_to_add)} db.hmset('characters', data) # print(UUID) return UUID, 200
def post(self): # print("no processed data receive : {}".format(request.data)) # logging.info("post RTS") # logging.info(request.data) npc_quest = json.loads(db.hget('quests', NPC_UUID)) args = parser.parse_args() if args.nbr_remnants: update = args.nbr_remnants data = json.loads(db.hget('characters', NPC_TRASH_UUID)) data["character_last_position"] = data["character_last_position"] data["nbr_remnants"] = update key_to_delete = [] players = db.hgetall('quests') for key in npc_quest: if (npc_quest[args.quest_key]["game_key"] == npc_quest[key] ["game_key"]): key_to_delete.append(key) for k, value in players.items(): dict_value = literal_eval(value) for key in key_to_delete: if key in dict_value: del dict_value[key] db.hset('quests', k, json.dumps(dict_value)) data["quest_key_1"] = key_to_delete[0] data["quest_key_2"] = key_to_delete[1] data_mq = {"call_type": 0, "from": "RTS", "payload": data} communication_core.rts_quest_add(data_mq) response = "monsters invocated" else: data = {} UUID = str(uuid4()) data["quest_key"] = UUID data["team_key"] = args.team_key data["game_key"] = args.game_key data["quest_giver"] = NPC_UUID data["quest_name"] = args.quest_name data["quest_description"] = args.quest_description data["quest_gold"] = int(args.quest_gold) data["quest_type_key"] = 0 data["quest_experience"] = int(args.quest_experience) data["quest_advancement"] = { "id": 12, "max_nbr": int(args.nbr_spawns_to_kill), "current": 0, "classe": 12 } npc_quest[UUID] = data data["npc"] = json.loads(db.hget('characters', NPC_TRASH_UUID)) data["npc"]["character_last_position"] = literal_eval( data["npc"]["character_last_position"]) db.hset('quests', NPC_UUID, json.dumps(npc_quest)) del data["team_key"] del data["game_key"] data_mq = {"call_type": 1, "from": "RTS", "payload": data} communication_core.rts_quest_add(data_mq) response = UUID # print(npc_quest) return response, 200
def createRTSAccount(user_name): print('Never connected on MMO, creation account for {}'.format(user_name)) UUID = str(uuid4()) # print(UUID) pre_data = dict() pre_data["account_characters"] = [] pre_data["account_key"] = UUID pre_data["account_pseudo"] = user_name data = {UUID: json.dumps(pre_data)} # print(data) # print(type(data)) db.hmset('accounts', data) db.hset('accounts_search', user_name, UUID) createMMOCharacter(UUID, user_name)
def put(self): logging.info("patch auth RTS") logging.info("no processed data receive : {}".format(request.data)) args = parser.parse_args() args.account_hash = args.account_hash.upper() checkPseudo(args.account_login) account = checkAuth(args.account_login, args.account_hash, False) if (db.hexists('accounts_search', account["rts_account_key"])): db.hdel('accounts_search', account["rts_account_key"]) account["rts_account_key"] = args.rts_account_key logging.info("change for {}".format(account)) db.hset('accounts_search', args.rts_account_key, account["account_key"]) db.hset('accounts', account["account_key"], json.dumps(account)) # test = str(request.__dict__) # res = make_response(test, 200) return 'modified', 200
def post(self): args = parser.parse_args() if db.hexists('accounts_search', args.account_pseudo) != 0 or db.hexists('accounts_search', args.account_email) != 0: abort(403, message="account name or email already in database") UUID = str(uuid4()) # print(UUID) args.account_characters = [] args.account_key = UUID args.rts_account_key = "not yet linked" account = json.dumps(args) data = {UUID: account} # print(data) # print(type(data)) db.hmset('accounts', data) db.hset('accounts_search', args.account_pseudo, UUID) db.hset('accounts_search', args.account_email, UUID) return UUID, 200
def delete(self): db.hset('quests', NPC_UUID, "{}") return 'deleted', 204