Files
LuaCsForBarotraumaEP/Libraries/BarotraumaLibs/EosInterface/Friends/Friends.cs
2024-03-28 18:34:33 +02:00

62 lines
2.2 KiB
C#

using System.Collections.Immutable;
using System.Threading.Tasks;
using Barotrauma.Networking;
namespace Barotrauma;
public static partial class EosInterface
{
public static class Friends
{
private static Implementation? LoadedImplementation => Core.LoadedImplementation;
public enum GetFriendsError
{
EosNotInitialized,
EgsFriendsQueryTimedOut,
EgsFriendsQueryFailed,
UserInfoQueryTimedOut,
UserInfoQueryFailed,
CopyUserInfoFailed,
DisplayNameIsEmpty,
EgsPresenceQueryTimedOut,
EgsPresenceQueryFailed,
CopyPresenceFailed,
UnhandledErrorCondition
}
public static async Task<Result<EgsFriend, GetFriendsError>> GetFriend(
EpicAccountId selfEaid,
EpicAccountId friendEaid)
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.GetFriend(selfEaid, friendEaid)
: Result.Failure(GetFriendsError.EosNotInitialized);
public static async Task<Result<ImmutableArray<EgsFriend>, GetFriendsError>> GetFriends(
EpicAccountId epicAccountId)
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.GetFriends(epicAccountId)
: Result.Failure(GetFriendsError.EosNotInitialized);
public static async Task<Result<EgsFriend, GetFriendsError>> GetSelfUserInfo(EpicAccountId epicAccountId)
=> LoadedImplementation.IsInitialized()
? await LoadedImplementation.GetSelfUserInfo(epicAccountId)
: Result.Failure(GetFriendsError.EosNotInitialized);
}
internal abstract partial class Implementation
{
public abstract Task<Result<EgsFriend, Friends.GetFriendsError>> GetFriend(
EpicAccountId selfEaid,
EpicAccountId friendEaid);
public abstract Task<Result<ImmutableArray<EgsFriend>, Friends.GetFriendsError>> GetFriends(
EpicAccountId epicAccountId);
public abstract Task<Result<EgsFriend, Friends.GetFriendsError>> GetSelfUserInfo(EpicAccountId epicAccountId);
}
}