Luski.Net/Luski.net/Structures/Public/SocketChannelProfile.cs

38 lines
1.4 KiB
C#

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<Color> GetColor()
{
return Task.FromResult(Color);
}
public async Task<Stream> 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<PublicKeyInfo[]> GetUserKeys(CancellationToken CancellationToken)
{
throw new NotImplementedException();
}
}