diff --git a/irc/client.go b/irc/client.go index fcf73b50..69f57b5e 100644 --- a/irc/client.go +++ b/irc/client.go @@ -156,11 +156,13 @@ func (client *Client) Destroy() error { return nil } -func (client *Client) Reply(reply Reply) error { +func (client *Client) Reply(replies ...Reply) error { if client.replies == nil { return ErrAlreadyDestroyed } - client.replies <- reply + for _, reply := range replies { + client.replies <- reply + } return nil } diff --git a/irc/reply.go b/irc/reply.go index 58059a9a..1d52b579 100644 --- a/irc/reply.go +++ b/irc/reply.go @@ -349,3 +349,7 @@ func ErrChanOPrivIsNeeded(channel *Channel) Reply { return NewNumericReply(channel.server, ERR_CHANOPRIVSNEEDED, "%s :You're not channel operator", channel.name) } + +func ErrNoMOTD(server *Server) Reply { + return NewNumericReply(server, ERR_NOMOTD, ":MOTD File is missing") +} diff --git a/irc/server.go b/irc/server.go index ae19faa1..afe337e1 100644 --- a/irc/server.go +++ b/irc/server.go @@ -142,18 +142,19 @@ func (s *Server) GenerateGuestNick() string { func (s *Server) tryRegister(c *Client) { if !c.registered && c.HasNick() && c.HasUsername() { c.registered = true - replies := []Reply{ + c.Reply( RplWelcome(s, c), RplYourHost(s), RplCreated(s), - RplMyInfo(s), - } - for _, reply := range replies { - c.Reply(reply) - } + RplMyInfo(s)) + server.MOTD(c) } } +func (server *Server) MOTD(client *Client) { + c.Reply(ErrNoMOTD(server)) +} + func (s *Server) Id() string { return s.name }