using System; using System.IO; using System.Threading; using System.Threading.Tasks; using Luski.net.Enums; using Luski.net.Interfaces; using Luski.Shared.PublicServers.V1.Enums; namespace Luski.net.Structures.Public; public class SocketChannelProfile : IUser { public PublicServer Server { get; init; } = default!; public long Id { get; init; } = default!; public string DisplayName { get; init; } = default!; public virtual UserStatus Status { get; init; } = UserStatus.Online; public PictureType PictureType { get; init; } = default!; public long[] Controllers { get; internal set; } = default!; internal Color Color { get; set; } = default!; public Task GetColor() { return Task.FromResult(Color); } public async Task GetAvatar(CancellationToken CancellationToken) { bool isc = System.IO.File.Exists(Server.Storage.GetStorageDirectory(StorageDirectory.ProfileAvatars) + Id.ToString()); if (!isc) await Server.GetFromServer($"socketchannelprofile/Avatar/{Id}", Server.Storage.GetStorageDirectory(StorageDirectory.ProfileAvatars) + Id.ToString(), CancellationToken); return Server.Storage.GetResourceStream(StorageDirectory.ProfileAvatars, Id.ToString()); } public Task GetUserKeys(CancellationToken CancellationToken) { throw new NotImplementedException(); } }