Browse Source

Merge ea82ef06f3 into c67db88961

pull/979/merge
Aleks Margarian GitHub 8 years ago
parent
commit
37bc81cf98
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 9 deletions
  1. +4
    -3
      src/Discord.Net.Core/DiscordConfig.cs
  2. +4
    -0
      src/Discord.Net.Core/Entities/Users/IUser.cs
  3. +18
    -1
      src/Discord.Net.Rest/Entities/Users/RestUser.cs
  4. +22
    -5
      src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs

+ 4
- 3
src/Discord.Net.Core/DiscordConfig.cs View File

@@ -4,16 +4,17 @@ namespace Discord
{ {
public class DiscordConfig public class DiscordConfig
{ {
public const int APIVersion = 6;
public const int APIVersion = 6;
public static string Version { get; } = public static string Version { get; } =
typeof(DiscordConfig).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion ?? typeof(DiscordConfig).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion ??
typeof(DiscordConfig).GetTypeInfo().Assembly.GetName().Version.ToString(3) ??
typeof(DiscordConfig).GetTypeInfo().Assembly.GetName().Version.ToString(3) ??
"Unknown"; "Unknown";


public static string UserAgent { get; } = $"DiscordBot (https://github.com/RogueException/Discord.Net, v{Version})"; public static string UserAgent { get; } = $"DiscordBot (https://github.com/RogueException/Discord.Net, v{Version})";
public static readonly string APIUrl = $"https://discordapp.com/api/v{APIVersion}/"; public static readonly string APIUrl = $"https://discordapp.com/api/v{APIVersion}/";
public const string CDNUrl = "https://cdn.discordapp.com/"; public const string CDNUrl = "https://cdn.discordapp.com/";
public const string InviteUrl = "https://discord.gg/"; public const string InviteUrl = "https://discord.gg/";
public const string MainUrl = "https://discordapp.com/";


public const int DefaultRequestTimeout = 15000; public const int DefaultRequestTimeout = 15000;
public const int MaxMessageSize = 2000; public const int MaxMessageSize = 2000;
@@ -23,7 +24,7 @@ namespace Discord


/// <summary> Gets or sets how a request should act in the case of an error, by default. </summary> /// <summary> Gets or sets how a request should act in the case of an error, by default. </summary>
public RetryMode DefaultRetryMode { get; set; } = RetryMode.AlwaysRetry; public RetryMode DefaultRetryMode { get; set; } = RetryMode.AlwaysRetry;
/// <summary> Gets or sets the minimum log level severity that will be sent to the Log event. </summary> /// <summary> Gets or sets the minimum log level severity that will be sent to the Log event. </summary>
public LogSeverity LogLevel { get; set; } = LogSeverity.Info; public LogSeverity LogLevel { get; set; } = LogSeverity.Info;




+ 4
- 0
src/Discord.Net.Core/Entities/Users/IUser.cs View File

@@ -6,6 +6,10 @@ 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 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 avatar. </summary> /// <summary> Gets the url to this user's 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>


+ 18
- 1
src/Discord.Net.Rest/Entities/Users/RestUser.cs View File

@@ -57,9 +57,26 @@ 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 GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
public string GetCustomAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserAvatarUrl(Id, AvatarId, size, format); => CDN.GetUserAvatarUrl(Id, AvatarId, size, format);


public string GetDefaultAvatarUrl()
{
switch (DiscriminatorValue % 5)
{
case 0: return DiscordConfig.MainUrl + "assets/6debd47ed13483642cf09e832ed0bc1b.png";
case 1: return DiscordConfig.MainUrl + "assets/322c936a8c8be1b803cd94861bdfa868.png";
case 2: return DiscordConfig.MainUrl + "assets/dd4dbc0016779df1378e7812eabaa04d.png";
case 3: return DiscordConfig.MainUrl + "assets/0e291f67c9274a1abdddeb3fd919cbaa.png";
case 4: return DiscordConfig.MainUrl + "assets/1cbd08c76f8af6dddce02c5138971129.png";
}
}

public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
{
return 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" : "")})";




+ 22
- 5
src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs View File

@@ -37,30 +37,47 @@ namespace Discord.WebSocket
{ {
var newVal = ushort.Parse(model.Discriminator.Value); var newVal = ushort.Parse(model.Discriminator.Value);
if (newVal != DiscriminatorValue) if (newVal != DiscriminatorValue)
{
{
DiscriminatorValue = ushort.Parse(model.Discriminator.Value); DiscriminatorValue = ushort.Parse(model.Discriminator.Value);
hasChanges = true; hasChanges = true;
} }
} }
if (model.Bot.IsSpecified && model.Bot.Value != IsBot) if (model.Bot.IsSpecified && model.Bot.Value != IsBot)
{
{
IsBot = model.Bot.Value; IsBot = model.Bot.Value;
hasChanges = true; hasChanges = true;
} }
if (model.Username.IsSpecified && model.Username.Value != Username) if (model.Username.IsSpecified && model.Username.Value != Username)
{
{
Username = model.Username.Value; Username = model.Username.Value;
hasChanges = true; hasChanges = true;
} }
return hasChanges; return hasChanges;
}
}


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 GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
public string GetCustomAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
=> CDN.GetUserAvatarUrl(Id, AvatarId, size, format); => CDN.GetUserAvatarUrl(Id, AvatarId, size, format);


public string GetDefaultAvatarUrl()
{
switch (DiscriminatorValue % 5)
{
case 0: return DiscordConfig.MainUrl + "assets/6debd47ed13483642cf09e832ed0bc1b.png";
case 1: return DiscordConfig.MainUrl + "assets/322c936a8c8be1b803cd94861bdfa868.png";
case 2: return DiscordConfig.MainUrl + "assets/dd4dbc0016779df1378e7812eabaa04d.png";
case 3: return DiscordConfig.MainUrl + "assets/0e291f67c9274a1abdddeb3fd919cbaa.png";
case 4: return DiscordConfig.MainUrl + "assets/1cbd08c76f8af6dddce02c5138971129.png";
}
}

public string GetAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
{
return 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" : "")})";
internal SocketUser Clone() => MemberwiseClone() as SocketUser; internal SocketUser Clone() => MemberwiseClone() as SocketUser;


Loading…
Cancel
Save