diff --git a/src/Discord.Net/API/CDN.cs b/src/Discord.Net/API/CDN.cs index 260feba75..27f0864cd 100644 --- a/src/Discord.Net/API/CDN.cs +++ b/src/Discord.Net/API/CDN.cs @@ -8,5 +8,7 @@ => iconId != null ? $"{DiscordConfig.ClientAPIUrl}guilds/{guildId}/icons/{iconId}.jpg" : null; public static string GetGuildSplashUrl(ulong guildId, string splashId) => splashId != null ? $"{DiscordConfig.ClientAPIUrl}guilds/{guildId}/splashes/{splashId}.jpg" : null; + public static string GetChannelIconUrl(ulong channelId, string iconId) + => iconId != null ? $"{DiscordConfig.ClientAPIUrl}channel-icons/{channelId}/{iconId}.jpg" : null; } } diff --git a/src/Discord.Net/API/Common/Channel.cs b/src/Discord.Net/API/Common/Channel.cs index 99fa87d87..44c59c1ad 100644 --- a/src/Discord.Net/API/Common/Channel.cs +++ b/src/Discord.Net/API/Common/Channel.cs @@ -35,8 +35,12 @@ namespace Discord.API [JsonProperty("user_limit")] public Optional UserLimit { get; set; } - //DMChannel + //PrivateChannel [JsonProperty("recipients")] public Optional Recipients { get; set; } + + //GroupChannel + [JsonProperty("icon")] + public Optional Icon { get; set; } } } diff --git a/src/Discord.Net/Entities/Channels/GroupChannel.cs b/src/Discord.Net/Entities/Channels/GroupChannel.cs index 9b8526cfe..65dad771c 100644 --- a/src/Discord.Net/Entities/Channels/GroupChannel.cs +++ b/src/Discord.Net/Entities/Channels/GroupChannel.cs @@ -16,12 +16,14 @@ namespace Discord internal class GroupChannel : SnowflakeEntity, IGroupChannel { protected ConcurrentDictionary _users; + private string _iconId; public override DiscordClient Discord { get; } public string Name { get; private set; } public IReadOnlyCollection Recipients => _users.ToReadOnlyCollection(); public virtual IReadOnlyCollection CachedMessages => ImmutableArray.Create(); + public string IconUrl => API.CDN.GetChannelIconUrl(Id, _iconId); public GroupChannel(DiscordClient discord, ConcurrentDictionary recipients, Model model) : base(model.Id) @@ -37,6 +39,8 @@ namespace Discord if (model.Name.IsSpecified) Name = model.Name.Value; + if (model.Icon.IsSpecified) + _iconId = model.Icon.Value; if (source != UpdateSource.Creation && model.Recipients.IsSpecified) UpdateUsers(model.Recipients.Value, source);