3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-13 07:29:30 +01:00

capability: Add server-time

This commit is contained in:
Daniel Oaks 2016-08-13 22:04:21 +10:00
parent e04ef1ca11
commit ef592d160c
3 changed files with 13 additions and 0 deletions

View File

@ -20,6 +20,7 @@ Initial release of Oragono!
* We now advertise the [`RPL_ISUPPORT`](http://modern.ircdocs.horse/#rplisupport-005) numeric.
* Parse new mode change syntax commonly used these days (i.e. `+h-ov dan dan dan`).
* User mode for clients connected via TLS (`+Z`).
* Support for [`server-time`](http://ircv3.net/specs/extensions/server-time-3.2.html).
### Changed
* Added channel Founder/Admin/Halfops (`qah`) privileges, and removed channel creator (`O`) privilege (from RFC2812, not used in the real world).

View File

@ -16,11 +16,13 @@ type Capability string
const (
MultiPrefix Capability = "multi-prefix"
SASL Capability = "sasl"
ServerTime Capability = "server-time"
)
var (
SupportedCapabilities = CapabilitySet{
MultiPrefix: true,
ServerTime: true,
}
)

View File

@ -343,6 +343,16 @@ func (client *Client) destroy() {
// Send sends an IRC line to the client.
func (client *Client) Send(tags *map[string]ircmsg.TagValue, prefix string, command string, params ...string) error {
// attach server-time
if client.capabilities[ServerTime] {
if tags == nil {
tags = ircmsg.MakeTags("time", time.Now().Format(time.RFC3339))
} else {
(*tags)["time"] = ircmsg.MakeTagValue(time.Now().Format(time.RFC3339))
}
}
// send out the message
ircmsg := ircmsg.MakeMessage(tags, prefix, command, params...)
line, err := ircmsg.Line()
if err != nil {