message.go
func ParseMessage(line string) Message {
	// Uncomment this and recoverMessage if debugging a message that crashes the parser
	//defer recoverMessage(line)

	ircMessage, err := parseIRCMessage(line)
	if err != nil {
		return parseRawMessage(ircMessage)
	}

	if mt, ok := messageTypeMap[ircMessage.Command]; ok {
		return mt.Parser(ircMessage)
	}

	return parseRawMessage(ircMessage)
}
func ParseMessage(line string) Message {
	// Uncomment this and recoverMessage if debugging a message that crashes the parser
	//defer recoverMessage(line)

	ircMessage, err := parseIRCMessage(line)
	if err != nil {
		return parseRawMessage(ircMessage)
	}

	if mt, ok := messageTypeMap[ircMessage.Command]; ok {
		return mt.Parser(ircMessage)
	}

	return parseRawMessage(ircMessage)
}
// ParseMessage parse a raw Twitch IRC message