diff --git a/package.json b/package.json index e8aff89..cc21082 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "POGOServer", - "version": "0.4.8", + "version": "0.4.9", "description": "", "repository": { "type": "git", diff --git a/src/db/tables/owned_pkmn.table b/src/db/tables/owned_pkmn.table index 27a5069..9f5437d 100644 --- a/src/db/tables/owned_pkmn.table +++ b/src/db/tables/owned_pkmn.table @@ -1,4 +1,4 @@ -id int(11) NOT NULL, +id int(11) NOT NULL AUTO_INCREMENT, owner_id int(11) NOT NULL, pokemon_id varchar(32) NOT NULL, cp int(32) NOT NULL, diff --git a/src/db/tables/users.table b/src/db/tables/users.table index 79872dd..1e6a398 100644 --- a/src/db/tables/users.table +++ b/src/db/tables/users.table @@ -1,4 +1,4 @@ -id int(11) NOT NULL, +id int(11) NOT NULL AUTO_INCREMENT, username longtext NOT NULL, email longtext NOT NULL, exp int(255) NOT NULL, diff --git a/src/packets/Responses.MarkTutorialComplete.js b/src/packets/Responses.MarkTutorialComplete.js index 3722627..0c12249 100644 --- a/src/packets/Responses.MarkTutorialComplete.js +++ b/src/packets/Responses.MarkTutorialComplete.js @@ -1,18 +1,25 @@ import proto from "../proto"; +import POGOProtos from "pokemongo-protobuf"; import { GetPlayer } from "./"; /** * @param {Player} player + * @param {Object} req * @return {Object} */ -export default function MarkTutorialComplete(player) { +export default function MarkTutorialComplete(player, req) { - return ( - new proto.Networking.Responses.MarkTutorialCompleteResponse({ - success: true, - player_data: GetPlayer(player).player_data - }).encode() - ); + if (req.tutorials_completed[0] === "LEGAL_SCREEN") { + player.tutorial_state.push("LEGAL_SCREEN"); + player.send_marketing_emails = !!req.send_marketing_emails; + } + + let buffer = ({ + success: true, + player_data: GetPlayer(player).player_data + }); + + return POGOProtos.serialize(buffer, "POGOProtos.Networking.Responses.GetHatchedEggsResponse"); } \ No newline at end of file diff --git a/src/packets/Responses.SetAvatar.js b/src/packets/Responses.SetAvatar.js index 5805aa3..19cd9a7 100644 --- a/src/packets/Responses.SetAvatar.js +++ b/src/packets/Responses.SetAvatar.js @@ -11,9 +11,13 @@ export default function SetAvatar(player) { let buffer = ({ status: proto.Networking.Responses.SetAvatarResponse.Status.SUCCESS, - player_data: GetPlayer(player).player_data + player_data: GetPlayer(player) }); + if (player.tutorial_state.indexOf("AVATAR_SELECTION") === -1) { + player.tutorial_state.push("AVATAR_SELECTION"); + } + return (POGOProtos.serialize(buffer, "POGOProtos.Networking.Responses.SetAvatarResponse")); } \ No newline at end of file diff --git a/src/player.js b/src/player.js index d873901..a10ecce 100644 --- a/src/player.js +++ b/src/player.js @@ -488,7 +488,6 @@ export function registerPlayer(player) { this.createUser(player).then(() => { this.print(`${player.email} registered!`, 36); this.loginPlayer(player).then((res) => { - this.print("Registered and logged in!", 31); resolve(res); }); }); diff --git a/src/response.js b/src/response.js index 4f1ffd6..f2a51fc 100644 --- a/src/response.js +++ b/src/response.js @@ -125,12 +125,37 @@ export function processResponse(player, req) { buffer = SfidaActionLog(); break; case "MARK_TUTORIAL_COMPLETE": - buffer = MarkTutorialComplete(player); + buffer = MarkTutorialComplete(player, msg); this.savePlayer(player).then(() => { resolve(buffer); }); return void 0; break; + case "ENCOUNTER_TUTORIAL_COMPLETE": + let starters = ["BULBASAUR", "CHARMANDER", "SQUIRTLE"]; + // Make sure the catched pokemon is valid + if (starters.indexOf(msg.pokemon_id) === -1) { + if (player.tutorial_state.indexOf("POKEMON_CAPTURE") === -1) { + player.tutorial_state.push("POKEMON_CAPTURE"); + } + let pkmn = { + pokemon_id: msg.pokemon_id, + cp: 15, + stamina: 10, + stamina_max: 10, + move_1: "TACKLE", + move_2: "TACKLE", + height_m: 0.20962005257606506, + weight_kg: 0.3212273120880127, + individual_attack: 7, + individual_defense: 7, + individual_stamina: 3, + cp_multiplier: 0.16639786958694458 + }; + player.party.push(pkmn); + buffer = POGOProtos.serialize(buffer, "POGOProtos.Networking.Responses.EncounterTutorialCompleteResponse"); + } + break; case "CLAIM_CODENAME": buffer = ClaimCodeName(msg, player); this.savePlayer(player).then(() => {