🔖 Update to 1.0.6

This commit is contained in:
Yiwen-Chan 2020-12-09 21:50:52 +08:00
parent e8945f6572
commit 9bd4f957c9
13 changed files with 93 additions and 35 deletions

View File

@ -26,12 +26,12 @@ func main() {
func init() { func init() {
fmt.Println(` fmt.Println(`
====================[GroupManager]==================== ====================[GroupManager]====================
* Mirai + ZeroBot + Golang * OneBot + ZeroBot + Golang
* Copyright © 2018-2020 Kanri, All Rights Reserved * Copyright © 2018-2020 Kanri, All Rights Reserved
* Project: https://github.com/Yiwen-Chan/GroupManager * Project: https://github.com/Yiwen-Chan/GroupManager
======================================================= =======================================================
`) `)
Conf = utils.Load("./data/config.yml") Conf = utils.Load("./GroupManager.yml")
m.Conf = Conf m.Conf = Conf
fmt.Println("[GroupManager] 有需要请按 GitHub 项目上描述的方法修改配置文件") fmt.Println("[GroupManager] 有需要请按 GitHub 项目上描述的方法修改配置文件")
} }

7
GroupManager.yml Normal file
View File

@ -0,0 +1,7 @@
插件版本: "1"
监听地址: 127.0.0.1
监听端口: "2334"
Token: ""
主人QQ:
- "66666666"
- "88888888"

3
go.mod
View File

@ -3,7 +3,6 @@ module gm
go 1.14 go 1.14
require ( require (
github.com/wdvxdr1123/ZeroBot v0.0.0-20201129064504-07d9e1b5400f github.com/wdvxdr1123/ZeroBot v0.0.0-20201209121757-2a04edb62bac
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776
) )

8
go.sum
View File

@ -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/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 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU=
github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= 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-20201209121757-2a04edb62bac h1:foT1gSWW3Ovkecyqoircrp2kP5pajSTUawwom9GLSlM=
github.com/wdvxdr1123/ZeroBot v0.0.0-20201129064504-07d9e1b5400f/go.mod h1:e92qGONnOry8XSfaUUlG7OhT9gyD839P8oZ2wfPe60w= 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-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-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 h1:HlFl4V6pEMziuLXyRkm5BIYq1y1GAbb02pRlWvI54OM=
golang.org/x/sys v0.0.0-20201029080932-201ba4db2418/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 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=

View File

@ -1,5 +1,50 @@
package modules package modules
import "gm/utils" import (
"fmt"
"gm/utils"
zero "github.com/wdvxdr1123/ZeroBot"
)
var Conf = &utils.YamlConfig{} 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
}

View File

@ -15,7 +15,7 @@ func (manage) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri", Author: "kanri",
PluginName: "manage", PluginName: "manage",
Version: "0.0.1", Version: "0.0.1",
Details: "设置群名片群头衔", Details: "管理任命 踢出退出群聊",
} }
} }
@ -24,7 +24,8 @@ func (manage) Start() { // 插件主体
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupAdmin(event.GroupID, GetInt(state, 1), true) 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 return zero.SuccessResponse
}, },
) )
@ -35,7 +36,8 @@ func (manage) Start() { // 插件主体
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupAdmin(event.GroupID, GetInt(state, 1), false) 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 return zero.SuccessResponse
}, },
) )
@ -46,7 +48,8 @@ func (manage) Start() { // 插件主体
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupKick(event.GroupID, GetInt(state, 1), false) 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 return zero.SuccessResponse
}, },
) )
@ -56,8 +59,8 @@ func (manage) Start() { // 插件主体
leave := zero.OnRegex("^退出群聊.*?(\\d+)", zero.OnlyGroup, zero.AdminPermission). leave := zero.OnRegex("^退出群聊.*?(\\d+)", zero.OnlyGroup, zero.AdminPermission).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupLeave(event.GroupID, true) zero.SetGroupLeave(GetInt(state, 1), true)
zero.Send(event, "明白了!") zero.Send(event, "姬气人已主动离开群聊 "+GetStr(state, 1))
return zero.SuccessResponse return zero.SuccessResponse
}, },
) )

View File

@ -20,22 +20,22 @@ func (mute) GetPluginInfo() zero.PluginInfo { // 返回插件信息
} }
func (mute) Start() { // 插件主体 func (mute) Start() { // 插件主体
unWholeBan := zero.OnRegex("^解除全禁言$", zero.OnlyGroup, zero.AdminPermission). unWholeBan := zero.OnRegex("^解除全禁言$", zero.OnlyGroup, zero.AdminPermission).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupWholeBan(event.GroupID, false) zero.SetGroupWholeBan(event.GroupID, false)
zero.Send(event, "小黑屋收留成功~") zero.Send(event, "全员自闭结束~")
return zero.SuccessResponse return zero.SuccessResponse
}, },
) )
unWholeBan.Priority = 1 unWholeBan.Priority = 1
unWholeBan.Block = true unWholeBan.Block = true
wholeBan := zero.OnRegex("^开启全禁言$", zero.OnlyGroup, zero.AdminPermission). wholeBan := zero.OnRegex("^开启全禁言$", zero.OnlyGroup, zero.AdminPermission).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupWholeBan(event.GroupID, true) zero.SetGroupWholeBan(event.GroupID, true)
zero.Send(event, "小黑屋收留成功~") zero.Send(event, "全员自闭开始~")
return zero.SuccessResponse return zero.SuccessResponse
}, },
) )
@ -56,7 +56,7 @@ func (mute) Start() { // 插件主体
ban := zero.OnRegex("^禁言.*?(\\d+).*?\\s(\\d+)", zero.OnlyGroup, zero.AdminPermission). ban := zero.OnRegex("^禁言.*?(\\d+).*?\\s(\\d+)", zero.OnlyGroup, zero.AdminPermission).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { 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, "小黑屋收留成功~") zero.Send(event, "小黑屋收留成功~")
return zero.SuccessResponse return zero.SuccessResponse
}, },
@ -64,10 +64,10 @@ func (mute) Start() { // 插件主体
ban.Priority = 4 ban.Priority = 4
ban.Block = true ban.Block = true
selfBan := zero.OnRegex("^我要自闭.*?(\\d+)分钟", zero.OnlyGroup, zero.AdminPermission). selfBan := zero.OnRegex("^我要自闭.*?(\\d+)分钟", zero.OnlyGroup).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { 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, "那我就不手下留情了") zero.Send(event, "那我就不手下留情了")
return zero.SuccessResponse return zero.SuccessResponse
}, },

