summary refs log tree commit diff
path: root/gateway/src/listener
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-03 03:37:55 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-09-03 03:37:55 +0200
commit36fe0ec0c8022cbbde23eb87ca00906629255de6 (patch)
tree43dba167ea6e790ac271b05710c41a539a0fd0d3 /gateway/src/listener
parentfix #309 (diff)
downloadserver-36fe0ec0c8022cbbde23eb87ca00906629255de6.tar.xz
:bug: fix member + member list
Diffstat (limited to 'gateway/src/listener')
-rw-r--r--gateway/src/listener/listener.ts44
1 files changed, 35 insertions, 9 deletions
diff --git a/gateway/src/listener/listener.ts b/gateway/src/listener/listener.ts

index 67837e8d..0b6fa50c 100644 --- a/gateway/src/listener/listener.ts +++ b/gateway/src/listener/listener.ts
@@ -26,15 +26,20 @@ import { Recipient } from "../../../util/dist/entities/Recipient"; // TODO: use already queried guilds/channels of Identify and don't fetch them again export async function setupListener(this: WebSocket) { - const members = await Member.find({ user_id: this.user_id }); + const members = await Member.find({ id: this.user_id }); const guild_ids = members.map((x) => x.guild_id); const user = await User.findOneOrFail({ id: this.user_id }); - const recipients = await Recipient.find({ where: { id: this.user_id }, relations: ["channel"] }); + const recipients = await Recipient.find({ + where: { user_id: this.user_id }, + relations: ["channel"], + }); const channels = await Channel.find({ guild_id: In(guild_ids) }); const dm_channels = recipients.map((x) => x.channel); const guild_channels = channels.filter((x) => x.guild_id); - const opts: { acknowledge: boolean; channel?: AMQChannel } = { acknowledge: true }; + const opts: { acknowledge: boolean; channel?: AMQChannel } = { + acknowledge: true, + }; const consumer = consume.bind(this); if (RabbitMQ.connection) { @@ -58,13 +63,25 @@ export async function setupListener(this: WebSocket) { this.listeners; this.events[guild] = await listenEvent(guild, consumer, opts); - for (const channel of guild_channels.filter((c) => c.guild_id === guild)) { - if (x.overwriteChannel(channel.permission_overwrites).has("VIEW_CHANNEL")) { - this.events[channel.id] = await listenEvent(channel.id, consumer, opts); + for (const channel of guild_channels.filter( + (c) => c.guild_id === guild + )) { + if ( + x + .overwriteChannel(channel.permission_overwrites) + .has("VIEW_CHANNEL") + ) { + this.events[channel.id] = await listenEvent( + channel.id, + consumer, + opts + ); } } }) - .catch((e) => console.log("couldn't get permission for guild " + guild, e)); + .catch((e) => + console.log("couldn't get permission for guild " + guild, e) + ); } this.once("close", () => { @@ -91,7 +108,12 @@ async function consume(this: WebSocket, opts: EventOpts) { opts.cancel(); break; case "CHANNEL_CREATE": - if (!permission.overwriteChannel(data.permission_overwrites).has("VIEW_CHANNEL")) return; + if ( + !permission + .overwriteChannel(data.permission_overwrites) + .has("VIEW_CHANNEL") + ) + return; // TODO: check if user has permission to channel case "GUILD_CREATE": this.events[id] = await listenEvent(id, consumer, listenOpts); @@ -99,7 +121,11 @@ async function consume(this: WebSocket, opts: EventOpts) { case "CHANNEL_UPDATE": const exists = this.events[id]; // @ts-ignore - if (permission.overwriteChannel(data.permission_overwrites).has("VIEW_CHANNEL")) { + if ( + permission + .overwriteChannel(data.permission_overwrites) + .has("VIEW_CHANNEL") + ) { if (exists) break; this.events[id] = await listenEvent(id, consumer, listenOpts); } else {