From 29a049e62a6a701c7e6290a643f709a35ba5f4cf Mon Sep 17 00:00:00 2001
From: ouwou <26526779+ouwou@users.noreply.github.com>
Date: Tue, 13 Jun 2023 22:15:48 -0400
Subject: handle nickname in reply component
---
src/discord/user.cpp | 16 ++++++++++++++++
src/discord/user.hpp | 3 +++
2 files changed, 19 insertions(+)
(limited to 'src/discord')
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 "" + Glib::Markup::escape_text(GetDisplayName()) + "";
}
+std::string UserData::GetDisplayNameEscapedBold(Snowflake guild_id) const {
+ return "" + Glib::Markup::escape_text(GetDisplayName(guild_id)) + "";
+}
+
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;
--
cgit v1.2.3