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

34 lines
1.1 KiB
C#
Raw Normal View History

using System.Collections.Generic;
2024-03-31 23:57:12 -04:00
using System.Threading;
using System.Threading.Tasks;
2024-03-20 23:18:34 -04:00
using Luski.Shared.PublicServers.V1.Enums;
namespace Luski.net.Structures.Public;
public class Role
{
public required PublicServer Server { get; init; } = default!;
public required long ID { get; init; } = default!;
public required string Name { get; init; } = default!;
public required int Index { get; init; } = default!;
public required Color Color { get; init; } = default!;
public required string Description { get; init; } = default!;
public required string DisplayName { get; init; } = default!;
2024-03-20 23:18:34 -04:00
public required ServerPermission ServerPermissions { get; init; } = default!;
public required long[] MembersListID { get; init; } = default!;
private List<SocketUser>? RawUsers = null;
2024-03-31 23:57:12 -04:00
public async Task<SocketUser[]> GetMembers()
{
if (RawUsers is null)
{
2024-03-31 23:57:12 -04:00
RawUsers = new();
foreach (long m in MembersListID)
{
RawUsers.Add(await Server.GetUser<SocketUser>(m, CancellationToken.None));
}
}
2024-03-31 23:57:12 -04:00
return RawUsers!.ToArray();
}
}