Fix active command matching

This commit is contained in:
Tulir Asokan 2018-09-21 23:33:37 +03:00
parent b805641ea4
commit f06c6dd767
3 changed files with 7 additions and 3 deletions

View file

@ -43,6 +43,7 @@ func (pc *ParsedCommand) parseCommandSyntax(command maubot.Command) error {
argumentEncountered := false
regexBuilder.WriteString("^!")
swBuilder.WriteRune('!')
words := strings.Split(command.Syntax, " ")
for i, word := range words {
argument, ok := command.Arguments[word]
@ -50,8 +51,10 @@ func (pc *ParsedCommand) parseCommandSyntax(command maubot.Command) error {
if ok && len(word) > 0 /*&& word[0] == '$'*/ {
argumentEncountered = true
regex := argument.Matches
if argument.Required {
if !argument.Required {
regex = fmt.Sprintf("(?:%s)?", regex)
} else {
regex = fmt.Sprintf("(%s)", regex)
}
pc.Arguments = append(pc.Arguments, word)
regexBuilder.WriteString(regex)