diff --git a/client.go b/client.go index 071dae3..90316ee 100644 --- a/client.go +++ b/client.go @@ -852,11 +852,14 @@ func (client *Client) handleSendLoop() { func (client *Client) handleEvent(event *Event) { sentCapEnd := false - // IRCv3 `server-time` - if timeTag, ok := event.Tags["time"]; ok { - serverTime, err := time.Parse(time.RFC3339Nano, timeTag) - if err == nil && serverTime.Year() > 2000 { - event.Time = serverTime + // Only use IRCv3 `server-time` to overwrite when requested. Frontends/dependents can still + // get this information. + if client.config.UseServerTime { + if timeTag, ok := event.Tags["time"]; ok { + serverTime, err := time.Parse(time.RFC3339Nano, timeTag) + if err == nil && serverTime.Year() > 2000 { + event.Time = serverTime + } } } diff --git a/config.go b/config.go index ace85ee..7ef93bf 100644 --- a/config.go +++ b/config.go @@ -37,6 +37,9 @@ type Config struct { // Auto-join on invite (bad idea). AutoJoinInvites bool `json:"autoJoinInvites"` + // Whether to use the server time tag to overwrite event time. + UseServerTime bool `json:"useServerTime"` + // Use SASL authorization if supported. SASL *SASLConfig `json:"sasl"` }