From bf9f6b32fd3fda1bae76bcbd943dac5051851721 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Fri, 23 Jan 2026 23:37:55 +1300 Subject: [PATCH] Just join if registered in database --- src/m2d/event-dispatcher.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/m2d/event-dispatcher.js b/src/m2d/event-dispatcher.js index e1f6922..75dad4d 100644 --- a/src/m2d/event-dispatcher.js +++ b/src/m2d/event-dispatcher.js @@ -333,14 +333,20 @@ sync.addTemporaryListener(as, "type:m.room.member", guard("m.room.member", */ async event => { if (event.state_key[0] !== "@") return - const bot = `@${reg.sender_localpart}:${reg.ooye.server_name}` - if (event.state_key === bot) { + if (event.state_key === utils.bot) { const upgraded = await roomUpgrade.onBotMembership(event, api, createRoom) if (upgraded) return } - if (event.content.membership === "invite" && event.state_key === bot) { + if (event.content.membership === "invite" && event.state_key === utils.bot) { + // Supposed to be here already? + const guildID = select("guild_space", "guild_id", {space_id: event.room_id}).pluck().get() + if (guildID) { + await api.joinRoom(event.room_id) + return + } + // We were invited to a room. We should join, and register the invite details for future reference in web. let attemptedApiMessage = "According to unsigned invite data." let inviteRoomState = event.unsigned?.invite_room_state @@ -369,7 +375,7 @@ async event => { db.prepare("DELETE FROM member_cache WHERE room_id = ? and mxid = ?").run(event.room_id, event.state_key) // Unregister room's use as a direct chat if the bot itself left - if (event.state_key === bot) { + if (event.state_key === utils.bot) { db.prepare("DELETE FROM direct WHERE room_id = ?").run(event.room_id) } }