Skip to content

Commit 2fc6c83

Browse files
committed
ignore events containing unsupported channel types
1 parent bea8935 commit 2fc6c83

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

actions.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@ module.exports = {
411411
if(!data.guild_id) { return; }
412412
const guild = getOrCreateGuild(c, data.guild_id, data.shardId);
413413
const channel = getOrCreateChannel(c, data.channel_id, guild);
414+
if(!channel) { return {}; }
414415
const invite = guild.invites._add(Object.assign(data, { channel, guild }));
415416
return { invite };
416417
},
@@ -422,6 +423,7 @@ module.exports = {
422423
let invite = guild.invites.cache.get(data.code);
423424
if(!invite) {
424425
const channel = getOrCreateChannel(c, data.channel_id, guild);
426+
if(!channel) { return {}; }
425427
invite = guild.invites._add(Object.assign(data, { channel, guild }), false);
426428
invite.partial = true;
427429
}
@@ -433,6 +435,7 @@ module.exports = {
433435
const c = this.client;
434436
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
435437
const channel = getOrCreateChannel(c, data.channel_id, guild);
438+
if(!channel) { return {}; }
436439
channel.lastMessageId = data.id;
437440
const message = channel.messages._add(data);
438441
return { message };
@@ -443,6 +446,7 @@ module.exports = {
443446
const c = this.client;
444447
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
445448
const channel = getOrCreateChannel(c, data.channel_id, guild);
449+
if(!channel) { return {}; }
446450
const message = getOrCreateMessage(channel, data.id);
447451
channel.messages.cache.delete(message.id);
448452
message.deleted = true;
@@ -453,6 +457,7 @@ module.exports = {
453457
const c = this.client;
454458
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
455459
const channel = getOrCreateChannel(c, data.channel_id, guild);
460+
if(!channel) { return {}; }
456461
const deleted = new Collection();
457462
for(const id of data.ids) {
458463
const message = getOrCreateMessage(channel, id);
@@ -467,6 +472,7 @@ module.exports = {
467472
const c = this.client;
468473
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
469474
const channel = getOrCreateChannel(c, data.channel_id, guild);
475+
if(!channel) { return {}; }
470476
let message = channel.messages.cache.get(data.id);
471477
let old;
472478
if(message) {
@@ -488,6 +494,7 @@ module.exports = {
488494
if(!channel) {
489495
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
490496
channel = getOrCreateChannel(c, data.channel_id, guild);
497+
if(!channel) { return {}; }
491498
}
492499
let user = data.user || c.users.cache.get(data.user_id);
493500
if(!user) {
@@ -515,6 +522,7 @@ module.exports = {
515522
const c = this.client;
516523
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
517524
const channel = getOrCreateChannel(c, data.channel_id, guild);
525+
if(!channel) { return {}; }
518526
let user = c.users.cache.get(data.user_id);
519527
if(!user) {
520528
user = c.users._add({ id: data.user_id }, false); // has built in partial
@@ -540,6 +548,7 @@ module.exports = {
540548
const c = this.client;
541549
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
542550
const channel = getOrCreateChannel(c, data.channel_id, guild);
551+
if(!channel) { return {}; }
543552
const message = getOrCreateMessage(channel, data.message_id);
544553
const removed = message.reactions.cache.clone();
545554
message.reactions.cache.clear();
@@ -550,6 +559,7 @@ module.exports = {
550559
const c = this.client;
551560
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
552561
const channel = getOrCreateChannel(c, data.channel_id, guild);
562+
if(!channel) { return {}; }
553563
const message = getOrCreateMessage(channel, data.message_id);
554564
let reaction = message.reactions.cache.get(data.emoji.id ?? decodeURIComponent(data.emoji.name));
555565
if(!reaction) {
@@ -596,6 +606,7 @@ module.exports = {
596606
const c = this.client;
597607
const guild = getOrCreateGuild(c, data.guild_id, data.shardId);
598608
const channel = getOrCreateChannel(c, data.channel_id, guild);
609+
if(!channel) { return {}; }
599610
const stageInstance = channel.guild.stageInstances._add(data);
600611
c.emit(Constants.Events.STAGE_INSTANCE_CREATE, stageInstance);
601612
return { stageInstance };
@@ -605,6 +616,7 @@ module.exports = {
605616
const c = this.client;
606617
const guild = getOrCreateGuild(c, data.guild_id, data.shardId);
607618
const channel = getOrCreateChannel(c, data.channel_id, guild);
619+
if(!channel) { return {}; }
608620
const stageInstance = channel.guild.stageInstances._add(data);
609621
if(stageInstance) {
610622
channel.guild.stageInstances.cache.delete(stageInstance.id);
@@ -618,6 +630,7 @@ module.exports = {
618630
const c = this.client;
619631
const guild = getOrCreateGuild(c, data.guild_id, data.shardId);
620632
const channel = getOrCreateChannel(c, data.channel_id, guild);
633+
if(!channel) { return {}; }
621634
let oldStageInstance = channel.guild.stageInstances.cache.get(data.id)?._clone();
622635
if(!oldStageInstance) {
623636
oldStageInstance = channel.guild.stageInstances._add({ id: data.id }, false);
@@ -739,6 +752,7 @@ module.exports = {
739752
const c = this.client;
740753
const guild = data.guild_id ? getOrCreateGuild(c, data.guild_id, data.shardId) : void 0;
741754
const channel = getOrCreateChannel(c, data.channel_id, guild);
755+
if(!channel) { return; }
742756
let user = c.users.cache.get(data.user_id);
743757
if(!user) {
744758
if(data.member?.user) {
@@ -796,6 +810,7 @@ module.exports = {
796810
const c = this.client;
797811
const guild = getOrCreateGuild(c, data.guild_id, data.shardId);
798812
const channel = getOrCreateChannel(c, data.channel_id, guild);
813+
if(!channel) { return; }
799814
c.emit(Constants.Events.WEBHOOKS_UPDATE, channel);
800815
}
801816

extensions.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ override("/structures/MessageMentions.js", X => class MessageMentions extends X
6868
let matches;
6969
while((matches = this.constructor.CHANNELS_PATTERN.exec(this._content)) !== null) {
7070
const chan = getOrCreateChannel(this.client, matches[1], this.guild);
71+
if(!chan) { continue; }
7172
this._channels.set(chan.id, chan);
7273
}
7374
return this._channels;

functions.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ function getOrCreateChannel(client, id, guild) {
4444
let channel = client.channels.cache.get(id);
4545
if(!channel) {
4646
channel = client.channels._add({ id, type: guild ? 0 : 1 }, guild, { cache: false });
47+
if(!channel) { return null; }
4748
makePartial(channel);
4849
}
4950
return channel;

handlers.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ const handlers = {
8989
CHANNEL_PINS_UPDATE: (client, { d: data }, shard) => {
9090
const guild = data.guild_id ? getOrCreateGuild(client, data.guild_id, shard.id) : void 0;
9191
const channel = getOrCreateChannel(client, data.channel_id, guild);
92+
if(!channel) { return; }
9293
const time = data.last_pin_timestamp ? new Date(data.last_pin_timestamp).getTime() : null;
9394
channel.lastPinTimestamp = time;
9495
client.emit(Constants.Events.CHANNEL_PINS_UPDATE, channel, time);
@@ -264,60 +265,70 @@ const handlers = {
264265
INVITE_CREATE: (client, packet, shard) => {
265266
packet.d.shardId = shard.id;
266267
const { invite } = client.actions.InviteCreate.handle(packet.d);
268+
if(!invite) { return; }
267269
client.emit(Constants.Events.INVITE_CREATE, invite);
268270
},
269271

270272
INVITE_DELETE: (client, packet, shard) => {
271273
packet.d.shardId = shard.id;
272274
const { invite } = client.actions.InviteDelete.handle(packet.d);
275+
if(!invite) { return; }
273276
client.emit(Constants.Events.INVITE_DELETE, invite);
274277
},
275278

276279
MESSAGE_CREATE: (client, packet, shard) => {
277280
packet.d.shardId = shard.id;
278281
const { message } = client.actions.MessageCreate.handle(packet.d);
282+
if(!message) { return; }
279283
client.emit(Constants.Events.MESSAGE_CREATE, message);
280284
},
281285

282286
MESSAGE_DELETE: (client, packet, shard) => {
283287
packet.d.shardId = shard.id;
284288
const { message } = client.actions.MessageDelete.handle(packet.d);
289+
if(!message) { return; }
285290
client.emit(Constants.Events.MESSAGE_DELETE, message);
286291
},
287292

288293
MESSAGE_DELETE_BULK: (client, packet, shard) => {
289294
packet.d.shardId = shard.id;
290295
const { messages } = client.actions.MessageDeleteBulk.handle(packet.d);
296+
if(!messages) { return; }
291297
client.emit(Constants.Events.MESSAGE_BULK_DELETE, messages);
292298
},
293299

294300
MESSAGE_UPDATE: (client, packet, shard) => {
295301
packet.d.shardId = shard.id;
296302
const { old, updated } = client.actions.MessageUpdate.handle(packet.d);
303+
if(!updated) { return; }
297304
client.emit(Constants.Events.MESSAGE_UPDATE, old, updated);
298305
},
299306

300307
MESSAGE_REACTION_ADD: (client, packet, shard) => {
301308
packet.d.shardId = shard.id;
302309
const { reaction, user } = client.actions.MessageReactionAdd.handle(packet.d);
310+
if(!reaction) { return; }
303311
client.emit(Constants.Events.MESSAGE_REACTION_ADD, reaction, user);
304312
},
305313

306314
MESSAGE_REACTION_REMOVE: (client, packet, shard) => {
307315
packet.d.shardId = shard.id;
308316
const { reaction, user } = client.actions.MessageReactionRemove.handle(packet.d);
317+
if(!reaction) { return; }
309318
client.emit(Constants.Events.MESSAGE_REACTION_REMOVE, reaction, user);
310319
},
311320

312321
MESSAGE_REACTION_REMOVE_ALL: (client, packet, shard) => {
313322
packet.d.shardId = shard.id;
314323
const { message, removed } = client.actions.MessageReactionRemoveAll.handle(packet.d);
324+
if(!message) { return; }
315325
client.emit(Constants.Events.MESSAGE_REACTION_REMOVE_ALL, message, removed);
316326
},
317327

318328
MESSAGE_REACTION_REMOVE_EMOJI: (client, packet, shard) => {
319329
packet.d.shardId = shard.id;
320330
const { reaction } = client.actions.MessageReactionRemoveEmoji.handle(packet.d);
331+
if(!reaction) { return; }
321332
client.emit(Constants.Events.MESSAGE_REACTION_REMOVE_EMOJI, reaction);
322333
},
323334

0 commit comments

Comments
 (0)