New mod management, new parameter -mods

This commit is contained in:
Andreas Neue
2016-03-19 23:49:41 +01:00
parent 1dad661ceb
commit 7bffa566c5
13 changed files with 57 additions and 43 deletions
+28 -5
View File
@@ -13,21 +13,44 @@ import (
)
var (
SayCh chan string
MsgHandlers = make(map[string]func(*irc.Message))
ModParams = make(map[string]string)
SayCh chan string
MsgFuncs = make(map[string]func(*irc.Message))
RunFuncs = make(map[string]func())
ModParams = make(map[string]string)
)
func Init(ch chan string, params string) {
func Init(ch chan string, mods, params string) {
SayCh = ch
for mod, _ := range MsgFuncs {
if !contains(strings.Split(mods, ","), mod) {
delete(MsgFuncs, mod)
}
}
for mod, _ := range RunFuncs {
if !contains(strings.Split(mods, ","), mod) {
delete(RunFuncs, mod)
}
}
for _, param := range strings.Split(params, "!") {
kv := strings.Split(param, ":")
ModParams[kv[0]] = kv[1]
}
for _, fn := range RunFuncs {
go fn()
}
}
func HandleMessage(m *irc.Message) {
for _, fn := range MsgHandlers {
for _, fn := range MsgFuncs {
fn(m)
}
}
func contains(sa []string, s string) bool {
for _, a := range sa {
if a == s {
return true
}
}
return false
}