From 7bb3203dfb5b9358576716eaec786f6aff31bc77 Mon Sep 17 00:00:00 2001 From: fumiama Date: Sun, 9 Jan 2022 22:20:14 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=20=E7=BE=A4=E7=AE=A1=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E6=93=8D=E4=BD=9C=E6=9D=83=E9=99=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- control/rule.go | 63 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/control/rule.go b/control/rule.go index 8cbf2dbc..c52b41f6 100644 --- a/control/rule.go +++ b/control/rule.go @@ -304,7 +304,6 @@ func init() { hasinit = true zero.OnCommandGroup([]string{ "启用", "enable", "禁用", "disable", - "全局启用", "enableall", "全局禁用", "disableall", }, userOrGrpAdmin).SetBlock(true).FirstPriority().Handle(func(ctx *zero.Ctx) { model := extension.CommandModel{} _ = ctx.Parse(&model) @@ -318,9 +317,6 @@ func init() { // 个人用户 grp = -ctx.Event.UserID } - if strings.Contains(model.Command, "全局") || strings.Contains(model.Command, "all") { - grp = 0 - } if strings.Contains(model.Command, "启用") || strings.Contains(model.Command, "enable") { service.Enable(grp) ctx.SendChain(message.Text("已启用服务: " + model.Args)) @@ -330,6 +326,25 @@ func init() { } }) + zero.OnCommandGroup([]string{ + "全局启用", "enableall", "全局禁用", "disableall", + }, zero.OnlyToMe, zero.SuperUserPermission).SetBlock(true).FirstPriority().Handle(func(ctx *zero.Ctx) { + model := extension.CommandModel{} + _ = ctx.Parse(&model) + service, ok := Lookup(model.Args) + if !ok { + ctx.SendChain(message.Text("没有找到指定服务!")) + return + } + if strings.Contains(model.Command, "启用") || strings.Contains(model.Command, "enable") { + service.Enable(0) + ctx.SendChain(message.Text("已全局启用服务: " + model.Args)) + } else { + service.Disable(0) + ctx.SendChain(message.Text("已全局禁用服务: " + model.Args)) + } + }) + zero.OnCommandGroup([]string{"还原", "reset"}, userOrGrpAdmin).SetBlock(true).FirstPriority().Handle(func(ctx *zero.Ctx) { model := extension.CommandModel{} _ = ctx.Parse(&model) @@ -349,7 +364,6 @@ func init() { zero.OnCommandGroup([]string{ "禁止", "ban", "允许", "permit", - "全局禁止", "banall", "全局允许", "permitall", }, zero.OnlyGroup, zero.AdminPermission).SetBlock(true).FirstPriority().Handle(func(ctx *zero.Ctx) { model := extension.CommandModel{} _ = ctx.Parse(&model) @@ -361,9 +375,6 @@ func init() { return } grp := ctx.Event.GroupID - if strings.Contains(model.Command, "全局") || strings.Contains(model.Command, "all") { - grp = 0 - } msg := "**" + args[0] + "报告**" if strings.Contains(model.Command, "允许") || strings.Contains(model.Command, "permit") { for _, usr := range args[1:] { @@ -388,6 +399,42 @@ func init() { ctx.SendChain(message.Text("参数错误!")) }) + zero.OnCommandGroup([]string{ + "全局禁止", "banall", "全局允许", "permitall", + }, zero.OnlyGroup, zero.SuperUserPermission).SetBlock(true).FirstPriority().Handle(func(ctx *zero.Ctx) { + model := extension.CommandModel{} + _ = ctx.Parse(&model) + args := strings.Split(model.Args, " ") + if len(args) >= 2 { + service, ok := Lookup(args[0]) + if !ok { + ctx.SendChain(message.Text("没有找到指定服务!")) + return + } + msg := "**" + args[0] + "全局报告**" + if strings.Contains(model.Command, "允许") || strings.Contains(model.Command, "permit") { + for _, usr := range args[1:] { + uid, err := strconv.ParseInt(usr, 10, 64) + if err == nil { + service.Permit(uid, 0) + msg += "\n+ 已允许" + usr + } + } + } else { + for _, usr := range args[1:] { + uid, err := strconv.ParseInt(usr, 10, 64) + if err == nil { + service.Ban(uid, 0) + msg += "\n- 已禁止" + usr + } + } + } + ctx.SendChain(message.Text(msg)) + return + } + ctx.SendChain(message.Text("参数错误!")) + }) + zero.OnCommandGroup([]string{"用法", "usage"}, userOrGrpAdmin).SetBlock(true).FirstPriority(). Handle(func(ctx *zero.Ctx) { model := extension.CommandModel{}