mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 13:59:39 +08:00
✏️ 避免重复调用
This commit is contained in:
parent
70da534bfb
commit
f0d7b38a73
118
control/rule.go
118
control/rule.go
@ -19,6 +19,7 @@ var (
|
|||||||
// managers 每个插件对应的管理
|
// managers 每个插件对应的管理
|
||||||
managers = map[string]*Control{}
|
managers = map[string]*Control{}
|
||||||
mu = sync.RWMutex{}
|
mu = sync.RWMutex{}
|
||||||
|
hasinit bool
|
||||||
)
|
)
|
||||||
|
|
||||||
// Control is to control the plugins.
|
// Control is to control the plugins.
|
||||||
@ -122,61 +123,66 @@ func copyMap(m map[string]*Control) map[string]*Control {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
err := os.MkdirAll("data/control", 0755)
|
if !hasinit {
|
||||||
if err != nil {
|
mu.Lock()
|
||||||
panic(err)
|
if !hasinit {
|
||||||
|
err := os.MkdirAll("data/control", 0755)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
} else {
|
||||||
|
hasinit = true
|
||||||
|
zero.OnCommandGroup([]string{"启用", "enable"}, zero.AdminPermission, zero.OnlyGroup).
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
model := extension.CommandModel{}
|
||||||
|
_ = ctx.Parse(&model)
|
||||||
|
service, ok := lookup(model.Args)
|
||||||
|
if !ok {
|
||||||
|
ctx.Send("没有找到指定服务!")
|
||||||
|
}
|
||||||
|
service.enable(ctx.Event.GroupID)
|
||||||
|
ctx.Send(message.Text("已启用服务: " + model.Args))
|
||||||
|
})
|
||||||
|
|
||||||
|
zero.OnCommandGroup([]string{"禁用", "disable"}, zero.AdminPermission, zero.OnlyGroup).
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
model := extension.CommandModel{}
|
||||||
|
_ = ctx.Parse(&model)
|
||||||
|
service, ok := lookup(model.Args)
|
||||||
|
if !ok {
|
||||||
|
ctx.Send("没有找到指定服务!")
|
||||||
|
}
|
||||||
|
service.disable(ctx.Event.GroupID)
|
||||||
|
ctx.Send(message.Text("已关闭服务: " + model.Args))
|
||||||
|
})
|
||||||
|
|
||||||
|
zero.OnCommandGroup([]string{"用法", "usage"}, zero.AdminPermission, zero.OnlyGroup).
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
model := extension.CommandModel{}
|
||||||
|
_ = ctx.Parse(&model)
|
||||||
|
service, ok := lookup(model.Args)
|
||||||
|
if !ok {
|
||||||
|
ctx.Send("没有找到指定服务!")
|
||||||
|
}
|
||||||
|
if service.options.Help != "" {
|
||||||
|
ctx.Send(service.options.Help)
|
||||||
|
} else {
|
||||||
|
ctx.Send("该服务无帮助!")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
zero.OnCommandGroup([]string{"服务列表", "service_list"}, zero.AdminPermission, zero.OnlyGroup).
|
||||||
|
Handle(func(ctx *zero.Ctx) {
|
||||||
|
msg := `---服务列表---`
|
||||||
|
i := 0
|
||||||
|
forEach(func(key string, manager *Control) bool {
|
||||||
|
i++
|
||||||
|
msg += "\n" + strconv.Itoa(i) + `: ` + key
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
ctx.Send(message.Text(msg))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mu.Unlock()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Init() {
|
|
||||||
zero.OnCommandGroup([]string{"启用", "enable"}, zero.AdminPermission, zero.OnlyGroup).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
model := extension.CommandModel{}
|
|
||||||
_ = ctx.Parse(&model)
|
|
||||||
service, ok := lookup(model.Args)
|
|
||||||
if !ok {
|
|
||||||
ctx.Send("没有找到指定服务!")
|
|
||||||
}
|
|
||||||
service.enable(ctx.Event.GroupID)
|
|
||||||
ctx.Send(message.Text("已启用服务: " + model.Args))
|
|
||||||
})
|
|
||||||
|
|
||||||
zero.OnCommandGroup([]string{"禁用", "disable"}, zero.AdminPermission, zero.OnlyGroup).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
model := extension.CommandModel{}
|
|
||||||
_ = ctx.Parse(&model)
|
|
||||||
service, ok := lookup(model.Args)
|
|
||||||
if !ok {
|
|
||||||
ctx.Send("没有找到指定服务!")
|
|
||||||
}
|
|
||||||
service.disable(ctx.Event.GroupID)
|
|
||||||
ctx.Send(message.Text("已关闭服务: " + model.Args))
|
|
||||||
})
|
|
||||||
|
|
||||||
zero.OnCommandGroup([]string{"用法", "usage"}, zero.AdminPermission, zero.OnlyGroup).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
model := extension.CommandModel{}
|
|
||||||
_ = ctx.Parse(&model)
|
|
||||||
service, ok := lookup(model.Args)
|
|
||||||
if !ok {
|
|
||||||
ctx.Send("没有找到指定服务!")
|
|
||||||
}
|
|
||||||
if service.options.Help != "" {
|
|
||||||
ctx.Send(service.options.Help)
|
|
||||||
} else {
|
|
||||||
ctx.Send("该服务无帮助!")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
zero.OnCommandGroup([]string{"服务列表", "service_list"}, zero.AdminPermission, zero.OnlyGroup).
|
|
||||||
Handle(func(ctx *zero.Ctx) {
|
|
||||||
msg := `---服务列表---`
|
|
||||||
i := 0
|
|
||||||
forEach(func(key string, manager *Control) bool {
|
|
||||||
i++
|
|
||||||
msg += "\n" + strconv.Itoa(i) + `: ` + key
|
|
||||||
return true
|
|
||||||
})
|
|
||||||
ctx.Send(message.Text(msg))
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|||||||
3
main.go
3
main.go
@ -42,8 +42,6 @@ import (
|
|||||||
easy "github.com/t-tomalak/logrus-easy-formatter"
|
easy "github.com/t-tomalak/logrus-easy-formatter"
|
||||||
zero "github.com/wdvxdr1123/ZeroBot"
|
zero "github.com/wdvxdr1123/ZeroBot"
|
||||||
"github.com/wdvxdr1123/ZeroBot/driver"
|
"github.com/wdvxdr1123/ZeroBot/driver"
|
||||||
|
|
||||||
"github.com/FloatTech/ZeroBot-Plugin/control"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -62,7 +60,6 @@ func init() {
|
|||||||
LogFormat: "[zero][%time%][%lvl%]: %msg% \n",
|
LogFormat: "[zero][%time%][%lvl%]: %msg% \n",
|
||||||
})
|
})
|
||||||
log.SetLevel(log.DebugLevel)
|
log.SetLevel(log.DebugLevel)
|
||||||
control.Init()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user