Browse Source

Diferentiate default and custom avatars

pull/997/head
aStonedPenguin 8 years ago
parent
commit
a0e7a594cd
6 changed files with 24 additions and 10 deletions
  1. +3
    -1
      src/Discord.Net.Core/CDN.cs
  2. +5
    -1
      src/Discord.Net.Core/Entities/Users/IUser.cs
  3. +6
    -2
      src/Discord.Net.Rest/Entities/Users/RestUser.cs
  4. +2
    -2
      src/Discord.Net.Rest/Entities/Webhooks/RestWebhook.cs
  5. +6
    -2
      src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs
  6. +2
    -2
      src/Discord.Net.Webhook/Entities/Webhooks/RestInternalWebhook.cs

+ 3
- 1
src/Discord.Net.Core/CDN.cs View File

@@ -6,7 +6,9 @@ namespace Discord
{ {
public static string GetApplicationIconUrl(ulong appId, string iconId) public static string GetApplicationIconUrl(ulong appId, string iconId)
=> iconId != null ? $"{DiscordConfig.CDNUrl}app-icons/{appId}/{iconId}.jpg" : null; => iconId != null ? $"{DiscordConfig.CDNUrl}app-icons/{appId}/{iconId}.jpg" : null;
public static string GetUserAvatarUrl(ulong userId, string avatarId, ushort size, ImageFormat format)
public static string GetUserDefaultAvatarUrl(ushort discriminator)
=> $"{DiscordConfig.CDNUrl}embed/avatars/{discriminator % 5}.png";
public static string GetUserCustomAvatarUrl(ulong userId, string avatarId, ushort size, ImageFormat format)
{ {
if (avatarId == null) if (avatarId == null)
return null; return null;


+ 5
- 1
src/Discord.Net.Core/Entities/Users/IUser.cs View File

@@ -6,7 +6,11 @@ namespace Discord
{ {
/// <summary> Gets the id of this user's avatar. </summary> /// <summary> Gets the id of this user's avatar. </summary>
string AvatarId { get; } string AvatarId { get; }
/// <summary> Gets the url to this user's avatar. </summary>
/// <summary> Gets the url to this user's default avatar. </summary>
string GetDefaultAvatarUrl();
/// <summary> Gets the url to this user's custom avatar, if set. </summary>
string GetCustomAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128);
/// <summary> Gets the url to this user's custom or default avatar depending on which is available. NOTE: Ignores format and size if there is no custom avatar. </summary>
string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128); string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128);
/// <summary> Gets the per-username unique id for this user. </summary> /// <summary> Gets the per-username unique id for this user. </summary>
string Discriminator { get; } string Discriminator { get; }


+ 6
- 2
src/Discord.Net.Rest/Entities/Users/RestUser.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.User; using Model = Discord.API.User;
@@ -57,8 +57,12 @@ namespace Discord.Rest
public Task<RestDMChannel> GetOrCreateDMChannelAsync(RequestOptions options = null) public Task<RestDMChannel> GetOrCreateDMChannelAsync(RequestOptions options = null)
=> UserHelper.CreateDMChannelAsync(this, Discord, options); => UserHelper.CreateDMChannelAsync(this, Discord, options);


public string GetDefaultAvatarUrl()
=> CDN.GetUserDefaultAvatarUrl(DiscriminatorValue);
public string GetCustomAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserCustomAvatarUrl(Id, AvatarId, size, format);
public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128) public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserAvatarUrl(Id, AvatarId, size, format);
=> GetCustomAvatarUrl(format, size) ?? GetDefaultAvatarUrl();


public override string ToString() => $"{Username}#{Discriminator}"; public override string ToString() => $"{Username}#{Discriminator}";
private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})";


+ 2
- 2
src/Discord.Net.Rest/Entities/Webhooks/RestWebhook.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.Webhook; using Model = Discord.API.Webhook;
@@ -66,7 +66,7 @@ namespace Discord.Rest
} }


public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128) public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserAvatarUrl(Id, AvatarId, size, format);
=> CDN.GetUserCustomAvatarUrl(Id, AvatarId, size, format);


public async Task ModifyAsync(Action<WebhookProperties> func, RequestOptions options = null) public async Task ModifyAsync(Action<WebhookProperties> func, RequestOptions options = null)
{ {


+ 6
- 2
src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs View File

@@ -1,4 +1,4 @@
using Discord.Rest;
using Discord.Rest;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.User; using Model = Discord.API.User;
@@ -58,8 +58,12 @@ namespace Discord.WebSocket
public async Task<IDMChannel> GetOrCreateDMChannelAsync(RequestOptions options = null) public async Task<IDMChannel> GetOrCreateDMChannelAsync(RequestOptions options = null)
=> GlobalUser.DMChannel ?? await UserHelper.CreateDMChannelAsync(this, Discord, options) as IDMChannel; => GlobalUser.DMChannel ?? await UserHelper.CreateDMChannelAsync(this, Discord, options) as IDMChannel;


public string GetDefaultAvatarUrl()
=> CDN.GetUserDefaultAvatarUrl(DiscriminatorValue);
public string GetCustomAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserCustomAvatarUrl(Id, AvatarId, size, format);
public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128) public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserAvatarUrl(Id, AvatarId, size, format);
=> GetCustomAvatarUrl(format, size) ?? GetDefaultAvatarUrl();


public override string ToString() => $"{Username}#{Discriminator}"; public override string ToString() => $"{Username}#{Discriminator}";
private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})"; private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})";


+ 2
- 2
src/Discord.Net.Webhook/Entities/Webhooks/RestInternalWebhook.cs View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Diagnostics; using System.Diagnostics;
using System.Threading.Tasks; using System.Threading.Tasks;
using Model = Discord.API.Webhook; using Model = Discord.API.Webhook;
@@ -45,7 +45,7 @@ namespace Discord.Webhook
} }


public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128) public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserAvatarUrl(Id, AvatarId, size, format);
=> CDN.GetUserCustomAvatarUrl(Id, AvatarId, size, format);


public async Task ModifyAsync(Action<WebhookProperties> func, RequestOptions options = null) public async Task ModifyAsync(Action<WebhookProperties> func, RequestOptions options = null)
{ {


Loading…
Cancel
Save