diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-01-28 18:58:03 -0500 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-01-28 18:58:03 -0500 |
commit | 57cec9fff9fc4b2945300b1e00e3a4a681573022 (patch) | |
tree | 00a89a041f661b51c1e5747088cb513bfa6259dd /components | |
parent | f287d5cab18e5a449ed7ad70e67f2a06fbbe0596 (diff) | |
download | abaddon-portaudio-57cec9fff9fc4b2945300b1e00e3a4a681573022.tar.gz abaddon-portaudio-57cec9fff9fc4b2945300b1e00e3a4a681573022.zip |
allow emoji completion in dm's
Diffstat (limited to 'components')
-rw-r--r-- | components/completer.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/components/completer.cpp b/components/completer.cpp index 26d5cf2..5767853 100644 --- a/components/completer.cpp +++ b/components/completer.cpp @@ -158,8 +158,6 @@ void Completer::CompleteEmojis(const Glib::ustring &term) { const auto &discord = Abaddon::Get().GetDiscordClient(); const auto channel_id = m_channel_id_cb(); const auto channel = discord.GetChannel(channel_id); - if (!channel->GuildID.has_value()) return; - const auto guild = discord.GetGuild(*channel->GuildID); const auto make_entry = [&](const Glib::ustring &name, const Glib::ustring &completion, const Glib::ustring &url = "") -> CompleterEntry * { const auto entry = CreateEntry(completion); @@ -178,17 +176,20 @@ void Completer::CompleteEmojis(const Glib::ustring &term) { }; int i = 0; - if (guild->Emojis.has_value()) { - for (const auto tmp : *guild->Emojis) { - const auto emoji = discord.GetEmoji(tmp.ID); - if (!emoji.has_value()) continue; - if (emoji->IsAnimated.has_value() && *emoji->IsAnimated) continue; - if (term.size() > 0) - if (!StringContainsCaseless(emoji->Name, term)) continue; - if (i++ > MaxCompleterEntries) break; - - const auto entry = make_entry(emoji->Name, "<:" + emoji->Name + ":" + std::to_string(emoji->ID) + ">", emoji->GetURL()); - } + if (channel->GuildID.has_value()) { + const auto guild = discord.GetGuild(*channel->GuildID); + + if (guild->Emojis.has_value()) + for (const auto tmp : *guild->Emojis) { + const auto emoji = discord.GetEmoji(tmp.ID); + if (!emoji.has_value()) continue; + if (emoji->IsAnimated.has_value() && *emoji->IsAnimated) continue; + if (term.size() > 0) + if (!StringContainsCaseless(emoji->Name, term)) continue; + if (i++ > MaxCompleterEntries) break; + + const auto entry = make_entry(emoji->Name, "<:" + emoji->Name + ":" + std::to_string(emoji->ID) + ">", emoji->GetURL()); + } } // if <15 guild emojis match then load up stock |