func (m *MessageGetMsgsResult) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
GetData - gets MessageData.
package main
import (
	"errors"
)
type BaseMessage interface {
	GetData() *MessageData
}
type MessageData struct {
	id    string
	hasID bool
}
func (m *MessageData) SetID(id string) {
	m.hasID = true
	m.id = id
}
func (m *MessageData) GetID() (string, bool) {
	if m.hasID {
		return m.id, true
	}
	return "", false
}
func (m *MessageData) ClearID() {
	m.hasID = false
	m.id = ""
}
func (m *MessageData) CopyID(m2 *MessageData) {
	m2id, ok := m2.GetID()
	if ok {
		m.hasID = true
		m.id = m2id
	} else {
		m.hasID = false
		m.id = ""
	}
}
type MessageQuit struct {
	md      *MessageData
	Message string
}
func (m *MessageQuit) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageFatal struct {
	md      *MessageData
	Message string
}
func (m *MessageFatal) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageNote struct {
	md      *MessageData
	Message string
}
func (m *MessageNote) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageOk struct {
	md      *MessageData
	Message string
}
func (m *MessageOk) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageFail struct {
	md      *MessageData
	Message string
}
func (m *MessageFail) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageRegister struct {
	md   *MessageData
	Name string
	Pass string
}
func (m *MessageRegister) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageLogin struct {
	md   *MessageData
	Name string
	Pass string
}
func (m *MessageLogin) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageNewChannel struct {
	md    *MessageData
	Name  string
	Topic string
}
func (m *MessageNewChannel) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageDeleteChannel struct {
	md   *MessageData
	Name string
}
func (m *MessageDeleteChannel) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageChannelTopic struct {
	md    *MessageData
	Name  string
	Topic string
}
func (m *MessageChannelTopic) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageSubscribe struct {
	md   *MessageData
	Name string
	Subbed bool
}
func (m *MessageSubscribe) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessagePostMsg struct {
	md      *MessageData
	Content string
	Channel string
	MsgObj  *ChatMessage
}
func (m *MessagePostMsg) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageGetMsgs struct {
	md        *MessageData
	ChannelID int
	MessageID int
	Amount    int
}
func (m *MessageGetMsgs) GetData() *MessageData {
	if m.md == nil {
		m.md = &MessageData{}
	}
	return m.md
}
type MessageGetMsgsResult struct {
	md       *MessageData
	Messages []*ChatMessage
}