diff --git a/bridge/config/config.go b/bridge/config/config.go index 0fa76b52..30368f66 100644 --- a/bridge/config/config.go +++ b/bridge/config/config.go @@ -126,7 +126,7 @@ type Protocol struct { } type ChannelOptions struct { - Key string // irc + Key string // irc, xmpp WebhookURL string // discord } diff --git a/bridge/xmpp/xmpp.go b/bridge/xmpp/xmpp.go index 0e2d951c..4ace2abd 100644 --- a/bridge/xmpp/xmpp.go +++ b/bridge/xmpp/xmpp.go @@ -65,7 +65,12 @@ func (b *Bxmpp) Disconnect() error { } func (b *Bxmpp) JoinChannel(channel config.ChannelInfo) error { - b.xc.JoinMUCNoHistory(channel.Name+"@"+b.GetString("Muc"), b.GetString("Nick")) + if channel.Options.Key != "" { + b.Log.Debugf("using key %s for channel %s", channel.Options.Key, channel.Name) + b.xc.JoinProtectedMUC(channel.Name+"@"+b.GetString("Muc"), b.GetString("Nick"), channel.Options.Key, xmpp.NoHistory, 0, nil) + } else { + b.xc.JoinMUCNoHistory(channel.Name+"@"+b.GetString("Muc"), b.GetString("Nick")) + } return nil } diff --git a/matterbridge.toml.sample b/matterbridge.toml.sample index 2a77bca1..1f942e50 100644 --- a/matterbridge.toml.sample +++ b/matterbridge.toml.sample @@ -1392,9 +1392,9 @@ enable=true #REQUIRED channel="#testing" - #OPTIONAL - only used for IRC protocol at the moment + #OPTIONAL - only used for IRC and XMPP protocols at the moment [gateway.in.options] - #OPTIONAL - your irc channel key + #OPTIONAL - your irc / xmpp channel key key="yourkey" @@ -1403,9 +1403,9 @@ enable=true account="irc.freenode" channel="#testing" - #OPTIONAL - only used for IRC protocol at the moment + #OPTIONAL - only used for IRC and XMPP protocols at the moment [gateway.out.options] - #OPTIONAL - your irc channel key + #OPTIONAL - your irc / xmpp channel key key="yourkey" #[[gateway.inout]] can be used when then channel will be used to receive from @@ -1414,9 +1414,9 @@ enable=true account="mattermost.work" channel="off-topic" - #OPTIONAL - only used for IRC protocol at the moment + #OPTIONAL - only used for IRC and XMPP protocols at the moment [gateway.inout.options] - #OPTIONAL - your irc channel key + #OPTIONAL - your irc / xmpp channel key key="yourkey" [[gateway.inout]]