IFriendManager API

Scripts/Abstractions/IFriendManager.cs

The IFriendManager interface defines all friend management operations. FriendManager is the primary implementation, but this interface allows for custom implementations if needed.

Properties

PropertyTypeDescription
CurrentUserIdstringThe ID of the logged-in user
FriendsIReadOnlyList<Friend>Current friends list
PendingRequestsIReadOnlyList<FriendRequest>Pending friend requests
BlockedUsersIReadOnlyList<BlockEntry>Blocked users list
BackendTypeNetworkBackendTypeCurrent network backend
IsUsingNativeImplementationboolNative vs custom server

Events

EventSignatureDescription
OnFriendsListUpdatedAction<IReadOnlyList<Friend>>Fires when friend list changes
OnFriendRequestReceivedAction<FriendRequest>New incoming request
OnFriendRequestAcceptedAction<Friend>Request was accepted
OnFriendRequestRejectedAction<string>Request rejected (userId)
OnFriendRequestCancelledAction<FriendRequest>Request was cancelled
OnFriendStatusChangedAction<Friend>Friend's status changed
OnFriendAddedAction<Friend>New friend added
OnFriendRemovedAction<Friend>Friend removed
OnUserBlockedAction<BlockEntry>User blocked
OnUserUnblockedAction<string>User unblocked (userId)
OnInvitationReceivedAction<FriendInvitation>Invitation received
OnPendingRequestsRefreshedAction<IReadOnlyList<FriendRequest>>Requests list updated

Methods

Friend Operations

MethodDescription
RefreshFriendList()Manually refresh friend list from server
SendFriendRequest(userId, callback)Send friend request to user
AddFriend(userId, callback)Directly add friend (if backend allows)
AcceptFriendRequest(requestId, callback)Accept a pending request
RejectFriendRequest(requestId, callback)Reject a pending request
CancelFriendRequest(requestId, callback)Cancel your outgoing request
RemoveFriend(userId, callback)Remove a friend

Block Operations

MethodDescription
BlockUser(userId, callback)Block a user
UnblockUser(userId, callback)Unblock a user
RefreshBlockedUsers()Refresh block list

Invitation Operations

MethodDescription
InviteFriend(userId, message, customData, callback)Send game invitation
AcceptInvitation(invitationId, callback)Accept invitation
DeclineInvitation(invitationId, callback)Decline invitation
RefreshInvitations()Refresh invitations list

Callback Format

All methods with callbacks use the same format:

Action<bool success, string errorMessage>

Example:

friendManager.SendFriendRequest("user123", (success, error) => {
    if (success) {
        Debug.Log("Request sent!");
    } else {
        Debug.LogError($"Error: {error}");
    }
});