View File

@ -17,7 +17,7 @@ func (notice) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri", Author: "kanri",
PluginName: "notice", PluginName: "notice",
Version: "0.0.1", Version: "0.0.1",
Details: "设置群名片群头衔", Details: "进群退群提醒 戳一戳",
} }
} }

View File

@ -17,7 +17,7 @@ func (request) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri", Author: "kanri",
PluginName: "request", PluginName: "request",
Version: "0.0.1", Version: "0.0.1",
Details: "设置群名片群头衔", Details: "申请添加好友 加入群聊 邀请群聊",
} }
} }
@ -37,11 +37,12 @@ func (request) Start() { // 插件主体
groupAdd := zero.OnNotice(). groupAdd := zero.OnNotice().
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { 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" { if event.SubType == "add" {
zero.Send(event, "有人申请加群") zero.Send(event, nickname+"("+utils.Int2Str(event.UserID)+") 申请加群")
} else { } 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 return zero.SuccessResponse

View File

@ -15,27 +15,27 @@ func (sender) GetPluginInfo() zero.PluginInfo { // 返回插件信息
Author: "kanri", Author: "kanri",
PluginName: "sender", PluginName: "sender",
Version: "0.0.1", Version: "0.0.1",
Details: "设置群名片群头衔", Details: "转发信息",
} }
} }
func (sender) Start() { // 插件主体 func (sender) Start() { // 插件主体
promoteManager := zero.OnRegex("^群聊转发.*?(\\d+)\\s(.*)", zero.OnlyGroup, zero.AdminPermission). promoteManager := zero.OnRegex("^群聊转发.*?(\\d+)\\s(.*)", zero.SuperUserPermission).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SendGroupMessage(GetInt(state, 1), GetStr(state, 2)) zero.SendGroupMessage(GetInt(state, 1), GetStr(state, 2))
zero.Send(event, "complete!") zero.Send(event, "📧 --> "+GetStr(state, 1))
return zero.SuccessResponse return zero.SuccessResponse
}, },
) )
promoteManager.Priority = 30 promoteManager.Priority = 30
promoteManager.Block = true promoteManager.Block = true
cancleManager := zero.OnRegex("^私聊转发.*?(\\d+)\\s(.*)", zero.OnlyGroup, zero.AdminPermission). cancleManager := zero.OnRegex("^私聊转发.*?(\\d+)\\s(.*)", zero.SuperUserPermission).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SendPrivateMessage(GetInt(state, 1), GetStr(state, 2)) zero.SendPrivateMessage(GetInt(state, 1), GetStr(state, 2))
zero.Send(event, "complete!") zero.Send(event, "📧 --> "+GetStr(state, 1))
return zero.SuccessResponse return zero.SuccessResponse
}, },
) )

View File

@ -42,7 +42,7 @@ func (title) Start() { // 插件主体
setTitle.Priority = 11 setTitle.Priority = 11
setTitle.Block = true setTitle.Block = true
setSelfTitle := zero.OnRegex("^申请头衔(.*)"). setSelfTitle := zero.OnRegex("^申请头衔(.*)", zero.OnlyGroup).
Handle( Handle(
func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response { func(matcher *zero.Matcher, event zero.Event, state zero.State) zero.Response {
zero.SetGroupSpecialTitle(event.GroupID, event.UserID, GetStr(state, 2)) zero.SetGroupSpecialTitle(event.GroupID, event.UserID, GetStr(state, 2))

View File

@ -1,17 +1,19 @@
package modules package modules
import ( import (
"fmt"
"gm/utils" "gm/utils"
zero "github.com/wdvxdr1123/ZeroBot" zero "github.com/wdvxdr1123/ZeroBot"
) )
func GetInt(state zero.State, index int64) int64 { func GetInt(state zero.State, index int64) int64 {
fmt.Println(state["regex_matched"].([]string))
return utils.Str2Int(state["regex_matched"].([]string)[index]) return utils.Str2Int(state["regex_matched"].([]string)[index])
} }
func GetStr(state zero.State, index int64) string { func GetStr(state zero.State, index int64) string {
return state["regex_matched"].([]string)[index] return state["regex_matched"].([]string)[index]
} }
func GetNickname(groupID int64, userID int64) string {
return zero.GetGroupMemberInfo(groupID, userID, false).Get("nickname").Str
}

View File

@ -32,7 +32,6 @@ func DefaultConfig() *YamlConfig {
func Load(p string) *YamlConfig { func Load(p string) *YamlConfig {
if !PathExists(p) { if !PathExists(p) {
CreatePath(p)
DefaultConfig().Save(p) DefaultConfig().Save(p)
} }
c := YamlConfig{} c := YamlConfig{}