Skip to content

Commit

Permalink
🔖 Update to 1.0.6
Browse files Browse the repository at this point in the history
  • Loading branch information
kanrichan committed Dec 9, 2020
1 parent e8945f6 commit 9bd4f95
Show file tree
Hide file tree
Showing 13 changed files with 93 additions and 35 deletions.
4 changes: 2 additions & 2 deletions app.go → GroupManager.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ func main() {
func init() {
fmt.Println(`
====================[GroupManager]====================
* Mirai + ZeroBot + Golang
* OneBot + ZeroBot + Golang
* Copyright © 2018-2020 Kanri, All Rights Reserved
* Project: https://github.com/Yiwen-Chan/GroupManager
=======================================================
`)
Conf = utils.Load("./data/config.yml")
Conf = utils.Load("./GroupManager.yml")
m.Conf = Conf
fmt.Println("[GroupManager] 有需要请按 GitHub 项目上描述的方法修改配置文件")
}
7 changes: 7 additions & 0 deletions GroupManager.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
插件版本: "1"
监听地址: 127.0.0.1
监听端口: "2334"
Token: ""
主人QQ:
- "66666666"
- "88888888"
3 changes: 1 addition & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ module gm
go 1.14

require (
github.com/wdvxdr1123/ZeroBot v0.0.0-20201129064504-07d9e1b5400f
gopkg.in/yaml.v2 v2.4.0
github.com/wdvxdr1123/ZeroBot v0.0.0-20201209121757-2a04edb62bac
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
)
8 changes: 5 additions & 3 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,12 @@ github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc=
github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU=
github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/wdvxdr1123/ZeroBot v0.0.0-20201129064504-07d9e1b5400f h1:06qEGANaKnXdJShXGEbD70F77C7AQAXA0nkQVdyORHc=
github.com/wdvxdr1123/ZeroBot v0.0.0-20201129064504-07d9e1b5400f/go.mod h1:e92qGONnOry8XSfaUUlG7OhT9gyD839P8oZ2wfPe60w=
github.com/wdvxdr1123/ZeroBot v0.0.0-20201209121757-2a04edb62bac h1:foT1gSWW3Ovkecyqoircrp2kP5pajSTUawwom9GLSlM=
github.com/wdvxdr1123/ZeroBot v0.0.0-20201209121757-2a04edb62bac/go.mod h1:e92qGONnOry8XSfaUUlG7OhT9gyD839P8oZ2wfPe60w=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201029080932-201ba4db2418 h1:HlFl4V6pEMziuLXyRkm5BIYq1y1GAbb02pRlWvI54OM=
golang.org/x/sys v0.0.0-20201029080932-201ba4db2418/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
47 changes: 46 additions & 1 deletion modules/main.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,50 @@
package modules

import "gm/utils"
import (
"fmt"
"gm/utils"

zero "github.com/wdvxdr1123/ZeroBot"
)

var Conf = &utils.YamlConfig{}

func init() {
zero.RegisterPlugin(menu{})
}

type menu struct{}

func (menu) GetPluginInfo() zero.PluginInfo { // 返回插件信息
return zero.PluginInfo{
Author: "kanri",
PluginName: "menu",
Version: "0.0.1",
Details: "菜单",
}
}

func (menu) Start() { // 插件主体
gmmenu := zero.OnRegex("^群管系统$").
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
menuText := `====群管====
- 禁言@QQ 1
- 解除禁言 @QQ
- 我要自闭 1分钟
- 开启全员禁言
- 解除全员禁言
- 升为管理@QQ
- 取消管理@QQ
- 修改名片@QQ XXX
- 修改头衔@QQ XXX
- 申请头衔 XXX
- 群聊转发 1234 XXX
- 私聊转发 0000 XXX`
zero.Send(event, fmt.Sprintf("%v", menuText))
return zero.SuccessResponse
},
)
gmmenu.Priority = 60
gmmenu.Block = true
}
15 changes: 9 additions & 6 deletions modules/manage.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func (manage) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri",
PluginName: "manage",
Version: "0.0.1",
Details: "设置群名片群头衔",
Details: "管理任命 踢出退出群聊",
}
}

