diff --git a/src/bot.ts b/src/bot.ts index 176d81c87f3e651836420f94ca524fafc4fcf300..1a67e3a5714abc9f8ca18c5643d480ca0b8a5603 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -76,7 +76,7 @@ export class DiscordBot { private roomHandler: MatrixRoomHandler; private provisioner: Provisioner; /* Caches */ - private roomIdsForGuildCache: Map<string, {roomIds: string[], ts: number}>; + private roomIdsForGuildCache: Map<string, {roomIds: string[], ts: number}> = new Map(); /* Handles messages queued up to be sent to discord. */ private discordMessageQueue: { [channelId: string]: Promise<void> }; diff --git a/tools/chanfix.ts b/tools/chanfix.ts index b37b0fe9a35fdc892ed37118e19108497c359612..a7c1904e89111c48a3a6b197626e9f708e5ab88e 100644 --- a/tools/chanfix.ts +++ b/tools/chanfix.ts @@ -80,8 +80,6 @@ const clientFactory = new ClientFactory({ token: registration.as_token, url: config.bridge.homeserverUrl, }); -const discordstore = new DiscordStore(config.database ? config.database.filename : "discord.db"); -const discordbot = new DiscordBot("", config, null, discordstore); const bridge = new Bridge({ clientFactory, @@ -102,7 +100,11 @@ const bridge = new Bridge({ async function run() { await bridge.loadDatabases(); - await discordstore.init(); + const store = new DiscordStore(config.database); + await store.init(undefined, bridge.getRoomStore()); + const discordbot = new DiscordBot(botUserId, config, bridge, store); + await discordbot.init(); + bridge._clientFactory = clientFactory; bridge._botClient = bridge._clientFactory.getClientAs(); bridge._botIntent = new Intent(bridge._botClient, bridge._botClient, { registered: true }); diff --git a/tools/ghostfix.ts b/tools/ghostfix.ts index 3e9a4ced371aba06b27820ba0b2c945b7ae85499..6e9583846046e531706dfa4736be495085e095d0 100644 --- a/tools/ghostfix.ts +++ b/tools/ghostfix.ts @@ -110,6 +110,7 @@ const bridge = new Bridge({ async function run() { await bridge.loadDatabases(); const store = new DiscordStore(config.database); + await store.init(undefined, bridge.getRoomStore()); const discordbot = new DiscordBot(botUserId, config, bridge, store); await discordbot.init(); bridge._clientFactory = clientFactory; @@ -128,7 +129,7 @@ async function run() { let currentSchedule = JOIN_ROOM_SCHEDULE[0]; const doJoin = async () => { await Util.DelayedPromise(currentSchedule); - await discordbot.UserSyncroniser.OnUpdateGuildMember(member, true); + await discordbot.UserSyncroniser.OnUpdateGuildMember(member, true, false); }; const errorHandler = async (err) => { log.error(`Error joining rooms for ${member.id}`);