bannerz W (#2987)
This commit is contained in:
@@ -55,6 +55,14 @@ namespace Discord
|
|||||||
return $"{DiscordConfig.CDNUrl}guilds/{guildId}/users/{userId}/avatars/{avatarId}.{extension}?size={size}";
|
return $"{DiscordConfig.CDNUrl}guilds/{guildId}/users/{userId}/avatars/{avatarId}.{extension}?size={size}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetGuildUserBannerUrl(ulong userId, ulong guildId, string bannerId, ushort size, ImageFormat format)
|
||||||
|
{
|
||||||
|
if (bannerId == null)
|
||||||
|
return null;
|
||||||
|
var extension = FormatToExtension(format, bannerId);
|
||||||
|
return $"{DiscordConfig.CDNUrl}guilds/{guildId}/users/{userId}/banners/{bannerId}.{extension}?size={size}";
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns a user banner URL.
|
/// Returns a user banner URL.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ namespace Discord
|
|||||||
/// If the user also does not have a regular avatar, this will be <see langword="null"/>.
|
/// If the user also does not have a regular avatar, this will be <see langword="null"/>.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
string DisplayAvatarId { get; }
|
string DisplayAvatarId { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the guild specific avatar for this user.
|
/// Gets the guild specific avatar for this user.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -46,6 +47,15 @@ namespace Discord
|
|||||||
/// The users guild avatar hash if they have one; otherwise <see langword="null"/>.
|
/// The users guild avatar hash if they have one; otherwise <see langword="null"/>.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
string GuildAvatarId { get; }
|
string GuildAvatarId { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the guild specific banner for this user.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>
|
||||||
|
/// The user's guild banner hash if they have one; otherwise <see langword="null"/>.
|
||||||
|
/// </returns>
|
||||||
|
string GuildBannerHash { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the guild-level permissions for this user.
|
/// Gets the guild-level permissions for this user.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -147,6 +157,17 @@ namespace Discord
|
|||||||
/// A string representing the user's guild-specific avatar URL; <see langword="null"/> if the user has no guild avatar set.
|
/// A string representing the user's guild-specific avatar URL; <see langword="null"/> if the user has no guild avatar set.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
string GetGuildAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128);
|
string GetGuildAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the guild-specific banner URL for this user, if it is set.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="format">The format of the image.</param>
|
||||||
|
/// <param name="size">The size of the image that matches any power of two, ranging from 16 to 2048.</param>
|
||||||
|
/// <returns>
|
||||||
|
/// A string representing the user's guild-specific banner URL; <see langword="null"/> if the user has no guild banner set.
|
||||||
|
/// </returns>
|
||||||
|
string GetGuildBannerUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Kicks this user from this guild.
|
/// Kicks this user from this guild.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -28,5 +28,8 @@ namespace Discord.API
|
|||||||
|
|
||||||
[JsonProperty("flags")]
|
[JsonProperty("flags")]
|
||||||
public GuildUserFlags Flags { get; set; }
|
public GuildUserFlags Flags { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty("banner")]
|
||||||
|
public Optional<string> Banner { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ namespace Discord.Rest
|
|||||||
public string DisplayAvatarId => GuildAvatarId ?? AvatarId;
|
public string DisplayAvatarId => GuildAvatarId ?? AvatarId;
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public string GuildAvatarId { get; private set; }
|
public string GuildAvatarId { get; private set; }
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public string GuildBannerHash { get; private set; }
|
||||||
|
|
||||||
internal IGuild Guild { get; private set; }
|
internal IGuild Guild { get; private set; }
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public bool IsDeafened { get; private set; }
|
public bool IsDeafened { get; private set; }
|
||||||
@@ -122,6 +126,8 @@ namespace Discord.Rest
|
|||||||
_timedOutTicks = model.TimedOutUntil.Value?.UtcTicks;
|
_timedOutTicks = model.TimedOutUntil.Value?.UtcTicks;
|
||||||
if (model.Pending.IsSpecified)
|
if (model.Pending.IsSpecified)
|
||||||
IsPending = model.Pending.Value;
|
IsPending = model.Pending.Value;
|
||||||
|
if (model.Banner.IsSpecified)
|
||||||
|
GuildBannerHash = model.Banner.Value;
|
||||||
Flags = model.Flags;
|
Flags = model.Flags;
|
||||||
}
|
}
|
||||||
private void UpdateRoles(ulong[] roleIds)
|
private void UpdateRoles(ulong[] roleIds)
|
||||||
@@ -200,6 +206,10 @@ namespace Discord.Rest
|
|||||||
public string GetGuildAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
public string GetGuildAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
=> CDN.GetGuildUserAvatarUrl(Id, GuildId, GuildAvatarId, size, format);
|
=> CDN.GetGuildUserAvatarUrl(Id, GuildId, GuildAvatarId, size, format);
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public string GetGuildBannerUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
|
=> CDN.GetGuildUserBannerUrl(Id, GuildId, GuildBannerHash, size, format);
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
=> GetGuildAvatarUrl(format, size) ?? base.GetDisplayAvatarUrl(format, size);
|
=> GetGuildAvatarUrl(format, size) ?? base.GetDisplayAvatarUrl(format, size);
|
||||||
|
|||||||
@@ -60,8 +60,12 @@ namespace Discord.Rest
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
string IGuildUser.GuildAvatarId => null;
|
string IGuildUser.GuildAvatarId => null;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
string IGuildUser.GuildBannerHash => null;
|
||||||
|
/// <inheritdoc />
|
||||||
string IGuildUser.GetGuildAvatarUrl(ImageFormat format, ushort size) => null;
|
string IGuildUser.GetGuildAvatarUrl(ImageFormat format, ushort size) => null;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
string IGuildUser.GetGuildBannerUrl(ImageFormat format, ushort size) => null;
|
||||||
|
/// <inheritdoc />
|
||||||
bool? IGuildUser.IsPending => null;
|
bool? IGuildUser.IsPending => null;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
int IGuildUser.Hierarchy => 0;
|
int IGuildUser.Hierarchy => 0;
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ namespace Discord.WebSocket
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override string GlobalName { get { return GlobalUser.GlobalName; } internal set { GlobalUser.GlobalName = value; } }
|
public override string GlobalName { get { return GlobalUser.GlobalName; } internal set { GlobalUser.GlobalName = value; } }
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public string GuildBannerHash { get; private set; }
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public GuildPermissions GuildPermissions => new GuildPermissions(Permissions.ResolveGuild(Guild, this));
|
public GuildPermissions GuildPermissions => new GuildPermissions(Permissions.ResolveGuild(Guild, this));
|
||||||
internal override SocketPresence Presence { get; set; }
|
internal override SocketPresence Presence { get; set; }
|
||||||
@@ -185,6 +188,8 @@ namespace Discord.WebSocket
|
|||||||
_timedOutTicks = model.TimedOutUntil.Value?.UtcTicks;
|
_timedOutTicks = model.TimedOutUntil.Value?.UtcTicks;
|
||||||
if (model.Pending.IsSpecified)
|
if (model.Pending.IsSpecified)
|
||||||
IsPending = model.Pending.Value;
|
IsPending = model.Pending.Value;
|
||||||
|
if (model.Banner.IsSpecified)
|
||||||
|
GuildBannerHash = model.Banner.Value;
|
||||||
|
|
||||||
Flags = model.Flags;
|
Flags = model.Flags;
|
||||||
}
|
}
|
||||||
@@ -263,6 +268,10 @@ namespace Discord.WebSocket
|
|||||||
public string GetGuildAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
public string GetGuildAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
=> CDN.GetGuildUserAvatarUrl(Id, Guild.Id, GuildAvatarId, size, format);
|
=> CDN.GetGuildUserAvatarUrl(Id, Guild.Id, GuildAvatarId, size, format);
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public string GetGuildBannerUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
|
=> CDN.GetGuildUserBannerUrl(Id, Guild.Id, GuildBannerHash, size, format);
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
=> GetGuildAvatarUrl(format, size) ?? base.GetDisplayAvatarUrl(format, size);
|
=> GetGuildAvatarUrl(format, size) ?? base.GetDisplayAvatarUrl(format, size);
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ namespace Discord.WebSocket
|
|||||||
public string GuildAvatarId
|
public string GuildAvatarId
|
||||||
=> GuildUser.GuildAvatarId;
|
=> GuildUser.GuildAvatarId;
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public string GuildBannerHash
|
||||||
|
=> GuildUser.GuildBannerHash;
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public override ushort DiscriminatorValue
|
public override ushort DiscriminatorValue
|
||||||
{
|
{
|
||||||
@@ -240,6 +244,9 @@ namespace Discord.WebSocket
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
string IGuildUser.GetGuildAvatarUrl(ImageFormat format, ushort size) => GuildUser.GetGuildAvatarUrl(format, size);
|
string IGuildUser.GetGuildAvatarUrl(ImageFormat format, ushort size) => GuildUser.GetGuildAvatarUrl(format, size);
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
string IGuildUser.GetGuildBannerUrl(ImageFormat format, ushort size) => GuildUser.GetGuildBannerUrl(format, size);
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
=> GuildUser.GetGuildAvatarUrl() ?? base.GetDisplayAvatarUrl(format, size);
|
=> GuildUser.GetGuildAvatarUrl() ?? base.GetDisplayAvatarUrl(format, size);
|
||||||
|
|||||||
@@ -75,8 +75,12 @@ namespace Discord.WebSocket
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
string IGuildUser.GuildAvatarId => null;
|
string IGuildUser.GuildAvatarId => null;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
string IGuildUser.GuildBannerHash => null;
|
||||||
|
/// <inheritdoc />
|
||||||
string IGuildUser.GetGuildAvatarUrl(ImageFormat format, ushort size) => null;
|
string IGuildUser.GetGuildAvatarUrl(ImageFormat format, ushort size) => null;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
string IGuildUser.GetGuildBannerUrl(ImageFormat format, ushort size) => null;
|
||||||
|
/// <inheritdoc />
|
||||||
DateTimeOffset? IGuildUser.PremiumSince => null;
|
DateTimeOffset? IGuildUser.PremiumSince => null;
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
DateTimeOffset? IGuildUser.TimedOutUntil => null;
|
DateTimeOffset? IGuildUser.TimedOutUntil => null;
|
||||||
|
|||||||
Reference in New Issue
Block a user