diff --git a/src/discordas.ts b/src/discordas.ts index 6771e668a2d75225ee329795b4c3d7908235a583..a328294c78f199fbd81ee2fe8f990ae12e1c3a1e 100644 --- a/src/discordas.ts +++ b/src/discordas.ts @@ -122,7 +122,6 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { userStore: config.database.userStorePath, // To avoid out of order message sending. }); - provisioner.SetBridge(bridge); roomhandler.setBridge(bridge); discordbot.setBridge(bridge); discordbot.setRoomHandler(roomhandler); @@ -134,6 +133,7 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { log.info("Initing store."); await discordstore.init(); log.info("Initing bot."); + provisioner.setStore(discordstore.roomStore); await discordbot.run(); log.info("Discordbot started successfully."); } catch (err) { diff --git a/src/provisioner.ts b/src/provisioner.ts index 68980f092a70f18cf1c14893abf04ed0b35c7fd3..d2d066c4f84f2440d824b1862cf90a3f18ee8215 100644 --- a/src/provisioner.ts +++ b/src/provisioner.ts @@ -20,16 +20,17 @@ import { MatrixRoom, } from "matrix-appservice-bridge"; import * as Discord from "discord.js"; +import { DbRoomStore } from "./db/roomstore"; const PERMISSION_REQUEST_TIMEOUT = 300000; // 5 minutes export class Provisioner { - private bridge: Bridge; private pendingRequests: Map<string, (approved: boolean) => void> = new Map(); // [channelId]: resolver fn + private roomStore: DbRoomStore; - public SetBridge(bridge: Bridge): void { - this.bridge = bridge; + public setStore(roomStore: DbRoomStore) { + this.roomStore = roomStore; } public BridgeMatrixRoom(channel: Discord.TextChannel, roomId: string) { @@ -40,12 +41,11 @@ export class Provisioner { remote.set("plumbed", true); const local = new MatrixRoom(roomId); - this.bridge.getRoomStore().linkRooms(local, remote); - this.bridge.getRoomStore().setMatrixRoom(local); // Needs to be done after linking + this.roomStore.linkRooms(local, remote); } public UnbridgeRoom(remoteRoom: RemoteRoom) { - return this.bridge.getRoomStore().removeEntriesByRemoteRoomId(remoteRoom.getId()); + return this.roomStore.removeEntriesByRemoteRoomId(remoteRoom.getId()); } public async AskBridgePermission(