Skip to content

Commit 3a84f59

Browse files
authored
Merge pull request #89 from jabbink/fix-pokestopCooldownPeriod
properly store pokestop reset time
2 parents 784fe2a + bb9af93 commit 3a84f59

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

src/main/java/com/pokegoapi/api/map/fort/Pokestop.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.pokegoapi.exceptions.RemoteServerException;
1313
import com.pokegoapi.google.common.geometry.S2LatLng;
1414
import com.pokegoapi.main.ServerRequest;
15+
import lombok.Getter;
1516

1617
/**
1718
* Created by mjmfighter on 7/20/2016.
@@ -20,17 +21,25 @@ public class Pokestop {
2021

2122
private final PokemonGo api;
2223
private final FortDataOuterClass.FortData fortData;
24+
@Getter
25+
private long cooldownCompleteTimestampMs;
26+
2327

2428
public Pokestop(PokemonGo api, FortDataOuterClass.FortData fortData) {
2529
this.api = api;
2630
this.fortData = fortData;
31+
this.cooldownCompleteTimestampMs = fortData.getCooldownCompleteTimestampMs();
2732
}
2833

2934
public boolean canLoot() {
35+
return canLoot(false);
36+
}
37+
38+
public boolean canLoot(boolean ignoreDistance) {
3039
S2LatLng pokestop = S2LatLng.fromDegrees(getLatitude(), getLongitude());
3140
S2LatLng player = S2LatLng.fromDegrees(api.getLatitude(), api.getLongitude());
3241
double distance = pokestop.getEarthDistance(player);
33-
return distance < 30 && fortData.getCooldownCompleteTimestampMs() < System.currentTimeMillis();
42+
return (ignoreDistance || distance < 30) && cooldownCompleteTimestampMs < System.currentTimeMillis();
3443
}
3544

3645
public String getId() {
@@ -64,12 +73,13 @@ public PokestopLootResult loot() throws LoginFailedException, RemoteServerExcept
6473
ServerRequest serverRequest = new ServerRequest(RequestTypeOuterClass.RequestType.FORT_SEARCH, searchMessage);
6574
api.getRequestHandler().request(serverRequest);
6675
api.getRequestHandler().sendServerRequests();
67-
FortSearchResponseOuterClass.FortSearchResponse response = null;
76+
FortSearchResponseOuterClass.FortSearchResponse response;
6877
try {
6978
response = FortSearchResponseOuterClass.FortSearchResponse.parseFrom(serverRequest.getData());
7079
} catch (InvalidProtocolBufferException e) {
71-
e.printStackTrace();
80+
throw new RemoteServerException(e);
7281
}
82+
cooldownCompleteTimestampMs = response.getCooldownCompleteTimestampMs();
7383
return new PokestopLootResult(response);
7484
}
7585

0 commit comments

Comments
 (0)