irc-webhooks/src/botLineHandlers.go

39 lines
816 B
Go

package main
import (
"fmt"
"github.com/goshuirc/irc-go/ircmsg"
)
func createPong(ping ircmsg.IrcMessage) ircmsg.IrcMessage {
return ircmsg.MakeMessage(nil, "", "PONG", ping.Params[0])
}
func (b *Bot) HandleLine(lineIn string) {
line, err := ircmsg.ParseLine(lineIn)
if err != nil {
b.Logger.Printf("could not parse IRC line: %v", err)
return
}
b.Logger.Printf("<< %s", line.SourceLine)
switch line.Command {
case "PING":
b.sendRaw(createPong(line))
case "001":
b.OnWelcome()
}
}
func (b *Bot) OnWelcome() {
if b.NSNick != "" && b.NSPasswd != "" {
b.sendPrivMessage("NickServ", fmt.Sprintf("IDENTIFY %s %s", b.NSNick, b.NSPasswd))
}
for _, channel := range b.ChansToJoin {
b.joinChannel(channel)
}
}