Exemplo n.º 1
0
// 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)
					}
				}
			}()
		}
	}
}
Exemplo n.º 2
0
// 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:])
		}
	}
}
Exemplo n.º 3
0
func (t *TextMessageEventWrapper) PlainText() string {
	return gumbleutil.PlainText(&t.TextMessageEvent.TextMessage)
}