From 5f2f21a51af887c229d48aab072b8ce11f1f1d79 Mon Sep 17 00:00:00 2001 From: Alex Schlosser Date: Mon, 25 Jul 2016 19:16:50 +0200 Subject: [PATCH 1/2] implemented request to add fort modifier --- .../com/pokegoapi/api/map/fort/Pokestop.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) 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..2ebff20e 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,29 @@ 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 + */ + 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. * From fc5eaab789e22d61db34e9d23560792ab0b8d9e7 Mon Sep 17 00:00:00 2001 From: Alex Schlosser Date: Mon, 25 Jul 2016 22:27:26 +0200 Subject: [PATCH 2/2] added @throws to javadoc for addModifier in Pokestop.java --- src/main/java/com/pokegoapi/api/map/fort/Pokestop.java | 2 ++ 1 file changed, 2 insertions(+) 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 2ebff20e..5ab31826 100644 --- a/src/main/java/com/pokegoapi/api/map/fort/Pokestop.java +++ b/src/main/java/com/pokegoapi/api/map/fort/Pokestop.java @@ -133,6 +133,8 @@ public PokestopLootResult loot() throws LoginFailedException, RemoteServerExcept * 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()