Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaClient/ClientSource/Social/FriendProviders/FriendProvider.cs
2024-03-28 18:34:33 +02:00

25 lines
850 B
C#

#nullable enable
using System.Collections.Immutable;
using System.Threading.Tasks;
using Barotrauma.Networking;
namespace Barotrauma
{
abstract class FriendProvider
{
public async Task<Option<FriendInfo>> RetrieveFriendWithAvatar(AccountId id, int size)
{
var friendOption = await RetrieveFriend(id);
if (!friendOption.TryUnwrap(out var friend)) { return Option.None; }
friend.Avatar = await RetrieveAvatar(friend, size);
return Option.Some(friend);
}
public abstract Task<Option<FriendInfo>> RetrieveFriend(AccountId id);
public abstract Task<ImmutableArray<FriendInfo>> RetrieveFriends();
public abstract Task<Option<Sprite>> RetrieveAvatar(FriendInfo friend, int avatarSize);
public abstract Task<string> GetSelfUserName();
}
}