Can no longer send messages to channel types that do not support it ( categories, voice etc )

This commit is contained in:
Madeline 2022-04-23 01:28:03 +10:00
parent 7e7a2d3619
commit 2846e970b4
2 changed files with 16 additions and 0 deletions

View File

@ -183,6 +183,9 @@ router.post(
}
}
const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] });
if (!channel.isWritable()) {
throw new HTTPError(`Cannot send messages to channel of type ${channel.type}`, 400)
}
const embeds = body.embeds || [];
if (body.embed) embeds.push(body.embed);
@ -220,6 +223,8 @@ router.post(
})
);
}
//Fix for the client bug
delete message.member

View File

@ -352,6 +352,17 @@ export class Channel extends BaseClass {
isDm() {
return this.type === ChannelType.DM || this.type === ChannelType.GROUP_DM;
}
// Does the channel support sending messages ( eg categories do not )
isWritable() {
const disallowedChannelTypes = [
ChannelType.GUILD_CATEGORY,
ChannelType.GUILD_VOICE, // TODO: Remove this when clients can send messages to voice channels on discord.com
ChannelType.GUILD_STAGE_VOICE,
ChannelType.VOICELESS_WHITEBOARD,
];
return disallowedChannelTypes.indexOf(this.type) == -1;
}
}
export interface ChannelPermissionOverwrite {