mirror of
https://code.dnix.de/da/flokatirc
synced 2026-07-27 08:39:45 +02:00
New mod management, new parameter -mods
This commit is contained in:
+28
-5
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user