diff --git a/m2d/event-dispatcher.js b/m2d/event-dispatcher.js index c62d805..3425fdb 100644 --- a/m2d/event-dispatcher.js +++ b/m2d/event-dispatcher.js @@ -80,3 +80,14 @@ async event => { const url = event.content.url || null db.prepare("UPDATE channel_room SET custom_avatar = ? WHERE room_id = ?").run(url, event.room_id) })) + +sync.addTemporaryListener(as, "type:m.room.name", guard("m.room.name", +/** + * @param {Ty.Event.StateOuter} event + */ +async event => { + if (event.state_key !== "") return + if (utils.eventSenderIsFromDiscord(event.sender)) return + const name = event.content.name || null + db.prepare("UPDATE channel_room SET nick = ? WHERE room_id = ?").run(name, event.room_id) +})) diff --git a/types.d.ts b/types.d.ts index badbbab..2bf0af0 100644 --- a/types.d.ts +++ b/types.d.ts @@ -70,7 +70,12 @@ export namespace Event { msgtype: "m.text" | "m.emote" body: string format?: "org.matrix.custom.html" - formatted_body?: string + formatted_body?: string, + "m.relates_to"?: { + "m.in_reply_to": { + event_id: string + } + } } export type M_Room_Member = { @@ -84,6 +89,10 @@ export namespace Event { url?: string } + export type M_Room_Name = { + name?: string + } + export type M_Reaction = { "m.relates_to": { rel_type: "m.annotation"