[Feature] Add support for Guild Member Flags (#2571)

* implement `GuildUserFlags`

Co-authored-by: Casmir <68127614+csmir@users.noreply.github.com>
This commit is contained in:
Misha133
2023-01-23 21:44:34 +03:00
committed by GitHub
parent 94996e7331
commit 7d8d6ec1a6
11 changed files with 80 additions and 1 deletions

View File

@@ -25,5 +25,8 @@ namespace Discord.API
public Optional<DateTimeOffset?> PremiumSince { get; set; }
[JsonProperty("communication_disabled_until")]
public Optional<DateTimeOffset?> TimedOutUntil { get; set; }
[JsonProperty("flags")]
public GuildUserFlags Flags { get; set; }
}
}

View File

@@ -18,5 +18,8 @@ namespace Discord.API.Rest
public Optional<ulong?> ChannelId { get; set; }
[JsonProperty("communication_disabled_until")]
public Optional<DateTimeOffset?> TimedOutUntil { get; set; }
[JsonProperty("flags")]
public Optional<GuildUserFlags> Flags { get; set; }
}
}

View File

@@ -38,6 +38,10 @@ namespace Discord.Rest
public ulong GuildId { get; }
/// <inheritdoc />
public bool? IsPending { get; private set; }
/// <inheritdoc />
public GuildUserFlags Flags { get; private set; }
/// <inheritdoc />
public int Hierarchy
{
@@ -114,6 +118,7 @@ namespace Discord.Rest
_timedOutTicks = model.TimedOutUntil.Value?.UtcTicks;
if (model.Pending.IsSpecified)
IsPending = model.Pending.Value;
Flags = model.Flags;
}
private void UpdateRoles(ulong[] roleIds)
{

View File

@@ -71,6 +71,8 @@ namespace Discord.Rest
DateTimeOffset? IGuildUser.TimedOutUntil => null;
/// <inheritdoc />
GuildPermissions IGuildUser.GuildPermissions => GuildPermissions.Webhook;
/// <inheritdoc />
GuildUserFlags IGuildUser.Flags => GuildUserFlags.None;
/// <inheritdoc />
ChannelPermissions IGuildUser.GetPermissions(IGuildChannel channel) => Permissions.ToChannelPerms(channel, GuildPermissions.Webhook.RawValue);

View File

@@ -40,7 +40,8 @@ namespace Discord.Rest
Deaf = args.Deaf,
Mute = args.Mute,
Nickname = args.Nickname,
TimedOutUntil = args.TimedOutUntil
TimedOutUntil = args.TimedOutUntil,
Flags = args.Flags
};
if (args.Channel.IsSpecified)