diff --git a/src/discordas.ts b/src/discordas.ts index 33b70b2b3404766b314538ebbad82e7693a0aa74..08d03a431b1dd2bcb70b738c3fa046a402df34ba 100644 --- a/src/discordas.ts +++ b/src/discordas.ts @@ -67,7 +67,9 @@ function run (port: number, fileConfig: DiscordBridgeConfig) { controller: { // onUserQuery: userQuery, onAliasQuery: roomhandler.OnAliasQuery.bind(roomhandler), - onEvent: roomhandler.OnEvent.bind(roomhandler), + onEvent: (request, context) => + request.outcomeFrom(Promise.resolve(roomhandler.OnEvent(request, context))) + , onAliasQueried: roomhandler.OnAliasQueried.bind(roomhandler), thirdPartyLookup: roomhandler.ThirdPartyLookup, onLog: (line, isError) => { @@ -84,6 +86,11 @@ function run (port: number, fileConfig: DiscordBridgeConfig) { registration, userStore: config.database.userStorePath, roomStore: config.database.roomStorePath, + // To avoid out of order message sending. + queue: { + type: "per_room", + perRequest: true, + }, }); provisioner.SetBridge(bridge); roomhandler.setBridge(bridge);