1515
1616package com .pokegoapi .api .inventory ;
1717
18- import POGOProtos .Data .Player .PlayerStatsOuterClass ;
1918import POGOProtos .Enums .PokemonFamilyIdOuterClass ;
2019import POGOProtos .Enums .PokemonIdOuterClass ;
2120import POGOProtos .Inventory .InventoryItemDataOuterClass ;
2221import POGOProtos .Inventory .InventoryItemOuterClass ;
23- import POGOProtos .Inventory .ItemIdOuterClass ;
24- import POGOProtos .Inventory .ItemOuterClass ;
22+ import POGOProtos .Inventory .Item . ItemDataOuterClass . ItemData ;
23+ import POGOProtos .Inventory .Item . ItemIdOuterClass . ItemId ;
2524import POGOProtos .Networking .Requests .Messages .GetInventoryMessageOuterClass .GetInventoryMessage ;
2625import POGOProtos .Networking .Requests .RequestTypeOuterClass ;
2726import POGOProtos .Networking .Responses .GetInventoryResponseOuterClass .GetInventoryResponse ;
@@ -44,27 +43,30 @@ public class Inventories {
4443 @ Getter
4544 private CandyJar candyjar ;
4645 @ Getter
47- private PlayerStatsOuterClass . PlayerStats stats ;
46+ private Pokedex pokedex ;
4847
4948 private long lastInventoryUpdate = 0 ;
5049
5150 /**
5251 * Creates Inventories and initializes content.
52+ *
5353 * @param api PokemonGo api
54- * @throws LoginFailedException the login failed exception
54+ * @throws LoginFailedException the login failed exception
5555 * @throws RemoteServerException the remote server exception
5656 */
5757 public Inventories (PokemonGo api ) throws LoginFailedException , RemoteServerException {
5858 this .api = api ;
5959 itemBag = new ItemBag (api );
6060 pokebank = new PokeBank (api );
6161 candyjar = new CandyJar (api );
62+ pokedex = new Pokedex (api );
6263 updateInventories ();
6364 }
6465
6566 /**
6667 * Updates the inventories with latest data.
67- * @throws LoginFailedException the login failed exception
68+ *
69+ * @throws LoginFailedException the login failed exception
6870 * @throws RemoteServerException the remote server exception
6971 */
7072 public void updateInventories () throws LoginFailedException , RemoteServerException {
@@ -73,8 +75,9 @@ public void updateInventories() throws LoginFailedException, RemoteServerExcepti
7375
7476 /**
7577 * Updates the inventories with the latest data.
78+ *
7679 * @param forceUpdate For a full update if true
77- * @throws LoginFailedException the login failed exception
80+ * @throws LoginFailedException the login failed exception
7881 * @throws RemoteServerException the remote server exception
7982 */
8083 public void updateInventories (boolean forceUpdate ) throws LoginFailedException , RemoteServerException {
@@ -83,13 +86,13 @@ public void updateInventories(boolean forceUpdate) throws LoginFailedException,
8386 itemBag = new ItemBag (api );
8487 pokebank = new PokeBank (api );
8588 candyjar = new CandyJar (api );
89+ pokedex = new Pokedex (api );
8690 }
8791 GetInventoryMessage invReqMsg = GetInventoryMessage .newBuilder ()
8892 .setLastTimestampMs (lastInventoryUpdate )
8993 .build ();
9094 ServerRequest inventoryRequest = new ServerRequest (RequestTypeOuterClass .RequestType .GET_INVENTORY , invReqMsg );
91- api .getRequestHandler ().request (inventoryRequest );
92- api .getRequestHandler ().sendServerRequests ();
95+ api .getRequestHandler ().sendServerRequests (inventoryRequest );
9396
9497 GetInventoryResponse response = null ;
9598 try {
@@ -101,37 +104,28 @@ public void updateInventories(boolean forceUpdate) throws LoginFailedException,
101104 for (InventoryItemOuterClass .InventoryItem inventoryItem
102105 : response .getInventoryDelta ().getInventoryItemsList ()) {
103106 InventoryItemDataOuterClass .InventoryItemData itemData = inventoryItem .getInventoryItemData ();
104- if (inventoryItem .getDeletedItemKey () > 0 ) {
105- if (itemData .getPokemonData ().getPokemonId () != PokemonIdOuterClass .PokemonId .MISSINGNO ) {
106- pokebank .removePokemon (new Pokemon (inventoryItem .getInventoryItemData ().getPokemonData ()));
107- }
108- if (itemData .getItem ().getItemId () != ItemIdOuterClass .ItemId .UNRECOGNIZED ) {
109- ItemOuterClass .Item item = inventoryItem .getInventoryItemData ().getItem ();
110- itemBag .removeItem (inventoryItem .getInventoryItemData ().getItem ().getItemId (), item .getCount ());
111- }
112- if (itemData .getPokemonFamily ().getFamilyId () != PokemonFamilyIdOuterClass .PokemonFamilyId .UNRECOGNIZED ) {
113- candyjar .removeCandy (
114- inventoryItem .getInventoryItemData ().getPokemonFamily ().getFamilyId (),
115- inventoryItem .getInventoryItemData ().getPokemonFamily ().getCandy ()
116- );
117- }
118- } else {
119- if (itemData .getPokemonData ().getPokemonId () != PokemonIdOuterClass .PokemonId .MISSINGNO ) {
120- pokebank .addPokemon (new Pokemon (inventoryItem .getInventoryItemData ().getPokemonData ()));
121- }
122- if (itemData .getItem ().getItemId () != ItemIdOuterClass .ItemId .UNRECOGNIZED ) {
123- ItemOuterClass .Item item = inventoryItem .getInventoryItemData ().getItem ();
124- itemBag .addItem (new Item (item ));
125- }
126- if (itemData .getPokemonFamily ().getFamilyId () != PokemonFamilyIdOuterClass .PokemonFamilyId .UNRECOGNIZED ) {
127- candyjar .addCandy (
128- inventoryItem .getInventoryItemData ().getPokemonFamily ().getFamilyId (),
129- inventoryItem .getInventoryItemData ().getPokemonFamily ().getCandy ()
130- );
131- }
132- if (itemData .hasPlayerStats ()) {
133- stats = inventoryItem .getInventoryItemData ().getPlayerStats ();
134- }
107+
108+ if (itemData .getPokemonData ().getPokemonId () != PokemonIdOuterClass .PokemonId .MISSINGNO ) {
109+ pokebank .addPokemon (new Pokemon (inventoryItem .getInventoryItemData ().getPokemonData ()));
110+ }
111+ if (itemData .getItem ().getItemId () != ItemId .UNRECOGNIZED
112+ && itemData .getItem ().getItemId () != ItemId .ITEM_UNKNOWN ) {
113+ ItemData item = inventoryItem .getInventoryItemData ().getItem ();
114+ itemBag .addItem (new Item (item ));
115+ }
116+ if (itemData .getPokemonFamily ().getFamilyId () != PokemonFamilyIdOuterClass .PokemonFamilyId .UNRECOGNIZED
117+ && itemData .getPokemonFamily ().getFamilyId () != PokemonFamilyIdOuterClass .PokemonFamilyId .FAMILY_UNSET ) {
118+ candyjar .setCandy (
119+ inventoryItem .getInventoryItemData ().getPokemonFamily ().getFamilyId (),
120+ inventoryItem .getInventoryItemData ().getPokemonFamily ().getCandy ()
121+ );
122+ }
123+ if (itemData .hasPlayerStats ()) {
124+ api .getPlayerProfile ().setStats (inventoryItem .getInventoryItemData ().getPlayerStats ());
125+ }
126+
127+ if (itemData .hasPokedexEntry ()) {
128+ pokedex .add (itemData .getPokedexEntry ());
135129 }
136130
137131 lastInventoryUpdate = System .currentTimeMillis ();
0 commit comments