Respect invisible members
This commit is contained in:
parent
c6771ed105
commit
1adde5ddf1
@ -1,4 +1,4 @@
|
|||||||
import { getPermission, listenEvent, Member, Role } from "@fosscord/util";
|
import { getPermission, listenEvent, Member, Role, Session } from "@fosscord/util";
|
||||||
import { LazyRequest } from "../schema/LazyRequest";
|
import { LazyRequest } from "../schema/LazyRequest";
|
||||||
import { Send } from "../util/Send";
|
import { Send } from "../util/Send";
|
||||||
import { OPCODES } from "../util/Constants";
|
import { OPCODES } from "../util/Constants";
|
||||||
@ -63,9 +63,8 @@ async function getMembers(guild_id: string, range: [number, number]) {
|
|||||||
.filter((x: Role) => x.id !== guild_id)
|
.filter((x: Role) => x.id !== guild_id)
|
||||||
.map((x: Role) => x.id);
|
.map((x: Role) => x.id);
|
||||||
|
|
||||||
const session = member.user.sessions.first();
|
const session: Session = member.user.sessions.first();
|
||||||
|
|
||||||
// TODO: properly mock/hide offline/invisible status
|
|
||||||
const item = {
|
const item = {
|
||||||
member: {
|
member: {
|
||||||
...member,
|
...member,
|
||||||
@ -77,9 +76,10 @@ async function getMembers(guild_id: string, range: [number, number]) {
|
|||||||
user: { id: member.user.id },
|
user: { id: member.user.id },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
if (!member?.user?.sessions || !member.user.sessions.length) {
|
if (!session || session.status == "invisible") {
|
||||||
|
item.member.presence.status = "offline";
|
||||||
offlineItems.push(item);
|
offlineItems.push(item);
|
||||||
group.count--;
|
group.count--;
|
||||||
continue;
|
continue;
|
||||||
@ -140,6 +140,11 @@ export async function onLazyRequest(this: WebSocket, { d }: Payload) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const groups = ops
|
||||||
|
.map((x) => x.groups)
|
||||||
|
.flat()
|
||||||
|
.unique();
|
||||||
|
|
||||||
return Send(this, {
|
return Send(this, {
|
||||||
op: OPCODES.Dispatch,
|
op: OPCODES.Dispatch,
|
||||||
s: this.sequence++,
|
s: this.sequence++,
|
||||||
@ -150,14 +155,11 @@ export async function onLazyRequest(this: WebSocket, { d }: Payload) {
|
|||||||
op: "SYNC",
|
op: "SYNC",
|
||||||
range: x.range,
|
range: x.range,
|
||||||
})),
|
})),
|
||||||
online_count: member_count,
|
online_count: member_count - groups.find(x => x.id == "offline").count,
|
||||||
member_count,
|
member_count,
|
||||||
id: "everyone",
|
id: "everyone",
|
||||||
guild_id,
|
guild_id,
|
||||||
groups: ops
|
groups,
|
||||||
.map((x) => x.groups)
|
|
||||||
.flat()
|
|
||||||
.unique(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user