Expand All @@ -24,7 +24,8 @@ func (manage) Start() { // 插件主体
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupAdmin(event.GroupID, GetInt(state, 1), true)
zero.Send(event, "恭喜~")
nickname := GetNickname(event.GroupID, GetInt(state, 1))
zero.Send(event, nickname+" 升为了管理~")
return zero.SuccessResponse
},
)
Expand All @@ -35,7 +36,8 @@ func (manage) Start() { // 插件主体
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupAdmin(event.GroupID, GetInt(state, 1), false)
zero.Send(event, "残念~")
nickname := GetNickname(event.GroupID, GetInt(state, 1))
zero.Send(event, "残念~ "+nickname+" 暂时失去了管理员的资格")
return zero.SuccessResponse
},
)
Expand All @@ -46,7 +48,8 @@ func (manage) Start() { // 插件主体
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupKick(event.GroupID, GetInt(state, 1), false)
zero.Send(event, "残念~")
nickname := GetNickname(event.GroupID, GetInt(state, 1))
zero.Send(event, "残念~ "+nickname+"("+GetStr(state, 1)+") 被放逐")
return zero.SuccessResponse
},
)
Expand All @@ -56,8 +59,8 @@ func (manage) Start() { // 插件主体
leave := zero.OnRegex("^退出群聊.*?(\\d+)", zero.OnlyGroup, zero.AdminPermission).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupLeave(event.GroupID, true)
zero.Send(event, "明白了!")
zero.SetGroupLeave(GetInt(state, 1), true)
zero.Send(event, "姬气人已主动离开群聊 "+GetStr(state, 1))
return zero.SuccessResponse
},
)
Expand Down
14 changes: 7 additions & 7 deletions modules/mute.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,22 @@ func (mute) GetPluginInfo() zero.PluginInfo { // 返回插件信息
}

func (mute) Start() { // 插件主体
unWholeBan := zero.OnRegex("^解除全体禁言$", zero.OnlyGroup, zero.AdminPermission).
unWholeBan := zero.OnRegex("^解除全员禁言$", zero.OnlyGroup, zero.AdminPermission).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupWholeBan(event.GroupID, false)
zero.Send(event, "小黑屋收留成功~")
zero.Send(event, "全员自闭结束~")
return zero.SuccessResponse
},
)
unWholeBan.Priority = 1
unWholeBan.Block = true

wholeBan := zero.OnRegex("^开启全体禁言$", zero.OnlyGroup, zero.AdminPermission).
wholeBan := zero.OnRegex("^开启全员禁言$", zero.OnlyGroup, zero.AdminPermission).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupWholeBan(event.GroupID, true)
zero.Send(event, "小黑屋收留成功~")
zero.Send(event, "全员自闭开始~")
return zero.SuccessResponse
},
)
Expand All @@ -56,18 +56,18 @@ func (mute) Start() { // 插件主体
ban := zero.OnRegex("^禁言.*?(\\d+).*?\\s(\\d+)", zero.OnlyGroup, zero.AdminPermission).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupBan(event.GroupID, GetInt(state, 1), GetInt(state, 2)*1000)
zero.SetGroupBan(event.GroupID, GetInt(state, 1), GetInt(state, 2)*60)
zero.Send(event, "小黑屋收留成功~")
return zero.SuccessResponse
},
)
ban.Priority = 4
ban.Block = true

selfBan := zero.OnRegex("^我要自闭.*?(\\d+)分钟", zero.OnlyGroup, zero.AdminPermission).
selfBan := zero.OnRegex("^我要自闭.*?(\\d+)分钟", zero.OnlyGroup).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupBan(event.GroupID, event.UserID, GetInt(state, 1)*1000)
zero.SetGroupBan(event.GroupID, event.UserID, GetInt(state, 1)*60)
zero.Send(event, "那我就不手下留情了")
return zero.SuccessResponse
},
Expand Down
2 changes: 1 addition & 1 deletion modules/notice.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func (notice) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri",
PluginName: "notice",
Version: "0.0.1",
Details: "设置群名片群头衔",
Details: "进群退群提醒 戳一戳",
}
}

