Browse Source

Added support for group channel icons

tags/1.0-rc
RogueException 9 years ago
parent
commit
6815fdb5f2
3 changed files with 11 additions and 1 deletions
  1. +2
    -0
      src/Discord.Net/API/CDN.cs
  2. +5
    -1
      src/Discord.Net/API/Common/Channel.cs
  3. +4
    -0
      src/Discord.Net/Entities/Channels/GroupChannel.cs

+ 2
- 0
src/Discord.Net/API/CDN.cs View File

@@ -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;
}
}

+ 5
- 1
src/Discord.Net/API/Common/Channel.cs View File

@@ -35,8 +35,12 @@ namespace Discord.API
[JsonProperty("user_limit")]
public Optional<int> UserLimit { get; set; }

//DMChannel
//PrivateChannel
[JsonProperty("recipients")]
public Optional<User[]> Recipients { get; set; }

//GroupChannel
[JsonProperty("icon")]
public Optional<string> Icon { get; set; }
}
}

+ 4
- 0
src/Discord.Net/Entities/Channels/GroupChannel.cs View File

@@ -16,12 +16,14 @@ namespace Discord
internal class GroupChannel : SnowflakeEntity, IGroupChannel
{
protected ConcurrentDictionary<ulong, IUser> _users;
private string _iconId;
public override DiscordClient Discord { get; }
public string Name { get; private set; }

public IReadOnlyCollection<IUser> Recipients => _users.ToReadOnlyCollection();
public virtual IReadOnlyCollection<IMessage> CachedMessages => ImmutableArray.Create<IMessage>();
public string IconUrl => API.CDN.GetChannelIconUrl(Id, _iconId);

public GroupChannel(DiscordClient discord, ConcurrentDictionary<ulong, IUser> 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);


Loading…
Cancel
Save