Browse Source

Init

pull/2204/head
Armano den Boef 3 years ago
parent
commit
7736fd69f3
5 changed files with 24 additions and 7 deletions
  1. +5
    -0
      src/Discord.Net.Core/DiscordConfig.cs
  2. +6
    -3
      src/Discord.Net.Core/Format.cs
  3. +2
    -0
      src/Discord.Net.Rest/BaseDiscordClient.cs
  4. +7
    -2
      src/Discord.Net.Rest/Entities/Users/RestUser.cs
  5. +4
    -2
      src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs

+ 5
- 0
src/Discord.Net.Core/DiscordConfig.cs View File

@@ -187,5 +187,10 @@ namespace Discord
/// <b>This will still require a stable clock on your system.</b> /// <b>This will still require a stable clock on your system.</b>
/// </remarks> /// </remarks>
public bool UseInteractionSnowflakeDate { get; set; } = true; public bool UseInteractionSnowflakeDate { get; set; } = true;

/// <summary>
/// Gets or sets if any user's <see cref="object.ToString"/> override formats the string in respect to bidirectional unicode.
/// </summary>
public bool FormatUsersInBidirectionalUnicode { get; set; } = true;
} }
} }

+ 6
- 3
src/Discord.Net.Core/Format.cs View File

@@ -107,13 +107,16 @@ namespace Discord
} }


/// <summary> /// <summary>
/// Formats a user's username + discriminator while maintaining bidirectional unicode
/// Formats a user's username + discriminator.
/// </summary> /// </summary>
/// <param name="doBidirectional">To format the string in bidirectional unicode or not</param>
/// <param name="user">The user whos username and discriminator to format</param> /// <param name="user">The user whos username and discriminator to format</param>
/// <returns>The username + discriminator</returns> /// <returns>The username + discriminator</returns>
public static string UsernameAndDiscriminator(IUser user)
public static string UsernameAndDiscriminator(IUser user, bool doBidirectional)
{ {
return $"\u2066{user.Username}\u2069#{user.Discriminator}";
return doBidirectional
? $"\u2066{user.Username}\u2069#{user.Discriminator}"
: $"{user.Username}#{user.Discriminator}";
} }
} }
} }

+ 2
- 0
src/Discord.Net.Rest/BaseDiscordClient.cs View File

@@ -36,6 +36,7 @@ namespace Discord.Rest
/// <inheritdoc /> /// <inheritdoc />
public TokenType TokenType => ApiClient.AuthTokenType; public TokenType TokenType => ApiClient.AuthTokenType;
internal bool UseInteractionSnowflakeDate { get; private set; } internal bool UseInteractionSnowflakeDate { get; private set; }
internal bool FormatUsersInBidirectionalUnicode { get; private set; }


/// <summary> Creates a new REST-only Discord client. </summary> /// <summary> Creates a new REST-only Discord client. </summary>
internal BaseDiscordClient(DiscordRestConfig config, API.DiscordRestApiClient client) internal BaseDiscordClient(DiscordRestConfig config, API.DiscordRestApiClient client)
@@ -49,6 +50,7 @@ namespace Discord.Rest
_isFirstLogin = config.DisplayInitialLog; _isFirstLogin = config.DisplayInitialLog;


UseInteractionSnowflakeDate = config.UseInteractionSnowflakeDate; UseInteractionSnowflakeDate = config.UseInteractionSnowflakeDate;
FormatUsersInBidirectionalUnicode = config.FormatUsersInBidirectionalUnicode;


ApiClient.RequestQueue.RateLimitTriggered += async (id, info, endpoint) => ApiClient.RequestQueue.RateLimitTriggered += async (id, info, endpoint) =>
{ {


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

@@ -16,6 +16,8 @@ namespace Discord.Rest
public class RestUser : RestEntity<ulong>, IUser, IUpdateable public class RestUser : RestEntity<ulong>, IUser, IUpdateable
{ {
#region RestUser #region RestUser
private readonly bool _useBidirectionalUnicode;

/// <inheritdoc /> /// <inheritdoc />
public bool IsBot { get; private set; } public bool IsBot { get; private set; }
/// <inheritdoc /> /// <inheritdoc />
@@ -51,6 +53,7 @@ namespace Discord.Rest
internal RestUser(BaseDiscordClient discord, ulong id) internal RestUser(BaseDiscordClient discord, ulong id)
: base(discord, id) : base(discord, id)
{ {
_useBidirectionalUnicode = discord.FormatUsersInBidirectionalUnicode;
} }
internal static RestUser Create(BaseDiscordClient discord, Model model) internal static RestUser Create(BaseDiscordClient discord, Model model)
=> Create(discord, null, model, null); => Create(discord, null, model, null);
@@ -129,8 +132,10 @@ namespace Discord.Rest
/// <returns> /// <returns>
/// A string that resolves to Username#Discriminator of the user. /// A string that resolves to Username#Discriminator of the user.
/// </returns> /// </returns>
public override string ToString() => Format.UsernameAndDiscriminator(this);
private string DebuggerDisplay => $"{Format.UsernameAndDiscriminator(this)} ({Id}{(IsBot ? ", Bot" : "")})";
public override string ToString()
=> Format.UsernameAndDiscriminator(this, _useBidirectionalUnicode);

private string DebuggerDisplay => $"{Format.UsernameAndDiscriminator(this, _useBidirectionalUnicode)} ({Id}{(IsBot ? ", Bot" : "")})";
#endregion #endregion


#region IUser #region IUser


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

@@ -17,6 +17,7 @@ namespace Discord.WebSocket
[DebuggerDisplay(@"{DebuggerDisplay,nq}")] [DebuggerDisplay(@"{DebuggerDisplay,nq}")]
public abstract class SocketUser : SocketEntity<ulong>, IUser public abstract class SocketUser : SocketEntity<ulong>, IUser
{ {
private readonly bool _useBidirectionalUnicode;
/// <inheritdoc /> /// <inheritdoc />
public abstract bool IsBot { get; internal set; } public abstract bool IsBot { get; internal set; }
/// <inheritdoc /> /// <inheritdoc />
@@ -56,6 +57,7 @@ namespace Discord.WebSocket
internal SocketUser(DiscordSocketClient discord, ulong id) internal SocketUser(DiscordSocketClient discord, ulong id)
: base(discord, id) : base(discord, id)
{ {
_useBidirectionalUnicode = discord.FormatUsersInBidirectionalUnicode;
} }
internal virtual bool Update(ClientState state, Model model) internal virtual bool Update(ClientState state, Model model)
{ {
@@ -117,8 +119,8 @@ namespace Discord.WebSocket
/// <returns> /// <returns>
/// The full name of the user. /// The full name of the user.
/// </returns> /// </returns>
public override string ToString() => Format.UsernameAndDiscriminator(this);
private string DebuggerDisplay => $"{Format.UsernameAndDiscriminator(this)} ({Id}{(IsBot ? ", Bot" : "")})";
public override string ToString() => Format.UsernameAndDiscriminator(this, _useBidirectionalUnicode);
private string DebuggerDisplay => $"{Format.UsernameAndDiscriminator(this, _useBidirectionalUnicode)} ({Id}{(IsBot ? ", Bot" : "")})";
internal SocketUser Clone() => MemberwiseClone() as SocketUser; internal SocketUser Clone() => MemberwiseClone() as SocketUser;
} }
} }

Loading…
Cancel
Save