diff options
| author | Hubert Hirtz <hubert@hirtzfr.eu> | 2020-08-05 22:41:32 +0200 |
|---|---|---|
| committer | Hubert Hirtz <hubert@hirtzfr.eu> | 2020-08-05 22:41:32 +0200 |
| commit | d0dbcfee3bc32a8e0f8765363c1f5516161a4a76 (patch) | |
| tree | 578b5f879d0153eaf34a26ba91106c4a1ecda6ca /irc | |
| parent | Fix colors not being reset with \x03 (diff) | |
Show NICK changes
Diffstat (limited to 'irc')
| -rw-r--r-- | irc/events.go | 20 | ||||
| -rw-r--r-- | irc/states.go | 16 |
2 files changed, 32 insertions, 4 deletions
diff --git a/irc/events.go b/irc/events.go index 72a5880..b585915 100644 --- a/irc/events.go +++ b/irc/events.go @@ -34,6 +34,22 @@ func (c ChannelEvent) ChannelMapped() (channel string) { return } +type SelfNickEvent struct { + FormerNick string + NewNick string + Time time.Time +} + +type UserNickEvent struct { + FormerNick string + NewNick string + Time time.Time +} + +type SelfJoinEvent struct { + ChannelEvent +} + type UserJoinEvent struct { UserEvent ChannelEvent @@ -50,10 +66,6 @@ type UserPartEvent struct { Time time.Time } -type SelfJoinEvent struct { - ChannelEvent -} - type QueryMessageEvent struct { UserEvent Command string diff --git a/irc/states.go b/irc/states.go index 727dfa3..2e0edf9 100644 --- a/irc/states.go +++ b/irc/states.go @@ -736,10 +736,26 @@ func (s *Session) handleInner(msg Message) (err error) { newNick := msg.Params[0] lNewNick := strings.ToLower(newNick) + t, ok := msg.Time() + if !ok { + t = time.Now() + } + if lNick == s.lNick { + s.evts <- SelfNickEvent{ + FormerNick: s.nick, + NewNick: newNick, + Time: t, + } s.nick = newNick s.lNick = lNewNick } else { + s.evts <- UserNickEvent{ + FormerNick: nick, + NewNick: newNick, + Time: t, + } + // TODO update state } case "FAIL": fmt.Println("FAIL", msg.Params) |