Expand Down
9 changes: 5 additions & 4 deletions modules/request.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func (request) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri",
PluginName: "request",
Version: "0.0.1",
Details: "设置群名片群头衔",
Details: "申请添加好友 加入群聊 邀请群聊",
}
}

Expand All @@ -37,11 +37,12 @@ func (request) Start() { // 插件主体
groupAdd := zero.OnNotice().
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
if event.RequestType == "friend" {
if event.RequestType == "group" {
nickname := GetNickname(event.GroupID, event.UserID)
if event.SubType == "add" {
zero.Send(event, "有人申请加群")
zero.Send(event, nickname+"("+utils.Int2Str(event.UserID)+") 申请加群")
} else {
zero.SendPrivateMessage(utils.Str2Int(Conf.Master[0]), "有人想拉我入群")
zero.SendPrivateMessage(utils.Str2Int(Conf.Master[0]), nickname+"("+utils.Int2Str(event.UserID)+") 邀请我加入群 "+utils.Int2Str(event.GroupID))
}
}
return zero.SuccessResponse
Expand Down
10 changes: 5 additions & 5 deletions modules/sender.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,27 +15,27 @@ func (sender) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri",
PluginName: "sender",
Version: "0.0.1",
Details: "设置群名片群头衔",
Details: "转发信息",
}
}

func (sender) Start() { // 插件主体
promoteManager := zero.OnRegex("^群聊转发.*?(\\d+)\\s(.*)", zero.OnlyGroup, zero.AdminPermission).
promoteManager := zero.OnRegex("^群聊转发.*?(\\d+)\\s(.*)", zero.SuperUserPermission).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SendGroupMessage(GetInt(state, 1), GetStr(state, 2))
zero.Send(event, "complete!")
zero.Send(event, "📧 --> "+GetStr(state, 1))
return zero.SuccessResponse
},
)
promoteManager.Priority = 30
promoteManager.Block = true

cancleManager := zero.OnRegex("^私聊转发.*?(\\d+)\\s(.*)", zero.OnlyGroup, zero.AdminPermission).
cancleManager := zero.OnRegex("^私聊转发.*?(\\d+)\\s(.*)", zero.SuperUserPermission).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SendPrivateMessage(GetInt(state, 1), GetStr(state, 2))
zero.Send(event, "complete!")
zero.Send(event, "📧 --> "+GetStr(state, 1))
return zero.SuccessResponse
},
)
Expand Down
2 changes: 1 addition & 1 deletion modules/title.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func (title) Start() { // 插件主体
setTitle.Priority = 11
setTitle.Block = true

setSelfTitle := zero.OnRegex("^申请头衔(.*)").
setSelfTitle := zero.OnRegex("^申请头衔(.*)", zero.OnlyGroup).
Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupSpecialTitle(event.GroupID, event.UserID, GetStr(state, 2))
Expand Down
6 changes: 4 additions & 2 deletions modules/utils.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package modules

import (
"fmt"
"gm/utils"

zero "github.com/wdvxdr1123/ZeroBot"
)

func GetInt(state zero.State, index int64) int64 {
fmt.Println(state["regex_matched"].([]string))
return utils.Str2Int(state["regex_matched"].([]string)[index])
}

func GetStr(state zero.State, index int64) string {
return state["regex_matched"].([]string)[index]
}

func GetNickname(groupID int64, userID int64) string {
return zero.GetGroupMemberInfo(groupID, userID, false).Get("nickname").Str
}
1 change: 0 additions & 1 deletion utils/yaml.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ func DefaultConfig() *YamlConfig {

func Load(p string) *YamlConfig {
if !PathExists(p) {
CreatePath(p)
DefaultConfig().Save(p)
}
c := YamlConfig{}
Expand Down

0 comments on commit 9bd4f95

Please sign in to comment.