sircd/sircd/irc.go

36 lines
760 B
Go

package sircd
func (s *sircd) processIRCMessage(m *ircMessage) {
switch m.command {
case "CAP":
s.processCAPCommand(m)
case "NICK":
s.processNICKCommand(m)
case "USER":
s.processUSERCommand(m)
default:
s.processUnknownCommand(m)
}
s.log.Infof(m.String())
s.log.Infof("%+v", m)
}
func (s *sircd) processUnknownCommand(m *ircMessage) {
m.from.RespUnknownCommand(m.command)
}
func (s *sircd) processNICKCommand(m *ircMessage) {
//FIXME check if nick is in use
//FIXME check if nick is valid
m.from.session.SetNick(m.params[0])
}
func (s *sircd) processUSERCommand(m *ircMessage) {
m.from.session.SetUserInfo(m.params[0])
}
func (s *sircd) processCAPCommand(m *ircMessage) {
s.log.Debugln("ignoring CAP command, unsupported")
// pass
}