func (r *Request) Writef(format string, args ...interface{}) {
	r.bot.Writef(format, args...)
}
Writef is a convenience method around fmt.Sprintf and Bot.Write.
package seabird
import (
	"errors"
	"fmt"
	"strings"
	irc "gopkg.in/irc.v3"
)
func (r *Request) Replyf(format string, v ...interface{}) error {
	if len(r.Message.Params) < 1 || len(r.Message.Params[0]) < 1 {
		return errors.New("Invalid IRC message")
	}
	target := r.Message.Prefix.Name
	if r.FromChannel() {
		target = r.Message.Params[0]
	}
	fullMsg := fmt.Sprintf(format, v...)
	for _, resp := range strings.Split(fullMsg, "\n") {
		r.WriteMessage(&irc.Message{
			Prefix:  &irc.Prefix{},
			Command: "PRIVMSG",
			Params: []string{
				target,
				resp,
			},
		})
	}
	return nil
}
func (r *Request) MentionReplyf(format string, v ...interface{}) error {
	if len(r.Message.Params) < 1 || len(r.Message.Params[0]) < 1 {
		return errors.New("Invalid IRC message")
	}
	target := r.Message.Prefix.Name
	prefix := ""
	if r.FromChannel() {
		target = r.Message.Params[0]
		prefix = r.Message.Prefix.Name + ": "
	}
	fullMsg := fmt.Sprintf(format, v...)
	for _, resp := range strings.Split(fullMsg, "\n") {
		r.WriteMessage(&irc.Message{
			Prefix:  &irc.Prefix{},
			Command: "PRIVMSG",
			Params: []string{
				target,
				prefix + resp,
			},
		})
	}
	return nil
}
func (r *Request) PrivateReplyf(format string, v ...interface{}) {
	r.WriteMessage(&irc.Message{
		Prefix:  &irc.Prefix{},
		Command: "PRIVMSG",
		Params: []string{
			r.Message.Prefix.Name,
			fmt.Sprintf(format, v...),
		},
	})
}
func (r *Request) CTCPReplyf(format string, v ...interface{}) error {
	if r.Message.Command != "CTCP" {
		return errors.New("Invalid CTCP message")
	}
	r.WriteMessage(&irc.Message{
		Prefix:  &irc.Prefix{},
		Command: "NOTICE",
		Params: []string{
			r.Message.Prefix.Name,
			fmt.Sprintf(format, v...),
		},
	})
	return nil
}
func (r *Request) WriteMessage(m *irc.Message) {
	r.bot.WriteMessage(m)
}
func (r *Request) Write(line string) {
	r.bot.Write(line)
}