mc_man/util/message.go

40 lines
706 B
Go

package util
import (
"regexp"
"strings"
)
type Message struct {
User *User
Text string
Output func() string
}
func NewMessage(t string) *Message {
m := new(Message)
msg_user := regexp.MustCompile("<[^>]+>")
tmpUser := msg_user.FindString(t)
tmpUser = strings.Replace(tmpUser, "<", "", -1)
tmpUser = strings.Replace(tmpUser, ">", "", -1)
m.User = FindUser(tmpUser, true)
m.Text = t
if m.User.Index != -1 && m.User.Name != "" {
res := strings.Split(t, "<"+m.User.Name+"> ")
if len(res) > 0 {
m.Text = res[1]
}
}
m.Output = func() string {
if m.User.Index != -1 && m.User.Name != "" {
return "<" + m.User.Name + "> " + m.Text
} else {
return m.Text
}
}
return m
}