public void UpdateFriendshipStatus(FriendshipUpdateStatusMessage msg) { if (!friends.ContainsKey(msg.userId)) { friends.Add(msg.userId, new UserStatus() { }); } switch (msg.action) { case FriendshipAction.NONE: break; case FriendshipAction.APPROVED: friends[msg.userId].friendshipStatus = FriendshipStatus.FRIEND; break; case FriendshipAction.REJECTED: friends[msg.userId].friendshipStatus = FriendshipStatus.NONE; break; case FriendshipAction.CANCELLED: friends[msg.userId].friendshipStatus = FriendshipStatus.NONE; break; case FriendshipAction.REQUESTED_FROM: friends[msg.userId].friendshipStatus = FriendshipStatus.REQUESTED_FROM; break; case FriendshipAction.REQUESTED_TO: friends[msg.userId].friendshipStatus = FriendshipStatus.REQUESTED_TO; break; case FriendshipAction.DELETED: friends[msg.userId].friendshipStatus = FriendshipStatus.NONE; break; } if (VERBOSE) { Debug.Log($"Change friend status of {msg.userId} to {friends[msg.userId].friendshipStatus}"); } if (friends[msg.userId].friendshipStatus == FriendshipStatus.NONE) { friends.Remove(msg.userId); } OnUpdateFriendship?.Invoke(msg.userId, msg.action); }
public void UpdateFriendshipStatus(string json) { FriendshipUpdateStatusMessage msg = JsonUtility.FromJson <FriendshipUpdateStatusMessage>(json); UpdateFriendshipStatus(msg); }