diff options
author | Wim <wim@42.be> | 2019-02-17 21:49:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-17 21:49:45 +0100 |
commit | 0bcb0b882f8f49d9ae889165dc4478d1168e1f25 (patch) | |
tree | e9c23f4f07c46081e12f11e284ec5a39928138ab /bridge/discord/handlers.go | |
parent | 4525fa31aa6ea595c93994b05a3a042965249100 (diff) | |
download | matterbridge-msglm-0bcb0b882f8f49d9ae889165dc4478d1168e1f25.tar.gz matterbridge-msglm-0bcb0b882f8f49d9ae889165dc4478d1168e1f25.tar.bz2 matterbridge-msglm-0bcb0b882f8f49d9ae889165dc4478d1168e1f25.zip |
Support join/leaves from discord. Closes #654 (#721)
Diffstat (limited to 'bridge/discord/handlers.go')
-rw-r--r-- | bridge/discord/handlers.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bridge/discord/handlers.go b/bridge/discord/handlers.go index 8691a612..85bac2ec 100644 --- a/bridge/discord/handlers.go +++ b/bridge/discord/handlers.go @@ -123,3 +123,45 @@ func (b *Bdiscord) memberUpdate(s *discordgo.Session, m *discordgo.GuildMemberUp b.nickMemberMap[m.Member.Nick] = m.Member } } + +func (b *Bdiscord) memberAdd(s *discordgo.Session, m *discordgo.GuildMemberAdd) { + if m.Member == nil { + b.Log.Warnf("Received member update with no member information: %#v", m) + return + } + username := m.Member.User.Username + if m.Member.Nick != "" { + username = m.Member.Nick + } + + rmsg := config.Message{ + Account: b.Account, + Event: config.EventJoinLeave, + Username: "system", + Text: username + " joins", + } + b.Log.Debugf("<= Sending message from %s to gateway", b.Account) + b.Log.Debugf("<= Message is %#v", rmsg) + b.Remote <- rmsg +} + +func (b *Bdiscord) memberRemove(s *discordgo.Session, m *discordgo.GuildMemberRemove) { + if m.Member == nil { + b.Log.Warnf("Received member update with no member information: %#v", m) + return + } + username := m.Member.User.Username + if m.Member.Nick != "" { + username = m.Member.Nick + } + + rmsg := config.Message{ + Account: b.Account, + Event: config.EventJoinLeave, + Username: "system", + Text: username + " leaves", + } + b.Log.Debugf("<= Sending message from %s to gateway", b.Account) + b.Log.Debugf("<= Message is %#v", rmsg) + b.Remote <- rmsg +} |