diff options
-rw-r--r-- | src/components/chatmessage.cpp | 4 | ||||
-rw-r--r-- | src/discord/user.cpp | 16 | ||||
-rw-r--r-- | src/discord/user.hpp | 3 |
3 files changed, 21 insertions, 2 deletions
diff --git a/src/components/chatmessage.cpp b/src/components/chatmessage.cpp index 9e01cf0..12f8c33 100644 --- a/src/components/chatmessage.cpp +++ b/src/components/chatmessage.cpp @@ -656,7 +656,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateReplyComponent(const Message &data) if (role.has_value()) { const auto author = discord.GetUser(author_id); if (author.has_value()) { - return "<b><span color=\"#" + IntToCSSColor(role->Color) + "\">" + author->GetDisplayNameEscaped() + "</span></b>"; + return "<b><span color=\"#" + IntToCSSColor(role->Color) + "\">" + author->GetDisplayNameEscaped(guild_id) + "</span></b>"; } } } @@ -664,7 +664,7 @@ Gtk::Widget *ChatMessageItemContainer::CreateReplyComponent(const Message &data) const auto author = discord.GetUser(author_id); if (author.has_value()) { - return author->GetDisplayNameEscapedBold(); + return author->GetDisplayNameEscapedBold(guild_id); } return "<b>Unknown User</b>"; diff --git a/src/discord/user.cpp b/src/discord/user.cpp index 1d5d15a..0f89fe2 100644 --- a/src/discord/user.cpp +++ b/src/discord/user.cpp @@ -89,14 +89,30 @@ std::string UserData::GetDisplayName() const { return Username; } +std::string UserData::GetDisplayName(Snowflake guild_id) const { + const auto member = Abaddon::Get().GetDiscordClient().GetMember(ID, guild_id); + if (member.has_value() && !member->Nickname.empty()) { + return member->Nickname; + } + return GetDisplayName(); +} + std::string UserData::GetDisplayNameEscaped() const { return Glib::Markup::escape_text(GetDisplayName()); } +std::string UserData::GetDisplayNameEscaped(Snowflake guild_id) const { + return Glib::Markup::escape_text(GetDisplayName(guild_id)); +} + std::string UserData::GetDisplayNameEscapedBold() const { return "<b>" + Glib::Markup::escape_text(GetDisplayName()) + "</b>"; } +std::string UserData::GetDisplayNameEscapedBold(Snowflake guild_id) const { + return "<b>" + Glib::Markup::escape_text(GetDisplayName(guild_id)) + "</b>"; +} + std::string UserData::GetUsername() const { if (IsPomelo()) { return Username; diff --git a/src/discord/user.hpp b/src/discord/user.hpp index 19a0bf9..29de62a 100644 --- a/src/discord/user.hpp +++ b/src/discord/user.hpp @@ -80,8 +80,11 @@ struct UserData { [[nodiscard]] Snowflake GetHoistedRole(Snowflake guild_id, bool with_color = false) const; [[nodiscard]] std::string GetMention() const; [[nodiscard]] std::string GetDisplayName() const; + [[nodiscard]] std::string GetDisplayName(Snowflake guild_id) const; [[nodiscard]] std::string GetDisplayNameEscaped() const; + [[nodiscard]] std::string GetDisplayNameEscaped(Snowflake guild_id) const; [[nodiscard]] std::string GetDisplayNameEscapedBold() const; + [[nodiscard]] std::string GetDisplayNameEscapedBold(Snowflake guild_id) const; [[nodiscard]] std::string GetUsername() const; [[nodiscard]] std::string GetUsernameEscaped() const; [[nodiscard]] std::string GetUsernameEscapedBold() const; |