Skip to content

Commit 1a44e76

Browse files
SonnyXGrover-c13
authored andcommitted
Added SetFavoritePokemon method (#222)
1 parent 0d5e80e commit 1a44e76

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/main/java/com/pokegoapi/api/pokemon/Pokemon.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@
2323
import POGOProtos.Networking.Requests.Messages.EvolvePokemonMessageOuterClass.EvolvePokemonMessage;
2424
import POGOProtos.Networking.Requests.Messages.NicknamePokemonMessageOuterClass.NicknamePokemonMessage;
2525
import POGOProtos.Networking.Requests.Messages.ReleasePokemonMessageOuterClass.ReleasePokemonMessage;
26+
import POGOProtos.Networking.Requests.Messages.SetFavoritePokemonMessageOuterClass.SetFavoritePokemonMessage;
2627
import POGOProtos.Networking.Requests.Messages.UpgradePokemonMessageOuterClass;
2728
import POGOProtos.Networking.Requests.Messages.UpgradePokemonMessageOuterClass.UpgradePokemonMessage;
2829
import POGOProtos.Networking.Requests.RequestTypeOuterClass.RequestType;
2930
import POGOProtos.Networking.Responses.EvolvePokemonResponseOuterClass.EvolvePokemonResponse;
3031
import POGOProtos.Networking.Responses.NicknamePokemonResponseOuterClass.NicknamePokemonResponse;
3132
import POGOProtos.Networking.Responses.ReleasePokemonResponseOuterClass.ReleasePokemonResponse;
3233
import POGOProtos.Networking.Responses.ReleasePokemonResponseOuterClass.ReleasePokemonResponse.Result;
34+
import POGOProtos.Networking.Responses.SetFavoritePokemonResponseOuterClass.SetFavoritePokemonResponse;
3335
import POGOProtos.Networking.Responses.UpgradePokemonResponseOuterClass;
3436
import POGOProtos.Networking.Responses.UpgradePokemonResponseOuterClass.UpgradePokemonResponse;
3537
import com.google.protobuf.InvalidProtocolBufferException;
@@ -121,6 +123,37 @@ public NicknamePokemonResponse.Result renamePokemon(String nickname)
121123
return response.getResult();
122124
}
123125

126+
/**
127+
* Function to mark the pokemon as favorite or not.
128+
*
129+
* @param markFavorite Mark Pokemon as Favorite?
130+
* @return the SetFavoritePokemonResponse.Result
131+
* @throws LoginFailedException the login failed exception
132+
* @throws RemoteServerException the remote server exception
133+
*/
134+
public SetFavoritePokemonResponse.Result setFavoritePokemon(boolean markFavorite)
135+
throws LoginFailedException, RemoteServerException {
136+
SetFavoritePokemonMessage reqMsg = SetFavoritePokemonMessage.newBuilder()
137+
.setPokemonId(getId())
138+
.setIsFavorite(markFavorite)
139+
.build();
140+
141+
ServerRequest serverRequest = new ServerRequest(RequestType.SET_FAVORITE_POKEMON, reqMsg);
142+
pgo.getRequestHandler().sendServerRequests(serverRequest);
143+
144+
SetFavoritePokemonResponse response;
145+
try {
146+
response = SetFavoritePokemonResponse.parseFrom(serverRequest.getData());
147+
} catch (InvalidProtocolBufferException e) {
148+
throw new RemoteServerException(e);
149+
}
150+
151+
pgo.getInventories().getPokebank().removePokemon(this);
152+
pgo.getInventories().updateInventories();
153+
154+
return response.getResult();
155+
}
156+
124157
/**
125158
* Powers up a pokemon with candy and stardust.
126159
* After powering up this pokemon object will reflect the new changes.

0 commit comments

Comments
 (0)