INetworkFriendSystem API

Scripts/Abstractions/INetworkFriendSystem.cs

The INetworkFriendSystem interface is the contract that each network backend implementation must fulfill. This allows the FriendManager to work with any networking solution through adapter classes.

Purpose

This interface implements the Adapter Pattern, allowing the core friend system to work with any networking backend:

  • PhotonPunNativeFriendSystem - PUN's built-in friends
  • PhotonFusionNativeFriendSystem - Fusion's built-in friends
  • CustomBackendFriendSystem - HTTP/WebSocket to custom server

Properties

PropertyTypeDescription
BackendTypeNetworkBackendTypeWhich backend this implements
IsUsingNativeImplementationboolNative vs custom server
IsConnectedboolConnection status

Events

EventSignatureDescription
OnFriendsListUpdatedAction<IReadOnlyList<Friend>>Friend list changed
OnFriendRequestReceivedAction<FriendRequest>New request arrived
OnFriendRequestsUpdatedAction<IReadOnlyList<FriendRequest>>Requests list changed
OnFriendStatusChangedAction<Friend>Friend status changed
OnInvitationReceivedAction<FriendInvitation>Invitation received

Methods

Initialization

void Initialize(string userId)

Set up the network system with the current user's ID.

Friend Operations

MethodDescription
RefreshFriendList()Fetch latest friends
RefreshFriendRequests()Fetch latest requests
SendFriendRequest(userId, callback)Send request
AcceptFriendRequest(requestId, callback)Accept request
RejectFriendRequest(requestId, callback)Reject request
CancelFriendRequest(requestId, callback)Cancel outgoing
RemoveFriend(userId, callback)Remove friend

Block Operations

MethodDescription
BlockUser(userId, callback)Block user
UnblockUser(userId, callback)Unblock user

Room Operations

MethodDescription
GetFriendRoomInfo(userId, callback)Get friend's room info
JoinFriendRoom(userId, callback)Join friend's room
InviteFriend(userId, message, customData, callback)Send invitation