mirror of
https://github.com/spacebarchat/server.git
synced 2024-11-23 02:42:28 +01:00
Send offline group in LazyRequest (#778)
* Send offline member group in LazyRequest * Better implementation of offline member group in lazy request * Always display roles separately to online members
This commit is contained in:
parent
6699afde77
commit
af41c942ca
@ -41,6 +41,9 @@ async function getMembers(guild_id: string, range: [number, number]) {
|
||||
.map((m) => m.roles)
|
||||
.flat()
|
||||
.unique((r: Role) => r.id);
|
||||
member_roles.push(member_roles.splice(member_roles.findIndex(x => x.id == guild_id))[0]); // move @everyone/online to bottom
|
||||
|
||||
const offlineItems = [];
|
||||
|
||||
for (const role of member_roles) {
|
||||
// @ts-ignore
|
||||
@ -63,7 +66,7 @@ async function getMembers(guild_id: string, range: [number, number]) {
|
||||
const session = member.user.sessions.first();
|
||||
|
||||
// TODO: properly mock/hide offline/invisible status
|
||||
items.push({
|
||||
const item = {
|
||||
member: {
|
||||
...member,
|
||||
roles,
|
||||
@ -74,16 +77,35 @@ async function getMembers(guild_id: string, range: [number, number]) {
|
||||
user: { id: member.user.id },
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
if (!member?.user?.sessions || !member.user.sessions.length) {
|
||||
offlineItems.push(item);
|
||||
group.count--;
|
||||
continue;
|
||||
}
|
||||
|
||||
items.push(item);
|
||||
}
|
||||
members = other_members;
|
||||
}
|
||||
|
||||
if (offlineItems.length) {
|
||||
const group = {
|
||||
count: offlineItems.length,
|
||||
id: "offline",
|
||||
};
|
||||
items.push({ group });
|
||||
groups.push(group);
|
||||
|
||||
items.push(...offlineItems);
|
||||
}
|
||||
|
||||
return {
|
||||
items,
|
||||
groups,
|
||||
range,
|
||||
members: items.map((x) => x.member).filter((x) => x),
|
||||
members: items.map((x) => 'member' in x ? x.member : undefined).filter(x => !!x),
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user