Эх сурвалжийг харах

Fix some relaybot room create issues

Fixes #270
Fixes #236
Tulir Asokan 4 жил өмнө
parent
commit
e19f8c7532
2 өөрчлөгдсөн 7 нэмэгдсэн , 3 устгасан
  1. 5 1
      commands.go
  2. 2 2
      portal.go

+ 5 - 1
commands.go

@@ -873,9 +873,13 @@ func (handler *CommandHandler) CommandPM(ce *CommandEvent) {
 	puppet.Sync(user, contact)
 	portal := user.bridge.GetPortalByJID(database.NewPortalKey(contact.JID, user.JID))
 	if len(portal.MXID) > 0 {
-		err := portal.MainIntent().EnsureInvited(portal.MXID, user.MXID)
+		var err error
+		if !user.IsRelaybot {
+			err = portal.MainIntent().EnsureInvited(portal.MXID, user.MXID)
+		}
 		if err != nil {
 			portal.log.Warnfln("Failed to invite %s to portal: %v. Creating new portal", user.MXID, err)
+			portal.MXID = ""
 		} else {
 			ce.Reply("You already have a private chat portal with that user at [%s](https://matrix.to/#/%s)", puppet.Displayname, portal.MXID)
 			return

+ 2 - 2
portal.go

@@ -1122,7 +1122,7 @@ func (portal *Portal) CreateMatrixRoom(user *User) error {
 		if metadata.Announce {
 			portal.RestrictMessageSending(metadata.Announce)
 		}
-	} else {
+	} else if !user.IsRelaybot {
 		customPuppet := portal.bridge.GetPuppetByCustomMXID(user.MXID)
 		if customPuppet != nil && customPuppet.CustomIntent() != nil {
 			_ = customPuppet.CustomIntent().EnsureJoined(portal.MXID)
@@ -1132,7 +1132,7 @@ func (portal *Portal) CreateMatrixRoom(user *User) error {
 		portal.SyncBroadcastRecipients(broadcastMetadata)
 	}
 	inCommunity := user.addPortalToCommunity(portal)
-	if portal.IsPrivateChat() {
+	if portal.IsPrivateChat() && !user.IsRelaybot {
 		puppet := user.bridge.GetPuppetByJID(portal.Key.JID)
 		user.addPuppetToCommunity(puppet)