コード例 #1
0
ファイル: client.go プロジェクト: Codesleuth/iirc
func (c clientHandler) OnReceive(l message.M) {
	if l.Command == "QUIT" {
		c.client.Send(message.Message3(
			nil,
			"ERROR",
			message.ParamsT([]string{}, "Closing Link: "+c.client.Name())))

		c.client.Channels().Each(func(ch *channel.Channel) {
			ch.Send(message.Message3(
				message.Prefix(c.client.Name(), c.client.UserName(), c.client.server.Name()),
				"QUIT",
				nil))
		})

		c.client.Close()
		return
	}

	if handler, ok := handlers[l.Command]; ok {
		handler(c.client, c.client.server, l.Args())
	}
}
コード例 #2
0
ファイル: part.go プロジェクト: Codesleuth/iirc
func Part(nickName, userName, serverName, channel string) message.M {
	return message.Message3(
		message.Prefix(nickName, userName, serverName),
		"PART",
		message.ParamsT([]string{channel}, nickName))
}
コード例 #3
0
ファイル: invite.go プロジェクト: Codesleuth/iirc
func Invite(nick, user, host, subject, channel string) message.M {
	return message.Message3(
		message.Prefix(nick, user, host),
		"INVITE",
		message.ParamsT([]string{subject}, channel))
}
コード例 #4
0
ファイル: who_is_idle.go プロジェクト: Codesleuth/iirc
func WhoIsIdle(host, nick string, seconds int) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_WHOISIDLE,
		message.ParamsT([]string{nick, strconv.Itoa(seconds)}, "seconds idle"))
}
コード例 #5
0
ファイル: join.go プロジェクト: Codesleuth/iirc
func Join(nickName, userName, serverName, channelName string) message.M {
	return message.Message3(
		message.Prefix(nickName, userName, serverName),
		"JOIN",
		message.ParamsT([]string{}, channelName))
}
コード例 #6
0
ファイル: unaway.go プロジェクト: Codesleuth/iirc
func UnAway(host string) message.M {
	return message.Message3(
		message.Prefix(host),
		"305",
		message.ParamsT([]string{}, "You are no longer marked as being away"))
}
コード例 #7
0
ファイル: away.go プロジェクト: Codesleuth/iirc
func Away(host, nick, awayMsg string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_AWAY,
		message.ParamsT([]string{nick}, awayMsg))
}
コード例 #8
0
ファイル: who_is_user.go プロジェクト: Codesleuth/iirc
func WhoIsUser(host, nick, user, realName string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_WHOISUSER,
		message.ParamsT([]string{nick, user, host, "*"}, realName))
}
コード例 #9
0
ファイル: errors.go プロジェクト: Codesleuth/iirc
func err(host, code string, params []string, text string) message.M {
	return message.Message3(
		message.Prefix(host),
		code,
		message.ParamsT(params, text))
}
コード例 #10
0
ファイル: notice.go プロジェクト: Codesleuth/iirc
func Notice(nick, user, host, subject, msg string) message.M {
	return message.Message3(
		message.Prefix(nick, user, host),
		"NOTICE",
		message.ParamsT([]string{subject}, msg))
}
コード例 #11
0
ファイル: end_of_ban_list.go プロジェクト: Codesleuth/iirc
func EndOfBanList(host, nick, channel string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_ENDOFBANLIST,
		message.ParamsT([]string{nick, channel}, "End of Channel Ban List"))
}
コード例 #12
0
ファイル: topic.go プロジェクト: Codesleuth/iirc
func Topic(host, channel, topic string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_TOPIC,
		message.ParamsT([]string{channel}, topic))
}
コード例 #13
0
ファイル: who_reply.go プロジェクト: Codesleuth/iirc
func WhoReply(host, me, subject, user, nick, realName string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_WHOREPLY,
		message.ParamsT([]string{me, subject, user, host, host, nick, "H"}, "0 "+realName))
}
コード例 #14
0
ファイル: now_away.go プロジェクト: Codesleuth/iirc
func NowAway(host string) message.M {
	return message.Message3(
		message.Prefix(host),
		"306",
		message.ParamsT([]string{}, "You have been marked as being away"))
}
コード例 #15
0
ファイル: who_is_server.go プロジェクト: Codesleuth/iirc
func WhoIsServer(host, user string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_WHOISSERVER,
		message.ParamsT([]string{user, host}, ""))
}
コード例 #16
0
ファイル: who_is_operator.go プロジェクト: Codesleuth/iirc
func WhoIsOperator(host, nick string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_WHOISOPERATOR,
		message.ParamsT([]string{nick}, "is an IRC oeprator"))
}
コード例 #17
0
ファイル: end_of_names.go プロジェクト: Codesleuth/iirc
func EndOfNames(serverName, nickName, channelName string) message.M {
	return message.Message3(
		message.Prefix(serverName),
		RPL_ENDOFNAMES,
		message.ParamsT([]string{nickName, channelName}, "End of /NAMES list."))
}
コード例 #18
0
ファイル: topic_change.go プロジェクト: Codesleuth/iirc
func TopicChange(nickName, userName, serverName, channel, topic string) message.M {
	return message.Message3(
		message.Prefix(nickName, userName, serverName),
		"TOPIC",
		message.ParamsT([]string{channel}, topic))
}
コード例 #19
0
ファイル: who_is_channels.go プロジェクト: Codesleuth/iirc
func WhoIsChannels(host, nick string, channels []string) message.M {
	return message.Message3(
		message.Prefix(host),
		RPL_WHOISCHANNELS,
		message.ParamsT([]string{nick}, strings.Join(channels, " ")))
}
コード例 #20
0
ファイル: name_reply.go プロジェクト: Codesleuth/iirc
func NameReply(serverName, nickName, channelName string, names []string) message.M {
	return message.Message3(
		message.Prefix(serverName),
		RPL_NAMREPLY,
		message.ParamsT([]string{nickName, "=", channelName}, strings.Join(names, " ")))
}
コード例 #21
0
ファイル: privmsg.go プロジェクト: Codesleuth/iirc
func PrivMsg(nick, user, host, subject, msg string) message.M {
	return message.Message3(
		message.Prefix(nick, user, host),
		"PRIVMSG",
		message.ParamsT([]string{subject}, msg))
}