From da08497a19ab0635a8bd78e499cfc61e54352dcc Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Tue, 18 May 2021 22:04:29 +0200 Subject: :construction: WIP member list + voice --- src/listener/listener.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/listener') diff --git a/src/listener/listener.ts b/src/listener/listener.ts index e3516993..54cdb47d 100644 --- a/src/listener/listener.ts +++ b/src/listener/listener.ts @@ -17,7 +17,7 @@ export interface DispatchOpts { guilds: Array; } -function getPipeline(this: WebSocket, guilds: string[]) { +function getPipeline(this: WebSocket, guilds: string[], channels: string[]) { if (this.shard_count) { guilds = guilds.filter((x) => (BigInt(x) >> 22n) % this.shard_count === this.shard_id); } @@ -25,7 +25,11 @@ function getPipeline(this: WebSocket, guilds: string[]) { return [ { $match: { - $or: [{ "fullDocument.guild_id": { $in: guilds } }, { "fullDocument.user_id": this.user_id }], + $or: [ + { "fullDocument.guild_id": { $in: guilds } }, + { "fullDocument.user_id": this.user_id }, + { "fullDocument.channel_id": { $in: channels } }, + ], }, }, ]; @@ -45,6 +49,8 @@ export async function setupListener(this: WebSocket) { this.once("close", () => eventStream.destroy()); } +// TODO: cache permission + export async function dispatch(this: WebSocket, document: Event, { eventStream, guilds }: DispatchOpts) { var permission = new Permissions("ADMINISTRATOR"); // default permission for dms console.log("event", document); -- cgit 1.5.1