Add option to toggle friend requests
This commit is contained in:
parent
a9c0e24378
commit
fc947f3145
@ -12,6 +12,11 @@ public interface FlexLibAdapter {
|
|||||||
*/
|
*/
|
||||||
public default void onWebSocketDisconnect() {}
|
public default void onWebSocketDisconnect() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when player friend requests are toggle on/off
|
||||||
|
*/
|
||||||
|
public default void onFriendRequestsToggle(final String player, final boolean newValue) {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when player friend list or friend requests are updated
|
* Called when player friend list or friend requests are updated
|
||||||
* @param player
|
* @param player
|
||||||
|
@ -17,6 +17,7 @@ public final class PlayerFriends {
|
|||||||
private final Set<UUID> friends = new HashSet<>();
|
private final Set<UUID> friends = new HashSet<>();
|
||||||
private final Set<UUID> incomingFriendRequests = new HashSet<>();
|
private final Set<UUID> incomingFriendRequests = new HashSet<>();
|
||||||
private final Set<UUID> outcomingFriendRequests = new HashSet<>();
|
private final Set<UUID> outcomingFriendRequests = new HashSet<>();
|
||||||
|
private boolean friendRequestsEnabled;
|
||||||
private long lastUsed = System.currentTimeMillis();
|
private long lastUsed = System.currentTimeMillis();
|
||||||
|
|
||||||
protected PlayerFriends(final GraphQLApi graphQLApi, final String token, final String player) throws IOException {
|
protected PlayerFriends(final GraphQLApi graphQLApi, final String token, final String player) throws IOException {
|
||||||
@ -36,8 +37,9 @@ public final class PlayerFriends {
|
|||||||
final Optional<JsonObject> result = this.graphQLApi.execute(
|
final Optional<JsonObject> result = this.graphQLApi.execute(
|
||||||
"query{" +
|
"query{" +
|
||||||
"player(uuid:\"" + this.player + "\"){" +
|
"player(uuid:\"" + this.player + "\"){" +
|
||||||
"friends{uuid}" +
|
"acceptFriendRequests," +
|
||||||
"incomingFriendRequests(token:\"" + this.token + "\"){uuid}" +
|
"friends{uuid}," +
|
||||||
|
"incomingFriendRequests(token:\"" + this.token + "\"){uuid}," +
|
||||||
"outcomingFriendRequests(token:\"" + this.token + "\"){uuid}" +
|
"outcomingFriendRequests(token:\"" + this.token + "\"){uuid}" +
|
||||||
"}" +
|
"}" +
|
||||||
"}"
|
"}"
|
||||||
@ -48,6 +50,8 @@ public final class PlayerFriends {
|
|||||||
|
|
||||||
final JsonObject playerObject = result.get().get("player").getAsJsonObject();
|
final JsonObject playerObject = result.get().get("player").getAsJsonObject();
|
||||||
|
|
||||||
|
this.friendRequestsEnabled = playerObject.get("acceptFriendRequests").getAsBoolean();
|
||||||
|
|
||||||
this.friends.clear();
|
this.friends.clear();
|
||||||
for (final JsonElement element : playerObject.get("friends").getAsJsonArray()) {
|
for (final JsonElement element : playerObject.get("friends").getAsJsonArray()) {
|
||||||
this.friends.add(UUID.fromString(element.getAsJsonObject().get("uuid").getAsString()));
|
this.friends.add(UUID.fromString(element.getAsJsonObject().get("uuid").getAsString()));
|
||||||
@ -93,6 +97,15 @@ public final class PlayerFriends {
|
|||||||
return this.outcomingFriendRequests;
|
return this.outcomingFriendRequests;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if friend requests is enabled
|
||||||
|
* @return is friend requests enabled
|
||||||
|
*/
|
||||||
|
public boolean isFriendRequestsEnabled() {
|
||||||
|
this.lastUsed = System.currentTimeMillis();
|
||||||
|
return friendRequestsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create new friend request
|
* Create new friend request
|
||||||
* @param player from
|
* @param player from
|
||||||
|
@ -48,6 +48,14 @@ public final class WebSocketClient {
|
|||||||
public void onTextMessage(final WebSocket ws, final String message) {
|
public void onTextMessage(final WebSocket ws, final String message) {
|
||||||
final String[] args = message.split(" ");
|
final String[] args = message.split(" ");
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
|
case "FRIEND_REQUEST_TOGGLE":
|
||||||
|
if (args.length == 3) {
|
||||||
|
for (final FlexLibAdapter listener : flexLib.getEventListeners()) {
|
||||||
|
listener.onFriendRequestsToggle(args[1], args[2].equals("TRUE"));
|
||||||
|
listener.onFriendsUpdate(args[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "FRIEND_REQUEST":
|
case "FRIEND_REQUEST":
|
||||||
if (args.length == 3) {
|
if (args.length == 3) {
|
||||||
for (final FlexLibAdapter listener : flexLib.getEventListeners()) {
|
for (final FlexLibAdapter listener : flexLib.getEventListeners()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user