func (msg *Message) DeleteTag(tagName string) {
	if len(tagName) == 0 {
		return
	} else if tagName[0] == '+' {
		delete(msg.clientOnlyTags, tagName)
	} else {
		delete(msg.tags, tagName)
	}
}
DeleteTag deletes a tag.
package ircmsg
import (
	"bytes"
	"errors"
	"strings"
	"unicode/utf8"
)
const (
	MaxlenTags = 8191
	MaxlenTagData = MaxlenTags - 2
	MaxlenClientTagData = 4094
	MaxlenServerTagData = 4094
	MaxlenTagsFromClient = MaxlenClientTagData + 2
)
var (
	ErrorLineIsEmpty = errors.New("Line is empty")
	ErrorLineContainsBadChar = errors.New("Line contains invalid characters")
	ErrorBodyTooLong = errors.New("Line body exceeded the specified length limit; outgoing messages will be truncated")
	ErrorTagsTooLong = errors.New("Line could not be processed because its tag data exceeded the length limit")
	ErrorInvalidTagContent = errors.New("Line could not be processed because it contained an invalid tag name or value")
	ErrorCommandMissing = errors.New("IRC messages MUST have a command")
	ErrorBadParam = errors.New("Cannot have an empty param, a param with spaces, or a param that starts with ':' before the last parameter")
)
type Message struct {
	Prefix         string
	Command        string
	Params         []string
	forceTrailing  bool
	tags           map[string]string
	clientOnlyTags map[string]string
}
func (msg *Message) ForceTrailing() {
	msg.forceTrailing = true
}
func (msg *Message) GetTag(tagName string) (present bool, value string) {
	if len(tagName) == 0 {
		return
	} else if tagName[0] == '+' {
		value, present = msg.clientOnlyTags[tagName]
		return
	} else {
		value, present = msg.tags[tagName]
		return
	}
}
func (msg *Message) HasTag(tagName string) (present bool) {
	present, _ = msg.GetTag(tagName)
	return
}
func (msg *Message) SetTag(tagName, tagValue string) {
	if len(tagName) == 0 {
		return
	} else if tagName[0] == '+' {
		if msg.clientOnlyTags == nil {
			msg.clientOnlyTags = make(map[string]string)
		}
		msg.clientOnlyTags[tagName] = tagValue
	} else {
		if msg.tags == nil {
			msg.tags = make(map[string]string)
		}
		msg.tags[tagName] = tagValue
	}
}