continue if user is already invited

This commit is contained in:
Cadence Ember 2023-09-03 10:47:01 +12:00
parent 6803b156bc
commit dd4e3aa8e0
2 changed files with 13 additions and 6 deletions

View file

@ -72,8 +72,16 @@ async function ensureSimJoined(user, roomID) {
// Ensure joined
const existing = db.prepare("SELECT * FROM sim_member WHERE room_id = ? and mxid = ?").get(roomID, mxid)
if (!existing) {
await api.inviteToRoom(roomID, mxid)
await api.joinRoom(roomID, mxid)
try {
await api.inviteToRoom(roomID, mxid)
await api.joinRoom(roomID, mxid)
} catch (e) {
if (e.message.includes("is already in the room.")) {
// Sweet!
} else {
throw e
}
}
db.prepare("INSERT INTO sim_member (room_id, mxid) VALUES (?, ?)").run(roomID, mxid)
}
return mxid

View file

@ -171,13 +171,12 @@ async function setUserPower(roomID, mxid, power) {
assert(mxid[0] === "@")
// Yes there's no shortcut https://github.com/matrix-org/matrix-appservice-bridge/blob/2334b0bae28a285a767fe7244dad59f5a5963037/src/components/intent.ts#L352
const powerLevels = await getStateEvent(roomID, "m.room.power_levels", "")
const users = powerLevels.users || {}
powerLevels.users = powerLevels.users || {}
if (power != null) {
users[mxid] = power
powerLevels.users[mxid] = power
} else {
delete users[mxid]
delete powerLevels.users[mxid]
}
powerLevels.users = users
await sendState(roomID, "m.room.power_levels", "", powerLevels)
return powerLevels
}