diff --git a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs
index 95896eef00..21f6cf093e 100644
--- a/src/Discord.Net.Core/Entities/Users/IGuildUser.cs
+++ b/src/Discord.Net.Core/Entities/Users/IGuildUser.cs
@@ -18,6 +18,13 @@ public interface IGuildUser : IUser, IVoiceState
///
DateTimeOffset? JoinedAt { get; }
///
+ /// Gets the displayed name for this user.
+ ///
+ ///
+ /// A string representing the display name of the user; If the nickname is null, this will be the username.
+ ///
+ string DisplayName { get; }
+ ///
/// Gets the nickname for this user.
///
///
diff --git a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
index 09e7ec03a5..1415b58256 100644
--- a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
+++ b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs
@@ -19,7 +19,8 @@ public class RestGuildUser : RestUser, IGuildUser
private long? _timedOutTicks;
private long? _joinedAtTicks;
private ImmutableArray _roleIds;
-
+ ///
+ public string DisplayName => Nickname ?? Username;
///
public string Nickname { get; private set; }
///
diff --git a/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs b/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs
index 4ef84c5087..b887f8df6c 100644
--- a/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs
+++ b/src/Discord.Net.Rest/Entities/Users/RestWebhookUser.cs
@@ -52,6 +52,8 @@ IGuild IGuildUser.Guild
///
DateTimeOffset? IGuildUser.JoinedAt => null;
///
+ string IGuildUser.DisplayName => null;
+ ///
string IGuildUser.Nickname => null;
///
string IGuildUser.GuildAvatarId => null;
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs
index 8c2825bc4b..52d55561f7 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs
@@ -30,6 +30,8 @@ public class SocketGuildUser : SocketUser, IGuildUser
///
public SocketGuild Guild { get; }
///
+ public string DisplayName => Nickname ?? Username;
+ ///
public string Nickname { get; private set; }
///
public string GuildAvatarId { get; private set; }
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs
index 24d570692c..f3fdbff3e0 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs
@@ -29,6 +29,10 @@ public class SocketThreadUser : SocketUser, IThreadUser, IGuildUser
public DateTimeOffset? JoinedAt
=> GuildUser.JoinedAt;
+ ///
+ public string DisplayName
+ => GuildUser.Nickname ?? GuildUser.Username;
+
///
public string Nickname
=> GuildUser.Nickname;
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs
index 7d63e4e36e..b6a00bcb04 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs
@@ -63,6 +63,8 @@ internal static SocketWebhookUser Create(SocketGuild guild, ClientState state, M
///
DateTimeOffset? IGuildUser.JoinedAt => null;
///
+ string IGuildUser.DisplayName => null;
+ ///
string IGuildUser.Nickname => null;
///
string IGuildUser.GuildAvatarId => null;