private void PlayerProfileReceived(object sender, GetPlayerProfileResponse e) { if (e.Result == GetPlayerProfileResponse.Types.Result.Success) { throw new System.NotImplementedException(); } }
public async Task <MethodResult <bool> > GetProfile() { var response = await _client.ClientSession.RpcClient.SendRemoteProcedureCallAsync(new Request { RequestType = RequestType.GetPlayerProfile, RequestMessage = new GetPlayerProfileMessage { PlayerName = _client.ClientSession.Player.Data.Username }.ToByteString() }); GetPlayerProfileResponse getPlayerProfileResponse = null; try { getPlayerProfileResponse = GetPlayerProfileResponse.Parser.ParseFrom(response); LogCaller(new LoggerEventArgs("Download player profile loaded", LoggerTypes.Success)); return(new MethodResult <bool> { Success = true }); } catch (Exception ex) { if (response.IsEmpty) { LogCaller(new LoggerEventArgs("Failed to request GetPlayerProfileResponse", LoggerTypes.Exception, ex)); } return(new MethodResult <bool>()); } }
public async Task GetPlayerProfile() { var request = CommonRequest.GetPlayerProfileMessageRequest(Client.Player.PlayerResponse.PlayerData.Username); var requests = CommonRequest.FillRequest(request, Client, false, false); var serverRequest = GetRequestBuilder().GetRequestEnvelope(requests); var serverResponse = await PostProto <Request>(serverRequest).ConfigureAwait(false); ParseServerResponse(serverResponse); if (serverResponse.StatusCode == ResponseEnvelope.Types.StatusCode.Redirect) { await GetPlayerProfile().ConfigureAwait(false); return; } var responses = serverResponse.Returns; if ((responses != null) && (responses.Count > 0)) { var getPlayerProfileResponse = new GetPlayerProfileResponse(); getPlayerProfileResponse.MergeFrom(responses[0]); CommonRequest.ProcessGetPlayerProfileResponse(Client, getPlayerProfileResponse); CommonRequest.ProcessCommonResponses(Client, responses, false, false); } }
public static void ProcessGetPlayerProfileResponse(Client client, GetPlayerProfileResponse response) { if (response == null) { return; } // TODO: do something with this information Logger.Debug("Result:" + response.Result); if (response.Result == GetPlayerProfileResponse.Types.Result.Success) { var i = 0; foreach (var element in response.Badges) { Logger.Debug($"Badges {i}: {element}"); i++; } Logger.Debug("GymBadges: " + response.GymBadges); Logger.Debug("StartTime: " + response.StartTime); } }
protected ByteString GetPlayerPacket(RequestType typ, object msg) { switch (typ) { case RequestType.SetFavoritePokemon: SetFavoritePokemonResponse sfp = new SetFavoritePokemonResponse(); SetFavoritePokemonMessage m = (SetFavoritePokemonMessage)msg; var owned = this.GetPokemonById((ulong)m.PokemonId); if (owned != null) { m.IsFavorite = true; owned.favorite = true; this.Database.OwnedPokemons.Update(owned); sfp.Result = SetFavoritePokemonResponse.Types.Result.Success; } else { sfp.Result = SetFavoritePokemonResponse.Types.Result.ErrorPokemonNotFound; } //this.Log.Dbg($"TypeOfResponseMessage: {nameof(SetFavoritePokemonResponse)}"); return(sfp.ToByteString()); case RequestType.LevelUpRewards: LevelUpRewardsResponse lur = new LevelUpRewardsResponse(); lur.Result = LevelUpRewardsResponse.Types.Result.Success; lur.ItemsAwarded.AddRange(new RepeatedField <ItemAward>() { new ItemAward() { ItemId = ItemId.ItemPokeBall, ItemCount = 2 }, new ItemAward() { ItemId = ItemId.ItemTroyDisk, ItemCount = 2 } }); //this.Log.Dbg($"TypeOfResponseMessage: {nameof(LevelUpRewardsResponse)}"); return(lur.ToByteString()); case RequestType.ReleasePokemon: ReleasePokemonResponse rp = this.ReleasePokemon((ReleasePokemonMessage)msg); //this.Log.Dbg($"TypeOfResponseMessage: {nameof(ReleasePokemonResponse)}"); return(rp.ToByteString()); case RequestType.UpgradePokemon: UpgradePokemonResponse up = new UpgradePokemonResponse(); //UpgradePokemonMessage upm = (UpgradePokemonMessage)msg; //var uptpkmn = brc.GetPokemonById(upm.PokemonId); //if (uptpkmn!=null) //{ //} //else //{ // up.Result = UpgradePokemonResponse.Types.Result.ErrorPokemonNotFound; //} //this.Log.Dbg($"TypeOfResponseMessage: {nameof(UpgradePokemonResponse)}"); return(up.ToByteString()); //https://github.com/msx752/PoGoEmulator/issues/24 case RequestType.GetPlayerProfile: GetPlayerProfileResponse gpp = new GetPlayerProfileResponse(); gpp.Result = GetPlayerProfileResponse.Types.Result.Success; gpp.StartTime = (long)DateTime.Now.ToUnixTime(); gpp.Badges.Add(new POGOProtos.Data.PlayerBadge() { BadgeType = BadgeType.BadgeTravelKm, EndValue = 2674, CurrentValue = 1337 }); return(gpp.ToByteString()); //case RequestType.SetAvatar: // LevelUpRewardsResponse sa = new LevelUpRewardsResponse(); // return sa.ToByteString(); case RequestType.GetPlayer: //this.Log.Dbg($"TypeOfResponseMessage: {nameof(GetPlayerResponse)}"); return(this.GetPlayer()); case RequestType.GetInventory: RepeatedField <InventoryItem> items = new RepeatedField <InventoryItem>(); //ADD ITEMSS GetInventoryResponse gi = new GetInventoryResponse(); gi.Success = true; gi.InventoryDelta = new POGOProtos.Inventory.InventoryDelta() { NewTimestampMs = (long)DateTime.Now.ToUnixTime() }; gi.InventoryDelta.InventoryItems.AddRange(items); //this.Log.Dbg($"TypeOfResponseMessage: {nameof(GetInventoryResponse)}"); return(gi.ToByteString()); case RequestType.GetAssetDigest: var gad = GlobalSettings.GameAssets[this.CurrentPlayer.Platform].Value; //this.Log.Dbg($"TypeOfResponseMessage: {nameof(GetAssetDigestResponse)}"); return(gad.ToByteString()); //case RequestType.NicknamePokemon: // LevelUpRewardsResponse np = new LevelUpRewardsResponse(); // return np.ToByteString(); case RequestType.GetHatchedEggs: GetHatchedEggsResponse ghe = new GetHatchedEggsResponse(); ghe.Success = true; //this.Log.Dbg($"TypeOfResponseMessage: {nameof(GetHatchedEggsResponse)}"); return(ghe.ToByteString()); case RequestType.CheckAwardedBadges: CheckAwardedBadgesResponse cab = new CheckAwardedBadgesResponse(); cab.Success = true; //this.Log.Dbg($"TypeOfResponseMessage: {nameof(CheckAwardedBadgesResponse)}"); return(cab.ToByteString()); //case RequestType.RecycleInventoryItem: // LevelUpRewardsResponse rii = new LevelUpRewardsResponse(); // return rii.ToByteString(); //case RequestType.ClaimCodename: // LevelUpRewardsResponse cc = new LevelUpRewardsResponse(); // return cc.ToByteString(); default: throw new Exception($"unknown (Player) Returns type: {typ}"); } }
/// <summary> /// Provides a safe way to invoke the <see cref="PlayerProfileReceived" /> event. /// </summary> /// <param name="value"></param> public void RaisePlayerProfileReceived(GetPlayerProfileResponse value) => PlayerProfileReceived?.Invoke(this, value);