diff --git a/src/main/java/com/pokegoapi/api/map/fort/Pokestop.java b/src/main/java/com/pokegoapi/api/map/fort/Pokestop.java index 4b8b3e39..5ab31826 100644 --- a/src/main/java/com/pokegoapi/api/map/fort/Pokestop.java +++ b/src/main/java/com/pokegoapi/api/map/fort/Pokestop.java @@ -15,10 +15,13 @@ package com.pokegoapi.api.map.fort; +import POGOProtos.Inventory.Item.ItemIdOuterClass; import POGOProtos.Map.Fort.FortDataOuterClass; +import POGOProtos.Networking.Requests.Messages.AddFortModifierMessageOuterClass.AddFortModifierMessage; import POGOProtos.Networking.Requests.Messages.FortDetailsMessageOuterClass.FortDetailsMessage; import POGOProtos.Networking.Requests.Messages.FortSearchMessageOuterClass.FortSearchMessage; import POGOProtos.Networking.Requests.RequestTypeOuterClass; +import POGOProtos.Networking.Responses.AddFortModifierResponseOuterClass; import POGOProtos.Networking.Responses.FortDetailsResponseOuterClass; import POGOProtos.Networking.Responses.FortSearchResponseOuterClass; import com.google.protobuf.InvalidProtocolBufferException; @@ -126,6 +129,31 @@ public PokestopLootResult loot() throws LoginFailedException, RemoteServerExcept return new PokestopLootResult(response); } + /** + * Adds a modifier to this pokestop. (i.e. add a lure module) + * + * @param item the modifier to add to this pokestop + * @throws LoginFailedException if login failed + * @throws RemoteServerException if the server failed to respond or the modifier could not be added to this pokestop + */ + public void addModifier(ItemIdOuterClass.ItemId item) throws LoginFailedException, RemoteServerException { + AddFortModifierMessage msg = AddFortModifierMessage.newBuilder() + .setModifierType(item) + .setFortId(getId()) + .setPlayerLatitude(api.getLatitude()) + .setPlayerLongitude(api.getLongitude()) + .build(); + ServerRequest serverRequest = new ServerRequest(RequestTypeOuterClass.RequestType.ADD_FORT_MODIFIER, msg); + api.getRequestHandler().sendServerRequests(serverRequest); + AddFortModifierResponseOuterClass.AddFortModifierResponse response; + try { + //sadly the server response does not contain any information to verify if the request was successful + response = AddFortModifierResponseOuterClass.AddFortModifierResponse.parseFrom(serverRequest.getData()); + } catch (InvalidProtocolBufferException e) { + throw new RemoteServerException(e); + } + } + /** * Get more detailed information about a pokestop. *