diff options
Diffstat (limited to 'irc')
-rw-r--r-- | irc/events.go | 5 | ||||
-rw-r--r-- | irc/session.go | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/irc/events.go b/irc/events.go index eeac8fb..ba6e38d 100644 --- a/irc/events.go +++ b/irc/events.go @@ -51,6 +51,11 @@ type TopicChangeEvent struct { Topic string } +type ModeChangeEvent struct { + Channel string + Mode string +} + type MessageEvent struct { User string Target string diff --git a/irc/session.go b/irc/session.go index f799f38..692daf4 100644 --- a/irc/session.go +++ b/irc/session.go @@ -741,6 +741,14 @@ func (s *Session) handleRegistered(msg Message) Event { Topic: c.Topic, } } + case "MODE": + channelCf := s.Casemap(msg.Params[0]) + if c, ok := s.channels[channelCf]; ok { + return ModeChangeEvent{ + Channel: c.Name, + Mode: strings.Join(msg.Params[1:], " "), + } + } case "PRIVMSG", "NOTICE": targetCf := s.casemap(msg.Params[0]) nickCf := s.casemap(msg.Prefix.Name) |