39 lines
816 B
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)
|
|
}
|
|
}
|