diff --git a/src/Discord.Net.Core/CDN.cs b/src/Discord.Net.Core/CDN.cs
index d6535a4f1..ababada7c 100644
--- a/src/Discord.Net.Core/CDN.cs
+++ b/src/Discord.Net.Core/CDN.cs
@@ -208,6 +208,9 @@ namespace Discord
public static string GetStickerUrl(ulong stickerId, StickerFormatType format = StickerFormatType.Png)
=> $"{DiscordConfig.CDNUrl}stickers/{stickerId}.{FormatToExtension(format)}";
+ public static string GetEventCoverImageUrl(ulong guildId, ulong eventId, string assetId, ImageFormat format = ImageFormat.Auto, ushort size = 1024)
+ => $"{DiscordConfig.CDNUrl}guild-events/{guildId}/{eventId}/{assetId}.{FormatToExtension(format, assetId)}?size={size}";
+
private static string FormatToExtension(StickerFormatType format)
{
return format switch
diff --git a/src/Discord.Net.Core/Entities/Guilds/GuildScheduledEventsProperties.cs b/src/Discord.Net.Core/Entities/Guilds/GuildScheduledEventsProperties.cs
index 844af5d1b..d3be8b784 100644
--- a/src/Discord.Net.Core/Entities/Guilds/GuildScheduledEventsProperties.cs
+++ b/src/Discord.Net.Core/Entities/Guilds/GuildScheduledEventsProperties.cs
@@ -58,6 +58,6 @@ namespace Discord
///
/// Gets or sets the banner image of the event.
///
- public Optional Image { get; set; }
+ public Optional CoverImage { get; set; }
}
}
diff --git a/src/Discord.Net.Core/Entities/Guilds/IGuild.cs b/src/Discord.Net.Core/Entities/Guilds/IGuild.cs
index f414bea1b..3111ff495 100644
--- a/src/Discord.Net.Core/Entities/Guilds/IGuild.cs
+++ b/src/Discord.Net.Core/Entities/Guilds/IGuild.cs
@@ -1105,7 +1105,7 @@ namespace Discord
///
/// A collection of speakers for the event.
/// The location of the event; links are supported
- /// The optional banner image for the event.
+ /// The optional banner image for the event.
/// The options to be used when sending the request.
///
/// A task that represents the asynchronous create operation.
@@ -1119,7 +1119,7 @@ namespace Discord
DateTimeOffset? endTime = null,
ulong? channelId = null,
string location = null,
- Image? bannerImage = null,
+ Image? coverImage = null,
RequestOptions options = null);
///
diff --git a/src/Discord.Net.Core/Entities/Guilds/IGuildScheduledEvent.cs b/src/Discord.Net.Core/Entities/Guilds/IGuildScheduledEvent.cs
index e50f4cc2b..4ddc898fd 100644
--- a/src/Discord.Net.Core/Entities/Guilds/IGuildScheduledEvent.cs
+++ b/src/Discord.Net.Core/Entities/Guilds/IGuildScheduledEvent.cs
@@ -39,6 +39,11 @@ namespace Discord
///
string Description { get; }
+ ///
+ /// Gets the banner asset id of the event.
+ ///
+ string CoverImageId { get; }
+
///
/// Gets the start time of the event.
///
@@ -80,6 +85,14 @@ namespace Discord
///
int? UserCount { get; }
+ ///
+ /// Gets this events banner image url
+ ///
+ /// The format to return.
+ /// The size of the image to return in. This can be any power of two between 16 and 2048.
+ ///
+ string GetCoverImageUrl(ImageFormat format = ImageFormat.Auto, ushort size = 1024);
+
///
/// Starts the event.
///
diff --git a/src/Discord.Net.Rest/API/Common/GuildScheduledEvent.cs b/src/Discord.Net.Rest/API/Common/GuildScheduledEvent.cs
index 338c24dc9..94c53e779 100644
--- a/src/Discord.Net.Rest/API/Common/GuildScheduledEvent.cs
+++ b/src/Discord.Net.Rest/API/Common/GuildScheduledEvent.cs
@@ -39,5 +39,7 @@ namespace Discord.API
public Optional Creator { get; set; }
[JsonProperty("user_count")]
public Optional UserCount { get; set; }
+ [JsonProperty("image")]
+ public string Image { get; set; }
}
}
diff --git a/src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs b/src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs
index 9216d041f..25f474dcc 100644
--- a/src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs
+++ b/src/Discord.Net.Rest/Entities/Guilds/GuildHelper.cs
@@ -800,9 +800,9 @@ namespace Discord.Rest
StartTime = args.StartTime,
Status = args.Status,
Type = args.Type,
- Image = args.Image.IsSpecified
- ? args.Image.Value.HasValue
- ? args.Image.Value.Value.ToModel()
+ Image = args.CoverImage.IsSpecified
+ ? args.CoverImage.Value.HasValue
+ ? args.CoverImage.Value.Value.ToModel()
: null
: Optional.Unspecified
};
diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestGuildEvent.cs b/src/Discord.Net.Rest/Entities/Guilds/RestGuildEvent.cs
index d3ec11fc6..0b02e60ba 100644
--- a/src/Discord.Net.Rest/Entities/Guilds/RestGuildEvent.cs
+++ b/src/Discord.Net.Rest/Entities/Guilds/RestGuildEvent.cs
@@ -28,6 +28,9 @@ namespace Discord.Rest
///
public string Description { get; private set; }
+ ///
+ public string CoverImageId { get; private set; }
+
///
public DateTimeOffset StartTime { get; private set; }
@@ -98,8 +101,13 @@ namespace Discord.Rest
EntityId = model.EntityId;
Location = model.EntityMetadata?.Location.GetValueOrDefault();
UserCount = model.UserCount.ToNullable();
+ CoverImageId = model.Image;
}
+ ///
+ public string GetCoverImageUrl(ImageFormat format = ImageFormat.Auto, ushort size = 1024)
+ => CDN.GetEventCoverImageUrl(Guild.Id, Id, CoverImageId, format, size);
+
///
public Task StartAsync(RequestOptions options = null)
=> ModifyAsync(x => x.Status = GuildScheduledEventStatus.Active);
diff --git a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuildEvent.cs b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuildEvent.cs
index df619e4ca..a86aafadf 100644
--- a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuildEvent.cs
+++ b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuildEvent.cs
@@ -35,6 +35,9 @@ namespace Discord.WebSocket
///
public string Description { get; private set; }
+ ///
+ public string CoverImageId { get; private set; }
+
///
public DateTimeOffset StartTime { get; private set; }
@@ -109,8 +112,13 @@ namespace Discord.WebSocket
StartTime = model.ScheduledStartTime;
Status = model.Status;
UserCount = model.UserCount.ToNullable();
+ CoverImageId = model.Image;
}
+ ///
+ public string GetCoverImageUrl(ImageFormat format = ImageFormat.Auto, ushort size = 1024)
+ => CDN.GetEventCoverImageUrl(Guild.Id, Id, CoverImageId, format, size);
+
///
public Task DeleteAsync(RequestOptions options = null)
=> GuildHelper.DeleteEventAsync(Discord, this, options);