mirror of https://github.com/velour/catbase.git
Added plugin ordering so that all queries are handled by the correct plugin
This commit is contained in:
parent
c50a908af5
commit
94063c3967
|
@ -10,6 +10,7 @@ type Bot struct {
|
|||
// Each plugin must be registered in our plugins handler. To come: a map so that this
|
||||
// will allow plugins to respond to specific kinds of events
|
||||
Plugins map[string]Handler
|
||||
PluginOrdering []string
|
||||
|
||||
// Users holds information about all of our friends
|
||||
Users []User
|
||||
|
@ -61,7 +62,8 @@ func NewBot(config *config.Config, c *irc.Conn) *Bot {
|
|||
return &Bot{
|
||||
Config: config,
|
||||
Plugins: make(map[string]Handler),
|
||||
Users: make([]User, 1),
|
||||
PluginOrdering: make([]string, 0),
|
||||
Users: make([]User, 0),
|
||||
Conn: c,
|
||||
DbSession: session,
|
||||
Db: db,
|
||||
|
@ -72,4 +74,5 @@ func NewBot(config *config.Config, c *irc.Conn) *Bot {
|
|||
// Adds a constructed handler to the bots handlers list
|
||||
func (b *Bot) AddHandler(name string, h Handler) {
|
||||
b.Plugins[strings.ToLower(name)] = h
|
||||
b.PluginOrdering = append(b.PluginOrdering, name)
|
||||
}
|
||||
|
|
|
@ -130,7 +130,8 @@ func (b *Bot) MsgRecieved(conn *irc.Conn, line *irc.Line) {
|
|||
return
|
||||
}
|
||||
|
||||
for _, p := range b.Plugins {
|
||||
for _, name := range b.PluginOrdering {
|
||||
p := b.Plugins[name]
|
||||
if p.Message(msg) {
|
||||
break
|
||||
}
|
||||
|
@ -163,7 +164,8 @@ func (b *Bot) Help(channel string, parts []string) {
|
|||
|
||||
func (b *Bot) UserJoined(conn *irc.Conn, line *irc.Line) {
|
||||
msg := b.buildMessage(conn, line)
|
||||
for _, p := range b.Plugins {
|
||||
for _, name := range b.PluginOrdering {
|
||||
p := b.Plugins[name]
|
||||
if p.Event(line.Cmd, msg) {
|
||||
break
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue