Skip to content

Commit 044f861

Browse files
authored
Add files via upload
1 parent b1f0cf8 commit 044f861

18 files changed

Lines changed: 612 additions & 108 deletions

src/main/java/com/sn1pe2win/DestinyEntityObjects/ActivityDetails.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,11 @@ public boolean isPrivate() {
5050
public MembershipType getMembershipType() {
5151
return MembershipType.of(object.getAsJsonPrimitive("membershipType").getAsShort());
5252
}
53+
54+
public boolean isMode(int mode) {
55+
for(int m : getModes()) {
56+
if(m == mode) return true;
57+
}
58+
return false;
59+
}
5360
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.sn1pe2win.DestinyEntityObjects;
2+
3+
import com.google.gson.JsonObject;
4+
import com.sn1pe2win.core.DestinyEntity;
5+
import com.sn1pe2win.core.Response;
6+
import com.sn1pe2win.definitions.DestinyActivityDefinition;
7+
8+
public class AvailableActivities extends DestinyEntity {
9+
10+
JsonObject object;
11+
12+
@Override
13+
public JsonObject getRawJson() {
14+
return object;
15+
}
16+
17+
@Override
18+
public void parse(JsonObject object) {
19+
this.object = object;
20+
}
21+
22+
public long getActivityHash() {
23+
return object.getAsJsonPrimitive("activityHash").getAsLong();
24+
}
25+
26+
@SuppressWarnings("unchecked")
27+
public Response<DestinyActivityDefinition> getActivity() {
28+
return (Response<DestinyActivityDefinition>) new DestinyActivityDefinition(getActivityHash()).getAsResponse();
29+
}
30+
31+
public boolean isNew() {
32+
return object.getAsJsonPrimitive("isNew").getAsBoolean();
33+
}
34+
35+
public boolean canLead() {
36+
return object.getAsJsonPrimitive("canLead").getAsBoolean();
37+
}
38+
39+
public boolean canJoin() {
40+
return object.getAsJsonPrimitive("canJoin").getAsBoolean();
41+
}
42+
43+
public boolean isCompleted() {
44+
return object.getAsJsonPrimitive("isCompleted").getAsBoolean();
45+
}
46+
47+
public boolean isVisible() {
48+
return object.getAsJsonPrimitive("isVisible").getAsBoolean();
49+
}
50+
51+
public int getDisplayLevel() {
52+
return object.getAsJsonPrimitive("displayLevel").getAsInt();
53+
}
54+
55+
public int getRecommendetLight() {
56+
return object.getAsJsonPrimitive("recommendedLight").getAsInt();
57+
}
58+
59+
public int getDifficultyTier() {
60+
return object.getAsJsonPrimitive("difficultyTier").getAsInt();
61+
}
62+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.sn1pe2win.DestinyEntityObjects;
2+
3+
import com.google.gson.JsonObject;
4+
import com.sn1pe2win.core.DestinyEntity;
5+
6+
public class InfusionProcess extends DestinyEntity {
7+
8+
JsonObject object;
9+
10+
@Override
11+
public JsonObject getRawJson() {
12+
return object;
13+
}
14+
15+
@Override
16+
public void parse(JsonObject object) {
17+
this.object = object;
18+
}
19+
20+
public float getBaseQualityTransferRatio() {
21+
return object.getAsJsonPrimitive("baseQualityTransferRatio").getAsFloat();
22+
}
23+
24+
public float getMinimumQualityIncrement() {
25+
return object.getAsJsonPrimitive("minimumQualityIncrement").getAsFloat();
26+
}
27+
28+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.sn1pe2win.DestinyEntityObjects;
2+
3+
import com.google.gson.JsonObject;
4+
import com.sn1pe2win.core.DestinyEntity;
5+
import com.sn1pe2win.core.Response;
6+
import com.sn1pe2win.definitions.DestinyDestinationDefinition;
7+
8+
public class LocationRelease extends DestinyEntity {
9+
10+
JsonObject object;
11+
12+
public static final int NAV_POINT_TYPE_INACTIVE = 0;
13+
14+
@Override
15+
public JsonObject getRawJson() {
16+
return object;
17+
}
18+
19+
@Override
20+
public void parse(JsonObject object) {
21+
this.object = object;
22+
}
23+
24+
public DisplayProperties getDisplayProperties() {
25+
return cast(object.getAsJsonObject("displayProperties"), DisplayProperties.class);
26+
}
27+
28+
public int getSpawnPoint() {
29+
return object.getAsJsonPrimitive("spawnPoint").getAsInt();
30+
}
31+
32+
public long getDestinationHash() {
33+
return object.getAsJsonPrimitive("destinationHash").getAsLong();
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
public Response<DestinyDestinationDefinition> getDestination() {
38+
return (Response<DestinyDestinationDefinition>) new DestinyDestinationDefinition(getDestinationHash()).getAsResponse();
39+
}
40+
41+
public long getActivityGraphHash() {
42+
return object.getAsJsonPrimitive("activityGraphHash").getAsLong();
43+
}
44+
45+
public long getActivityGraphNodeHash() {
46+
return object.getAsJsonPrimitive("activityGraphNodeHash").getAsLong();
47+
}
48+
49+
public int getActivityBubbleName() {
50+
return object.getAsJsonPrimitive("activityBubbleName").getAsInt();
51+
}
52+
53+
public int getActivityPathBundle() {
54+
return object.getAsJsonPrimitive("activityPathBundle").getAsInt();
55+
}
56+
57+
public int getActivityPathDestination() {
58+
return object.getAsJsonPrimitive("activityPathBundle").getAsInt();
59+
}
60+
61+
public int getNavPointType() {
62+
return object.getAsJsonPrimitive("activityPathBundle").getAsInt();
63+
}
64+
65+
public int[] getWorldPosition() {
66+
return optionalIntArray(object.getAsJsonArray("worldPosition"), new int[] {});
67+
}
68+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.sn1pe2win.DestinyEntityObjects;
2+
3+
import java.util.List;
4+
5+
import com.google.gson.JsonObject;
6+
import com.sn1pe2win.core.DestinyEntity;
7+
import com.sn1pe2win.core.Response;
8+
import com.sn1pe2win.definitions.DestinyActivityDefinition;
9+
import com.sn1pe2win.definitions.OptionalValue;
10+
11+
public class MilestoneActivity extends DestinyEntity {
12+
13+
JsonObject object;
14+
15+
@Override
16+
public JsonObject getRawJson() {
17+
return object;
18+
}
19+
20+
@Override
21+
public void parse(JsonObject object) {
22+
this.object = object;
23+
}
24+
25+
public long getActivityHash() {
26+
return object.getAsJsonPrimitive("activityHash").getAsLong();
27+
}
28+
29+
@SuppressWarnings("unchecked")
30+
public Response<DestinyActivityDefinition> getActivity() {
31+
return (Response<DestinyActivityDefinition>) new DestinyActivityDefinition(getActivityHash()).getAsResponse();
32+
}
33+
34+
@OptionalValue
35+
public MilestoneActivityChallenge[] getChallenges() {
36+
List<MilestoneActivityChallenge> a = castArray(object.getAsJsonArray("challenges"), MilestoneActivityChallenge.class);
37+
return a.toArray(new MilestoneActivityChallenge[a.size()]);
38+
}
39+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.sn1pe2win.DestinyEntityObjects;
2+
3+
import com.google.gson.JsonObject;
4+
import com.sn1pe2win.core.DestinyEntity;
5+
6+
public class MilestoneActivityChallenge extends DestinyEntity {
7+
8+
JsonObject object;
9+
10+
@Override
11+
public JsonObject getRawJson() {
12+
return object;
13+
}
14+
15+
@Override
16+
public void parse(JsonObject object) {
17+
this.object = object;
18+
}
19+
20+
public long getChallengeObjectiveHash() {
21+
return object.getAsJsonPrimitive("challengeObjectiveHash").getAsLong();
22+
}
23+
24+
public long getCompleteUnlockHash() {
25+
return object.getAsJsonPrimitive("completeUnlockHash").getAsLong();
26+
}
27+
}

src/main/java/com/sn1pe2win/DestinyEntityObjects/Profile.java

Lines changed: 98 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@
1212
import com.sn1pe2win.core.DestinyDateFormat;
1313
import com.sn1pe2win.core.DestinyEntity;
1414
import com.sn1pe2win.core.Response;
15+
import com.sn1pe2win.definitions.DestinyActivityDefinition;
16+
import com.sn1pe2win.definitions.DestinyActivityModeDefinition;
1517
import com.sn1pe2win.definitions.DestinyChecklistDefinition;
1618
import com.sn1pe2win.definitions.DestinyClassDefinition;
1719
import com.sn1pe2win.definitions.DestinyGenderDefinition;
1820
import com.sn1pe2win.definitions.DestinyRaceDefinition;
1921
import com.sn1pe2win.definitions.MembershipType;
22+
import com.sn1pe2win.definitions.OptionalValue;
2023
import com.sn1pe2win.endpoints.GetActivityHistory;
2124

2225
public interface Profile {
@@ -31,7 +34,8 @@ public enum ProfileSetType {
3134
PROFILE_PROGRESSION(104),
3235
PLATFORM_SILVER(105),
3336
CHARACTERS(200),
34-
CHARACTER_INVENTORY(201);
37+
CHARACTER_INVENTORY(201),
38+
CHARACTER_ACTIVITIES(204);
3539

3640
public final int components;
3741
private ProfileSetType(int components) {
@@ -436,7 +440,7 @@ public MembershipType getMembershipType() {
436440
}
437441

438442
public Date getDateLastPlayed() throws ParseException {
439-
return DestinyDateFormat.toDate(object.getAsJsonPrimitive("characterId").getAsString());
443+
return DestinyDateFormat.toDate(object.getAsJsonPrimitive("dateLastPlayed").getAsString());
440444
}
441445

442446
public int getMinutesPlayedLastSession() {
@@ -573,4 +577,96 @@ public CharacterInventory[] getCharacters() {
573577
return inv;
574578
}
575579
}
580+
581+
public class CharacterActivitiesComponent extends Component {
582+
583+
public class CharacterActivity extends DestinyEntity {
584+
585+
JsonObject object;
586+
private long characterId;
587+
588+
@Override
589+
public JsonObject getRawJson() {
590+
return object;
591+
}
592+
593+
@Override
594+
public void parse(JsonObject object) {
595+
this.object = object;
596+
}
597+
598+
public long getCharacterId() {
599+
return characterId;
600+
}
601+
602+
public Date getDateActivityStarted() {
603+
try {
604+
return DestinyDateFormat.toDate(object.getAsJsonPrimitive("dateActivityStarted").getAsString());
605+
} catch (ParseException e) {
606+
e.printStackTrace();
607+
return new Date();
608+
}
609+
}
610+
611+
public AvailableActivities[] getAvailableActivities() {
612+
List<AvailableActivities> l = castArray(object.getAsJsonArray("availableActivities"), AvailableActivities.class);
613+
return l.toArray(new AvailableActivities[l.size()]);
614+
}
615+
616+
public long getCurrentActivityHash() {
617+
return object.getAsJsonPrimitive("currentActivityHash").getAsLong();
618+
}
619+
620+
@SuppressWarnings("unchecked")
621+
public Response<DestinyActivityDefinition> getCurrentActivity() {
622+
return (Response<DestinyActivityDefinition>) new DestinyActivityDefinition(getCurrentActivityHash()).getAsResponse();
623+
}
624+
625+
public long getActivityModeHash() {
626+
return object.getAsJsonPrimitive("currentActivityModeHash").getAsLong();
627+
}
628+
629+
/**Optional, since the "Orbit" has no mode for some reason. The hash exists anyway, pointing nowhere*/
630+
@SuppressWarnings("unchecked")
631+
@OptionalValue
632+
public Response<DestinyActivityModeDefinition> getActivityMode() {
633+
return (Response<DestinyActivityModeDefinition>) new DestinyActivityModeDefinition(getActivityModeHash()).getAsResponse();
634+
}
635+
636+
public long getCurrentPlaylistActivityHash() {
637+
return object.getAsJsonPrimitive("currentPlaylistActivityHash").getAsLong();
638+
}
639+
640+
@SuppressWarnings("unchecked")
641+
public Response<DestinyActivityDefinition> getCurrentPlaylist() {
642+
return (Response<DestinyActivityDefinition>) new DestinyActivityDefinition(getCurrentPlaylistActivityHash()).getAsResponse();
643+
}
644+
}
645+
646+
@Override
647+
protected void parseData(JsonObject obj) {
648+
}
649+
650+
public CharacterActivity[] getCharacters() {
651+
Object[] set = data.entrySet().toArray();
652+
CharacterActivity[] inv = new CharacterActivity[set.length];
653+
654+
for(int i = 0; i < set.length; i++) {
655+
@SuppressWarnings("unchecked")
656+
Entry<String, JsonElement> entry = (Entry<String, JsonElement>) set[i];
657+
658+
inv[i] = new CharacterActivity();
659+
inv[i].characterId = Long.valueOf(entry.getKey());
660+
inv[i].parse(entry.getValue().getAsJsonObject());
661+
}
662+
return inv;
663+
}
664+
665+
public CharacterActivity getCharacter(long characterId) {
666+
for(CharacterActivity a : getCharacters()) {
667+
if(a.getCharacterId() == characterId) return a;
668+
}
669+
return null;
670+
}
671+
}
576672
}

src/main/java/com/sn1pe2win/DestinyEntityObjects/UserInfoCard.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.sn1pe2win.DestinyEntityObjects;
22

33
import com.google.gson.JsonObject;
4-
import com.sn1pe2win.DestinyEntityObjects.Profile.ProfileSetType;
54
import com.sn1pe2win.core.DestinyEntity;
65
import com.sn1pe2win.definitions.MembershipType;
76
import com.sn1pe2win.endpoints.GetProfile;
@@ -50,13 +49,13 @@ public String getDisplayName() {
5049
return displayName;
5150
}
5251

53-
public GetProfile loadProfile(ProfileSetType... components) {
54-
GetProfile getProfile = new GetProfile(membershipType, membershipId, components);
52+
public GetProfile loadProfile() {
53+
GetProfile getProfile = new GetProfile(membershipType, membershipId);
5554
return getProfile;
5655
}
5756

58-
public GetProfile loadProfile(String accessToken, ProfileSetType... components) {
59-
GetProfile getProfile = new GetProfile(accessToken, membershipType, membershipId, components);
57+
public GetProfile loadProfile(String accessToken) {
58+
GetProfile getProfile = new GetProfile(accessToken, membershipType, membershipId);
6059
return getProfile;
6160
}
6261
}

0 commit comments

Comments
 (0)