Пример #1
0
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})
	}
}
Пример #2
0
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)
		}
	}
}
Пример #3
0
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))
		}
	}
}
Пример #4
0
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)
						}
					}
				}
			}
		}
	}
}