diff --git a/bot/handlers.go b/bot/handlers.go index 0a4781e..5c52005 100644 --- a/bot/handlers.go +++ b/bot/handlers.go @@ -22,7 +22,7 @@ func (b *bot) Receive(kind Kind, msg msg.Message, args ...interface{}) bool { // msg := b.buildMessage(client, inMsg) // do need to look up user and fix it - if kind == Message && strings.HasPrefix(msg.Body, "help ") && msg.Command { + if kind == Message && strings.HasPrefix(msg.Body, "help") && msg.Command { parts := strings.Fields(strings.ToLower(msg.Body)) b.checkHelp(msg.Channel, parts) goto RET @@ -64,6 +64,7 @@ func (b *bot) checkHelp(channel string, parts []string) { // just print out a list of help topics topics := "Help topics: about variables" for name, _ := range b.plugins { + name = strings.Split(strings.TrimPrefix(name, "*"), ".")[0] topics = fmt.Sprintf("%s, %s", topics, name) } b.Send(Message, channel, topics) @@ -77,13 +78,19 @@ func (b *bot) checkHelp(channel string, parts []string) { b.listVars(channel, parts) return } - plugin, ok := b.plugins[parts[1]] - if ok { - b.runCallback(plugin, Help, msg.Message{Channel: channel}, channel, parts) - } else { - msg := fmt.Sprintf("I'm sorry, I don't know what %s is!", parts[1]) - b.Send(Message, channel, msg) + for name, plugin := range b.plugins { + if strings.HasPrefix(name, "*"+parts[1]) { + if b.runCallback(plugin, Help, msg.Message{Channel: channel}, channel, parts) { + return + } else { + msg := fmt.Sprintf("I'm sorry, I don't know how to help you with %s.", parts[1]) + b.Send(Message, channel, msg) + return + } + } } + msg := fmt.Sprintf("I'm sorry, I don't know what %s is!", strings.Join(parts, " ")) + b.Send(Message, channel, msg) } } diff --git a/plugins/twitch/twitch.go b/plugins/twitch/twitch.go index 3e3081a..3046709 100644 --- a/plugins/twitch/twitch.go +++ b/plugins/twitch/twitch.go @@ -78,6 +78,7 @@ func New(b bot.Bot) *TwitchPlugin { } b.Register(p, bot.Message, p.message) + b.Register(p, bot.Help, p.help) p.registerWeb() return p @@ -144,6 +145,7 @@ func (p *TwitchPlugin) help(kind bot.Kind, message msg.Message, args ...interfac msg += fmt.Sprintf("twitch.istpl (default: %s)\n", isStreamingTplFallback) msg += fmt.Sprintf("twitch.nottpl (default: %s)\n", notStreamingTplFallback) msg += fmt.Sprintf("twitch.stoppedtpl (default: %s)\n", stoppedStreamingTplFallback) + msg += "You can reset all messages with `!reset twitch`" msg += "And you can ask who is streaming with `!twitch status`" p.Bot.Send(bot.Message, message.Channel, msg) return true