use of com.pokegoapi.exceptions.InsufficientLevelException in project PokeGOAPI-Java by Grover-c13.
the class PlayerProfile method acceptLevelUpRewards.
/**
* Accept the rewards granted and the items unlocked by gaining a trainer level up. Rewards are retained by the
* server until a player actively accepts them.
* The rewarded items are automatically inserted into the players item bag.
*
* @param level the trainer level that you want to accept the rewards for
* @return a PlayerLevelUpRewards object containing information about the items rewarded and unlocked for this level
* @throws RequestFailedException if an exception occurred while sending requests
* @throws InsufficientLevelException if you have not yet reached the desired level
* @see PlayerLevelUpRewards
*/
public PlayerLevelUpRewards acceptLevelUpRewards(int level) throws RequestFailedException {
// Check if we even have achieved this level yet
if (level > stats.getLevel()) {
throw new InsufficientLevelException();
}
LevelUpRewardsMessage msg = LevelUpRewardsMessage.newBuilder().setLevel(level).build();
ServerRequest serverRequest = new ServerRequest(RequestType.LEVEL_UP_REWARDS, msg);
api.requestHandler.sendServerRequests(serverRequest, true);
LevelUpRewardsResponse response;
try {
response = LevelUpRewardsResponse.parseFrom(serverRequest.getData());
} catch (InvalidProtocolBufferException e) {
throw new RequestFailedException(e);
}
// Add the awarded items to our bag
ItemBag bag = api.inventories.itemBag;
bag.addAwardedItems(response);
// Build a new rewards object and return it
return new PlayerLevelUpRewards(response);
}
Aggregations