diff options
Diffstat (limited to 'discord/guild.cpp')
-rw-r--r-- | discord/guild.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/discord/guild.cpp b/discord/guild.cpp index bf99943..5fb524e 100644 --- a/discord/guild.cpp +++ b/discord/guild.cpp @@ -186,3 +186,14 @@ std::vector<Snowflake> GuildData::GetSortedChannels(Snowflake ignore) const { return ret; } + +std::vector<RoleData> GuildData::FetchRoles() const { + if (!Roles.has_value()) return {}; + std::vector<RoleData> ret; + for (const auto thing : *Roles) + ret.push_back(*Abaddon::Get().GetDiscordClient().GetRole(thing.ID)); + std::sort(ret.begin(), ret.end(), [](const RoleData &a, const RoleData &b) -> bool { + return a.Position > b.Position; + }); + return ret; +} |