예제 #1
0
    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);
    }
예제 #2
0
    public void UpdateFriendshipStatus(string json)
    {
        FriendshipUpdateStatusMessage msg = JsonUtility.FromJson <FriendshipUpdateStatusMessage>(json);

        UpdateFriendshipStatus(msg);
    }