()
| 69 | ) |
| 70 | |
| 71 | func init() { // 插件主体 |
| 72 | engine := control.AutoRegister(&ctrl.Options[*zero.Ctx]{ |
| 73 | DisableOnDefault: false, |
| 74 | Brief: "群管插件", |
| 75 | Help: hint, |
| 76 | PrivateDataFolder: "manager", |
| 77 | }) |
| 78 | |
| 79 | go func() { |
| 80 | db = sql.New(engine.DataFolder() + "config.db") |
| 81 | err := db.Open(time.Hour) |
| 82 | if err != nil { |
| 83 | panic(err) |
| 84 | } |
| 85 | clock = timer.NewClock(&db) |
| 86 | err = db.Create("welcome", &welcome{}) |
| 87 | if err != nil { |
| 88 | panic(err) |
| 89 | } |
| 90 | err = db.Create("member", &member{}) |
| 91 | if err != nil { |
| 92 | panic(err) |
| 93 | } |
| 94 | err = db.Create("farewell", &welcome{}) |
| 95 | if err != nil { |
| 96 | panic(err) |
| 97 | } |
| 98 | }() |
| 99 | |
| 100 | // 升为管理 |
| 101 | engine.OnRegex(`^升为管理.*?(\d+)`, zero.OnlyGroup, zero.SuperUserPermission).SetBlock(true). |
| 102 | Handle(func(ctx *zero.Ctx) { |
| 103 | ctx.SetThisGroupAdmin( |
| 104 | math.Str2Int64(ctx.State["regex_matched"].([]string)[1]), // 被升为管理的人的qq |
| 105 | true, |
| 106 | ) |
| 107 | nickname := ctx.GetThisGroupMemberInfo( // 被升为管理的人的昵称 |
| 108 | math.Str2Int64(ctx.State["regex_matched"].([]string)[1]), // 被升为管理的人的qq |
| 109 | false, |
| 110 | ).Get("nickname").Str |
| 111 | ctx.SendChain(message.Text(nickname + " 升为了管理~")) |
| 112 | }) |
| 113 | // 取消管理 |
| 114 | engine.OnRegex(`^取消管理.*?(\d+)`, zero.OnlyGroup, zero.SuperUserPermission).SetBlock(true). |
| 115 | Handle(func(ctx *zero.Ctx) { |
| 116 | ctx.SetThisGroupAdmin( |
| 117 | math.Str2Int64(ctx.State["regex_matched"].([]string)[1]), // 被取消管理的人的qq |
| 118 | false, |
| 119 | ) |
| 120 | nickname := ctx.GetThisGroupMemberInfo( // 被取消管理的人的昵称 |
| 121 | math.Str2Int64(ctx.State["regex_matched"].([]string)[1]), // 被取消管理的人的qq |
| 122 | false, |
| 123 | ).Get("nickname").Str |
| 124 | ctx.SendChain(message.Text("残念~ " + nickname + " 暂时失去了管理员的资格")) |
| 125 | }) |
| 126 | // 踢出群聊 |
| 127 | engine.OnRegex(`^踢出群聊.*?(\d+)`, zero.OnlyGroup, zero.AdminPermission).SetBlock(true). |
| 128 | Handle(func(ctx *zero.Ctx) { |
nothing calls this directly
no test coverage detected