commit b7f3fa1

delthas  ·  2021-11-24 17:03:54 +0000 UTC
parent b813210
Merge MODE messages

Also, fix an issue where mode strings only displayed the first
parameter.
2 files changed,  +6, -4
M app.go
M app.go
+2, -1
 1@@ -1009,12 +1009,13 @@ func (app *App) formatEvent(ev irc.Event) ui.Line {
 2 			Body:      ui.Styled(body, tcell.StyleDefault.Foreground(tcell.ColorGray)),
 3 		}
 4 	case irc.ModeChangeEvent:
 5-		body := fmt.Sprintf("Mode change: %s", ev.Mode)
 6+		body := fmt.Sprintf("[%s]", ev.Mode)
 7 		return ui.Line{
 8 			At:        ev.Time,
 9 			Head:      "--",
10 			HeadColor: tcell.ColorGray,
11 			Body:      ui.Styled(body, tcell.StyleDefault.Foreground(tcell.ColorGray)),
12+			Mergeable: true,
13 		}
14 	default:
15 		return ui.Line{}
+4, -3
 1@@ -927,10 +927,11 @@ func (s *Session) handleMessageRegistered(msg Message, playback bool) (Event, er
 2 			}, nil
 3 		}
 4 	case "MODE":
 5-		var channel, mode string
 6-		if err := msg.ParseParams(&channel, &mode); err != nil {
 7+		var channel string
 8+		if err := msg.ParseParams(&channel, nil); err != nil {
 9 			return nil, err
10 		}
11+		mode := strings.Join(msg.Params[1:], " ")
12 
13 		if playback {
14 			return ModeChangeEvent{
15@@ -943,7 +944,7 @@ func (s *Session) handleMessageRegistered(msg Message, playback bool) (Event, er
16 		channelCf := s.Casemap(channel)
17 
18 		if c, ok := s.channels[channelCf]; ok {
19-			modeChanges, err := ParseChannelMode(mode, msg.Params[2:], s.chanmodes, s.prefixModes)
20+			modeChanges, err := ParseChannelMode(msg.Params[1], msg.Params[2:], s.chanmodes, s.prefixModes)
21 			if err != nil {
22 				return nil, err
23 			}