summary refs log tree commit diff
path: root/src/api/routes
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/api/routes/channels/#channel_id/messages/index.ts17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts

index 5fdcb6f9..d542ea0f 100644 --- a/src/api/routes/channels/#channel_id/messages/index.ts +++ b/src/api/routes/channels/#channel_id/messages/index.ts
@@ -13,7 +13,11 @@ import { MessageCreateEvent, MessageCreateSchema, Snowflake, - uploadFile + uploadFile, + Member, + MessageCreateSchema, + PluginEventHandler, + PreMessageEventArgs } from "@fosscord/util"; import { Request, Response, Router } from "express"; import multer from "multer"; @@ -206,9 +210,9 @@ router.post( }) ); } - - //Defining member fields - var member = await Member.findOneOrFail({ where: { id: req.user_id }, relations: ["roles"] }); + + //Defining member fields + var member = await Member.findOneOrFail({ where: { id: req.user_id }, relations: ["roles", "user"] }); // TODO: This doesn't work either // member.roles = member.roles.filter((role) => { // return role.id !== role.guild_id; @@ -220,6 +224,11 @@ router.post( // delete message.member.last_message_id; // delete message.member.index; + let blocks = (await PluginEventHandler.preMessageEvent({ + message + } as PreMessageEventArgs)).filter(x=>x.cancel); + if(blocks.length > 0) throw new HTTPError("Message denied.", 400, blocks.filter(x=>x.blockReason).map(x=>x.blockReason)); + await Promise.all([ message.save(), emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent),