summaryrefslogtreecommitdiff
path: root/discord/guild.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'discord/guild.cpp')
-rw-r--r--discord/guild.cpp11
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;
+}