feature: Handle bidirectional usernames (#1943)
* Initial implementation * Update summary
This commit is contained in:
@@ -104,5 +104,15 @@ namespace Discord
|
|||||||
var newText = Regex.Replace(text, @"(\*|_|`|~|>|\\)", "");
|
var newText = Regex.Replace(text, @"(\*|_|`|~|>|\\)", "");
|
||||||
return newText;
|
return newText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Formats a user's username + discriminator while maintaining bidirectional unicode
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="user">The user whos username and discriminator to format</param>
|
||||||
|
/// <returns>The username + discriminator</returns>
|
||||||
|
public static string UsernameAndDiscriminator(IUser user)
|
||||||
|
{
|
||||||
|
return $"\u2066{user.Username}\u2069#{user.Discriminator}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,8 +128,8 @@ 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() => $"{Username}#{Discriminator}";
|
public override string ToString() => Format.UsernameAndDiscriminator(this);
|
||||||
private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})";
|
private string DebuggerDisplay => $"{Format.UsernameAndDiscriminator(this)} ({Id}{(IsBot ? ", Bot" : "")})";
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region IUser
|
#region IUser
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ namespace Discord.WebSocket
|
|||||||
/// <returns>
|
/// <returns>
|
||||||
/// The full name of the user.
|
/// The full name of the user.
|
||||||
/// </returns>
|
/// </returns>
|
||||||
public override string ToString() => $"{Username}#{Discriminator}";
|
public override string ToString() => Format.UsernameAndDiscriminator(this);
|
||||||
private string DebuggerDisplay => $"{Username}#{Discriminator} ({Id}{(IsBot ? ", Bot" : "")})";
|
private string DebuggerDisplay => $"{Format.UsernameAndDiscriminator(this)} ({Id}{(IsBot ? ", Bot" : "")})";
|
||||||
internal SocketUser Clone() => MemberwiseClone() as SocketUser;
|
internal SocketUser Clone() => MemberwiseClone() as SocketUser;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user