commit 359d158
Hubert Hirtz
·
2021-09-13 13:15:30 +0000 UTC
parent fe15e93
Show mode changes
3 files changed,
+25,
-0
M
app.go
+12,
-0
1@@ -648,6 +648,18 @@ func (app *App) handleIRCEvent(ev interface{}) {
2 HeadColor: tcell.ColorGray,
3 Body: body.StyledString(),
4 })
5+ case irc.ModeChangeEvent:
6+ var body ui.StyledStringBuilder
7+ body.Grow(len(ev.Mode) + 13)
8+ body.SetStyle(tcell.StyleDefault.Foreground(tcell.ColorGray))
9+ body.WriteString("Mode change: ")
10+ body.WriteString(ev.Mode)
11+ app.win.AddLine(ev.Channel, ui.NotifyUnread, ui.Line{
12+ At: msg.TimeOrNow(),
13+ Head: "--",
14+ HeadColor: tcell.ColorGray,
15+ Body: body.StyledString(),
16+ })
17 case irc.MessageEvent:
18 buffer, line, hlNotification := app.formatMessage(ev)
19 var notify ui.NotifyType
+5,
-0
1@@ -51,6 +51,11 @@ type TopicChangeEvent struct {
2 Topic string
3 }
4
5+type ModeChangeEvent struct {
6+ Channel string
7+ Mode string
8+}
9+
10 type MessageEvent struct {
11 User string
12 Target string
+8,
-0
1@@ -741,6 +741,14 @@ func (s *Session) handleRegistered(msg Message) Event {
2 Topic: c.Topic,
3 }
4 }
5+ case "MODE":
6+ channelCf := s.Casemap(msg.Params[0])
7+ if c, ok := s.channels[channelCf]; ok {
8+ return ModeChangeEvent{
9+ Channel: c.Name,
10+ Mode: strings.Join(msg.Params[1:], " "),
11+ }
12+ }
13 case "PRIVMSG", "NOTICE":
14 targetCf := s.casemap(msg.Params[0])
15 nickCf := s.casemap(msg.Prefix.Name)