diff --git a/src/handlers/messages.ts b/src/handlers/messages.ts index a068901..0cc3c16 100644 --- a/src/handlers/messages.ts +++ b/src/handlers/messages.ts @@ -144,6 +144,24 @@ export async function handle(rcMessage: RcMessage): Promise { ) return } + const roomCreatorId = ( + await axios.get(`/_synapse/admin/v1/rooms/${room_id}`) + ).data.creator + if (!roomCreatorId) { + log.warn( + `Could not determine room creator for room ${room_id}, using admin credentials.` + ) + } + + log.warn( + `Room creator ${roomCreatorId}.` + ) + if (roomCreatorId == matrixUser) { + log.warn( + `Room creator left room ${room_id}, skipping to prevent being unable to rejoin.` + ) + return + } log.http(`User ${matrixUser} leaves room ${room_id}`) await axios.post(