From ba01dd9ce50f756a4bd7673ad9f69af5b794e1d2 Mon Sep 17 00:00:00 2001 From: Dragory Date: Sun, 13 Jan 2019 23:31:09 +0200 Subject: [PATCH] Make several event handlers non-blocking for performance --- src/plugins/AutoReactions.ts | 2 +- src/plugins/MessageSaver.ts | 6 +++++- src/plugins/Persist.ts | 3 ++- src/plugins/PingableRoles.ts | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/plugins/AutoReactions.ts b/src/plugins/AutoReactions.ts index 9970c425..1b8bb000 100644 --- a/src/plugins/AutoReactions.ts +++ b/src/plugins/AutoReactions.ts @@ -101,7 +101,7 @@ export class AutoReactions extends Plugin { if (!realMsg) return; for (const reaction of autoReaction.reactions) { - await realMsg.addReaction(reaction); + realMsg.addReaction(reaction); } } } diff --git a/src/plugins/MessageSaver.ts b/src/plugins/MessageSaver.ts index 2baa04ab..90be12f1 100644 --- a/src/plugins/MessageSaver.ts +++ b/src/plugins/MessageSaver.ts @@ -4,7 +4,7 @@ import { GuildSavedMessages } from "../data/GuildSavedMessages"; import { successMessage } from "../utils"; export class MessageSaverPlugin extends Plugin { - public static pluginName = 'message_saver'; + public static pluginName = "message_saver"; protected savedMessages: GuildSavedMessages; @@ -30,6 +30,7 @@ export class MessageSaverPlugin extends Plugin { } @d.event("messageCreate", "guild", false) + @d.nonBlocking() async onMessageCreate(msg: Message) { // Only save regular chat messages if (msg.type !== 0) { @@ -40,6 +41,7 @@ export class MessageSaverPlugin extends Plugin { } @d.event("messageDelete", "guild", false) + @d.nonBlocking() async onMessageDelete(msg: Message) { if (msg.type != null && msg.type !== 0) { return; @@ -49,6 +51,7 @@ export class MessageSaverPlugin extends Plugin { } @d.event("messageUpdate", "guild", false) + @d.nonBlocking() async onMessageUpdate(msg: Message) { if (msg.type !== 0) { return; @@ -58,6 +61,7 @@ export class MessageSaverPlugin extends Plugin { } @d.event("messageDeleteBulk", "guild", false) + @d.nonBlocking() async onMessageBulkDelete(messages: Message[]) { const ids = messages.map(m => m.id); await this.savedMessages.markBulkAsDeleted(ids); diff --git a/src/plugins/Persist.ts b/src/plugins/Persist.ts index 536ce15a..b92fab6e 100644 --- a/src/plugins/Persist.ts +++ b/src/plugins/Persist.ts @@ -7,7 +7,7 @@ import { LogType } from "../data/LogType"; import { stripObjectToScalars } from "../utils"; export class PersistPlugin extends Plugin { - public static pluginName = 'persist'; + public static pluginName = "persist"; protected persistedData: GuildPersistedData; protected logs: GuildLogs; @@ -57,6 +57,7 @@ export class PersistPlugin extends Plugin { } @d.event("guildMemberAdd") + @d.nonBlocking() async onGuildMemberAdd(_, member: Member) { const persistedData = await this.persistedData.find(member.id); if (!persistedData) return; diff --git a/src/plugins/PingableRoles.ts b/src/plugins/PingableRoles.ts index d8a8b331..ac1e80cf 100644 --- a/src/plugins/PingableRoles.ts +++ b/src/plugins/PingableRoles.ts @@ -81,6 +81,7 @@ export class PingableRoles extends Plugin { } @d.event("typingStart") + @d.nonBlocking() async onTypingStart(channel: TextableChannel, user: User) { const pingableRoles = await this.getPingableRolesForChannel(channel.id); if (pingableRoles.length === 0) return; @@ -98,6 +99,7 @@ export class PingableRoles extends Plugin { } @d.event("messageCreate") + @d.nonBlocking() async onMessageCreate(msg: Message) { const pingableRoles = await this.getPingableRolesForChannel(msg.channel.id); if (pingableRoles.length === 0) return;