func (self *SeenModule) HandleServerMessage(srvMsg irc.ServerMessage, c chan irc.ClientMessage) { switch srvMsg := srvMsg.(type) { case *irc.PrivateMessage: if self.GetMyName() == srvMsg.Target { return } nick := strings.Split(srvMsg.From(), "!")[0] time := fmt.Sprintf("%v", time.Now().Unix()) self.SetConfigValue(nick, []string{time, srvMsg.Text}) } }
func (self *StatsModule) HandleServerMessage(srvMsg irc.ServerMessage, c chan irc.ClientMessage) { nick := strings.Split(srvMsg.From(), "!")[0] switch srvMsg := srvMsg.(type) { case *irc.KickMessage: stats := self.loadStats(nick) defer self.SetConfigValue(nick, stats) t, _ := strconv.Atoi(stats["kick"]) stats["kick"] = strconv.Itoa(t + 1) case *irc.JoinMessage: stats := self.loadStats(nick) defer self.SetConfigValue(nick, stats) t, _ := strconv.Atoi(stats["join"]) stats["join"] = strconv.Itoa(t + 1) case *irc.PartMessage: stats := self.loadStats(nick) defer self.SetConfigValue(nick, stats) t, _ := strconv.Atoi(stats["part"]) stats["part"] = strconv.Itoa(t + 1) case *irc.PrivateMessage: stats := self.loadStats(nick) defer self.SetConfigValue(nick, stats) words := strings.Split(srvMsg.Text, " ") if len(words) > 0 { t, _ := strconv.Atoi(stats["word"]) stats["word"] = strconv.Itoa(t + len(words)) t, _ = strconv.Atoi(stats["line"]) stats["line"] = strconv.Itoa(t + 1) t, _ = strconv.Atoi(stats["emo"]) for _, w := range words { if isEmo(w) { t++ } } stats["emo"] = strconv.Itoa(t) } } }
func (self *NickservModule) HandleServerMessage(srvMsg irc.ServerMessage, c chan irc.ClientMessage) { switch srvMsg := srvMsg.(type) { case *irc.NoticeMessage: if strings.Contains(srvMsg.Text, "This nickname is registered") && strings.HasPrefix(srvMsg.From(), "NickServ") { pw, err := self.GetConfigStringValue("password") if err != nil || len(pw) == 0 { return } c <- self.Privmsg("nickserv", fmt.Sprintf("identify %s", pw)) } } }
func (self *DefaultModule) HandleServerMessage(srvMsg irc.ServerMessage, c chan irc.ClientMessage) { switch srvMsg := srvMsg.(type) { case *irc.ConnectedMessage: user, _ := self.GetConfigStringValue("Username") // Error checking should be done nick, _ := self.GetConfigStringValue("Nickname") name, _ := self.GetConfigStringValue("Realname") pass, err := self.GetConfigStringValue("ServerPassword") if err == nil { c <- self.Pass(pass) } c <- self.Nick(nick) c <- self.Raw(fmt.Sprintf("User %s 0 * :%s", user, name)) case *irc.NumericMessage: switch srvMsg.Number { case irc.WELCOME: self.UpdateMyName(srvMsg.Parameter[0]) } case *irc.JoinMessage: if strings.HasPrefix(srvMsg.From(), self.GetMyName()+"!") { self.AddChannel(srvMsg.Channel) } self.AddUserToChannel(srvMsg.From(), srvMsg.Channel) if strings.HasPrefix(srvMsg.From(), "AlphaBernd!") { c <- self.Privmsg(srvMsg.Channel, "What is thy bidding, my master?") // Star Wars für den Endsieg } case *irc.PartMessage: if strings.HasPrefix(srvMsg.From(), self.GetMyName()+"!") { self.RemoveChannel(srvMsg.Channel) } else { self.RemoveUserFromChannel(srvMsg.From(), srvMsg.Channel) } case *irc.QuitMessage: for _, v := range self.GetMyChannels() { self.RemoveUserFromChannel(srvMsg.From(), v) } case *irc.PingMessage: nick := self.GetMyName() c <- self.Pong(srvMsg.From(), nick) case *irc.PrivateMessage: if len(srvMsg.Text) >= 1 { prefix, _ := self.GetConfigStringValue("CmdPrefix") msg := strings.Split(srvMsg.Text, " ") if strings.HasPrefix(msg[0], prefix) { for i := range self.comex { commands := self.comex[i].GetCommands() for key := range commands { if key == msg[0][1:] { self.comex[i].ExecuteCommand(msg[0][1:], msg[1:], srvMsg, c) } } } } } } }