From b2cff862bb93630ec509ca032123608a5b490abf Mon Sep 17 00:00:00 2001 From: Jiang-Red <79574799+Jiang-Red@users.noreply.github.com> Date: Wed, 23 Feb 2022 16:57:06 +0800 Subject: [PATCH] Update manager.go (#132) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update manager.go 修改 自定义欢迎语可带图 添加 修改名片/修改头衔/申请头衔字数限制 * Update manager.go * Update manager.go 添加 测试欢迎语 * Update manager.go * Update manager.go * Update manager.go Co-authored-by: 源文雨 <41315874+fumiama@users.noreply.github.com> --- plugin_manager/manager.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/plugin_manager/manager.go b/plugin_manager/manager.go index d2dc4afb..49d3792c 100644 --- a/plugin_manager/manager.go +++ b/plugin_manager/manager.go @@ -48,7 +48,8 @@ const ( "- 取消在\"cron\"的提醒\n" + "- 列出所有提醒\n" + "- 翻牌\n" + - "- 设置欢迎语XXX\n" + + "- 设置欢迎语XXX(可加{at}在欢迎时@对方)\n" + + "- 测试欢迎语\n" + "- [开启 | 关闭]入群验证" ) @@ -210,6 +211,10 @@ func init() { // 插件主体 // 修改名片 engine.OnRegex(`^修改名片.*?(\d+).*?\s(.*)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true). Handle(func(ctx *zero.Ctx) { + if len(ctx.State["regex_matched"].([]string)[2]) > 60 { + ctx.SendChain(message.Text("名字太长啦!")) + return + } ctx.SetGroupCard( ctx.Event.GroupID, math.Str2Int64(ctx.State["regex_matched"].([]string)[1]), // 被修改群名片的人 @@ -220,6 +225,10 @@ func init() { // 插件主体 // 修改头衔 engine.OnRegex(`^修改头衔.*?(\d+).*?\s(.*)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true). Handle(func(ctx *zero.Ctx) { + if len(ctx.State["regex_matched"].([]string)[1]) > 18 { + ctx.SendChain(message.Text("头衔太长啦!")) + return + } ctx.SetGroupSpecialTitle( ctx.Event.GroupID, math.Str2Int64(ctx.State["regex_matched"].([]string)[1]), // 被修改群头衔的人 @@ -230,6 +239,10 @@ func init() { // 插件主体 // 申请头衔 engine.OnRegex(`^申请头衔(.*)`, zero.OnlyGroup).SetBlock(true). Handle(func(ctx *zero.Ctx) { + if len(ctx.State["regex_matched"].([]string)[1]) > 18 { + ctx.SendChain(message.Text("头衔太长啦!")) + return + } ctx.SetGroupSpecialTitle( ctx.Event.GroupID, ctx.Event.UserID, // 被修改群头衔的人 @@ -369,7 +382,7 @@ func init() { // 插件主体 var w welcome err := db.Find("welcome", &w, "where gid = "+strconv.FormatInt(ctx.Event.GroupID, 10)) if err == nil { - ctx.SendChain(message.Text(w.Msg)) + ctx.SendGroupMessage(ctx.Event.GroupID, message.ParseMessageFromString(strings.ReplaceAll(w.Msg, "{at}", "[CQ:at,qq="+strconv.FormatInt(ctx.Event.UserID, 10)+"]"))) } else { ctx.SendChain(message.Text("欢迎~")) } @@ -436,6 +449,17 @@ func init() { // 插件主体 ctx.SendChain(message.Text("出错啦: ", err)) } }) + // 测试欢迎语 + engine.OnFullMatch("测试欢迎语", zero.OnlyGroup, zero.AdminPermission).SetBlock(true). + Handle(func(ctx *zero.Ctx) { + var w welcome + err := db.Find("welcome", &w, "where gid = "+strconv.FormatInt(ctx.Event.GroupID, 10)) + if err == nil { + ctx.SendGroupMessage(ctx.Event.GroupID, message.ParseMessageFromString(strings.ReplaceAll(w.Msg, "{at}", "[CQ:at,qq="+strconv.FormatInt(ctx.Event.UserID, 10)+"]"))) + } else { + ctx.SendChain(message.Text("欢迎~")) + } + }) // 入群后验证开关 engine.OnRegex(`^(.*)入群验证$`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true). Handle(func(ctx *zero.Ctx) {