35 lines
562 B
Go
35 lines
562 B
Go
package command
|
|
|
|
import (
|
|
"github.com/bwmarrin/discordgo"
|
|
)
|
|
|
|
type (
|
|
Router struct {
|
|
commands map[string]*Command
|
|
}
|
|
|
|
Command struct {
|
|
Name string
|
|
Func CommandFunc
|
|
NArgs int
|
|
}
|
|
|
|
CommandFunc func(args []string, s *discordgo.Session, m *discordgo.MessageCreate) error
|
|
)
|
|
|
|
func NewRouter() *Router {
|
|
r := new(Router)
|
|
r.commands = make(map[string]*Command)
|
|
return r
|
|
}
|
|
|
|
func (r *Router) AddCommand(cmd *Command) {
|
|
r.commands[cmd.Name] = cmd
|
|
}
|
|
|
|
func (r *Router) GetCommand(name string) (*Command, bool) {
|
|
cmd, ok := r.commands[name]
|
|
return cmd, ok
|
|
}
|