Skip to content

Commit 1a777b3

Browse files
committed
Revamp of Activity section
1 parent cb3399e commit 1a777b3

File tree

10 files changed

+141
-11
lines changed

10 files changed

+141
-11
lines changed

src/main/java/material/clan/Clan.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import com.google.gson.JsonElement;
1313
import com.google.gson.JsonObject;
1414
import material.DestinyAPI;
15-
import material.stats.ActivityMode;
15+
import material.stats.activities.ActivityMode;
1616
import material.user.BungieUser;
1717
import utils.HttpUtils;
1818
import utils.StringUtils;

src/main/java/material/stats/Activity.java renamed to src/main/java/material/stats/activities/Activity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
77
*/
88

9-
package material.stats;
9+
package material.stats.activities;
1010

1111
import com.google.gson.JsonElement;
1212
import com.google.gson.JsonObject;
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
* Copyright (c) dec4234 2021. Access is granted, without any express warranties or guarantees of
3+
* any kind, to all wishing to use this software for their benefit. No one may specifically claim credit, or
4+
* ownership of this software without the explicit permission of the author.
5+
*
6+
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
7+
*/
8+
9+
package material.stats.activities;
10+
11+
import com.google.gson.JsonArray;
12+
import com.google.gson.JsonElement;
13+
import com.google.gson.JsonObject;
14+
import material.user.BungieUser;
15+
import material.user.DestinyCharacter;
16+
import utils.HttpUtils;
17+
18+
public class ActivityHistoryReview {
19+
20+
private HttpUtils httpUtils = new HttpUtils();
21+
22+
private BungieUser bungieUser;
23+
private DestinyCharacter destinyCharacter;
24+
25+
public ActivityHistoryReview(BungieUser bungieUser) {
26+
this.bungieUser = bungieUser;
27+
}
28+
29+
public ActivityHistoryReview(BungieUser bungieUser, DestinyCharacter destinyCharacter) {
30+
this.bungieUser = bungieUser;
31+
this.destinyCharacter = destinyCharacter;
32+
}
33+
34+
public int getCompltetions(ActivityIdentifier activityIdentifier) {
35+
int count = 0;
36+
37+
for(DestinyCharacter destinyCharacter : bungieUser.getCharacters()) {
38+
count += getCompletions(activityIdentifier, destinyCharacter);
39+
}
40+
41+
return count;
42+
}
43+
44+
public int getCompletions(ActivityIdentifier activityIdentifier, DestinyCharacter destinyCharacter) {
45+
int count = 0;
46+
47+
for(int i = 0; i < 25; i++) {
48+
JsonObject jo = httpUtils.urlRequestGET("https://www.bungie.net/Platform/Destiny2/" + bungieUser.getMembershipType() + "/Account/" + bungieUser.getBungieMembershipID() + "/Character/" + destinyCharacter.getCharacterID() + "/Stats/Activities/?page=" + i + "&count=250&mode=" + activityIdentifier.getMode().getBungieValue());
49+
50+
if(!jo.getAsJsonObject("Response").has("activities")) {
51+
break;
52+
}
53+
54+
JsonArray ja = jo.getAsJsonObject("Response").getAsJsonArray("activities");
55+
for(JsonElement je : ja) {
56+
JsonObject jo1 = je.getAsJsonObject();
57+
if(jo1.getAsJsonObject("activityDetails").get("directorActivityHash").getAsString().equals(activityIdentifier.getHash())) {
58+
if (jo1.getAsJsonObject("values").getAsJsonObject("completed").getAsJsonObject("basic").get("value").getAsInt() == 1) {
59+
count++;
60+
}
61+
}
62+
}
63+
}
64+
65+
return count;
66+
}
67+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* Copyright (c) dec4234 2021. Access is granted, without any express warranties or guarantees of
3+
* any kind, to all wishing to use this software for their benefit. No one may specifically claim credit, or
4+
* ownership of this software without the explicit permission of the author.
5+
*
6+
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
7+
*/
8+
9+
package material.stats.activities;
10+
11+
/**
12+
* A collection of 2 to 4 letter identifiers for Activities
13+
* Also Hash Identifiers
14+
*
15+
* e.g. DSC for Deep Stone Crypt
16+
*/
17+
public enum ActivityIdentifier {
18+
19+
// RAIDS
20+
LEVIATHAN("LEV", "2693136602", ActivityMode.RAID),
21+
EATER_OF_WORLDS("EOW", "3089205900", ActivityMode.RAID),
22+
SPIRE_OF_STARS("SOS", "119944200", ActivityMode.RAID),
23+
24+
LAST_WISH("LW", "2122313384", ActivityMode.RAID),
25+
SCOURGE_OF_THE_PAST("SOTP", "548750096", ActivityMode.RAID),
26+
CROWN_OF_SORROW("COS", "3333172150", ActivityMode.RAID),
27+
28+
GARDEN_OF_SALVATION("GOS", "8155984757", ActivityMode.RAID),
29+
30+
DEEP_STONE_CRYPT("DSC", "910380154", ActivityMode.RAID),
31+
VAULT_OF_GLASS("VOG", "", ActivityMode.RAID);
32+
33+
private String identifier;
34+
private String hash;
35+
private ActivityMode mode;
36+
37+
ActivityIdentifier(String identifier, String hash, ActivityMode mode) {
38+
this.identifier = identifier;
39+
this.hash = hash;
40+
this.mode = mode;
41+
}
42+
43+
public String getIdentifier() {
44+
return identifier;
45+
}
46+
47+
/**
48+
* Get the directorActivityHash of the Activity
49+
* Can be used to compare different activities
50+
*/
51+
public String getHash() {
52+
return hash;
53+
}
54+
55+
public ActivityMode getMode() { return mode; }
56+
57+
public static ActivityIdentifier fromShorthand(String shortHand) {
58+
for(ActivityIdentifier activityIdentifier : ActivityIdentifier.values()) {
59+
if(activityIdentifier.getIdentifier().equals(shortHand)) {
60+
return activityIdentifier;
61+
}
62+
}
63+
64+
return null;
65+
}
66+
}

src/main/java/material/stats/ActivityInfo.java renamed to src/main/java/material/stats/activities/ActivityInfo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
77
*/
88

9-
package material.stats;
9+
package material.stats.activities;
1010

1111
import com.google.gson.JsonObject;
1212
import material.manifest.ManifestEntityTypes;

src/main/java/material/stats/ActivityMode.java renamed to src/main/java/material/stats/activities/ActivityMode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
77
*/
88

9-
package material.stats;
9+
package material.stats.activities;
1010

1111
/**
1212
* A list of activity mode numbers according to bungie.net

src/main/java/material/stats/ActivityParticipant.java renamed to src/main/java/material/stats/activities/ActivityParticipant.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
77
*/
88

9-
package material.stats;
9+
package material.stats.activities;
1010

1111
import com.google.gson.JsonObject;
1212
import material.user.BungieUser;

src/main/java/material/stats/UserStats.java renamed to src/main/java/material/stats/character/UserStats.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* GitHub -> https://github.com/dec4234/JavaDestinyAPI
77
*/
88

9-
package material.stats;
9+
package material.stats.character;
1010

1111
import com.google.gson.JsonObject;
1212
import material.user.BungieUser;

src/main/java/material/user/BungieUser.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
import com.google.gson.JsonElement;
1313
import com.google.gson.JsonObject;
1414
import material.clan.Clan;
15-
import material.stats.ActivityInfo;
15+
import material.stats.activities.ActivityInfo;
1616
import utils.HttpUtils;
1717
import utils.StringUtils;
1818

1919
import java.time.temporal.ChronoUnit;
2020
import java.util.ArrayList;
2121
import java.util.Date;
2222
import java.util.List;
23-
import java.util.concurrent.CompletableFuture;
24-
import java.util.concurrent.ExecutionException;
2523

2624
public class BungieUser {
2725

src/main/java/material/user/DestinyCharacter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313
import com.google.gson.JsonObject;
1414
import material.inventory.DestinyItem;
1515
import material.manifest.ManifestEntityTypes;
16-
import material.stats.Activity;
16+
import material.stats.activities.Activity;
1717
import utils.HttpUtils;
1818
import utils.StringUtils;
1919
import utils.framework.ContentFramework;
20-
import utils.framework.ContentInterface;
2120

2221
import java.util.ArrayList;
2322
import java.util.Date;

0 commit comments

Comments
 (0)