Extended bot.RawArguments

This commit is contained in:
diamondburned (Forefront) 2020-01-25 13:01:05 -08:00
parent cea3e47c27
commit bdcc863d45
2 changed files with 21 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import (
"errors"
"reflect"
"strconv"
"strings"
)
type argumentValueFn func(string) (reflect.Value, error)
@ -26,14 +27,32 @@ type ManualParseable interface {
// RawArguments implements ManualParseable, in case you want to implement a
// custom argument parser. It borrows the library's argument parser.
type RawArguments struct {
Command string
Arguments []string
}
func (r *RawArguments) ParseContent(args []string) error {
r.Arguments = args
r.Command = args[0]
if len(args) > 1 {
r.Arguments = args[1:]
}
return nil
}
func (r *RawArguments) Arg(n int) string {
if n < 0 || n >= len(r.Arguments) {
return ""
}
return r.Arguments[n]
}
func (r *RawArguments) String() string {
return r.Command + " " + strings.Join(r.Arguments, " ")
}
// Argument is each argument in a method.
type Argument struct {
String string

View File

@ -42,7 +42,7 @@ func (f *Flag) ParseContent(arguments []string) error {
}
func (f *Flag) Usage() string {
return "flags..."
return "[flags] arguments..."
}
func (f *Flag) Command() string {