// OnTextMessage event. Checks for command prefix and passes it to the Commander // if it exists. Ignores the incoming message otherwise. func (dj *MumbleDJ) OnTextMessage(e *gumble.TextMessageEvent) { plainMessage := gumbleutil.PlainText(&e.TextMessage) if len(plainMessage) != 0 { if plainMessage[0] == viper.GetString("commands.prefix")[0] && plainMessage != viper.GetString("commands.prefix") { go func() { message, isPrivateMessage, err := dj.FindAndExecuteCommand(e.Sender, plainMessage[1:]) if err != nil { logrus.WithFields(logrus.Fields{ "user": e.Sender.Name, "message": err.Error(), }).Warnln("Sending an error message...") dj.SendPrivateMessage(e.Sender, fmt.Sprintf("<b>Error:</b> %s", err.Error())) } else { if isPrivateMessage { logrus.WithFields(logrus.Fields{ "user": e.Sender.Name, "message": message, }).Infoln("Sending a private message...") dj.SendPrivateMessage(e.Sender, message) } else { logrus.WithFields(logrus.Fields{ "channel": dj.Client.Self.Channel.Name, "message": message, }).Infoln("Sending a message to channel...") dj.Client.Self.Channel.Send(message, false) } } }() } } }
// OnTextMessage event. Checks for command prefix, and calls parseCommand if it exists. Ignores // the incoming message otherwise. func (dj *mumbledj) OnTextMessage(e *gumble.TextMessageEvent) { plainMessage := gumbleutil.PlainText(&e.TextMessage) if len(plainMessage) != 0 { if plainMessage[0] == dj.conf.General.CommandPrefix[0] && plainMessage != dj.conf.General.CommandPrefix { parseCommand(e.Sender, e.Sender.Name, plainMessage[1:]) } } }
func (t *TextMessageEventWrapper) PlainText() string { return gumbleutil.PlainText(&t.TextMessageEvent.TextMessage) }