mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-18 20:50:12 +08:00
🔖 Update to 1.0.6
This commit is contained in:
parent
e8945f6572
commit
9bd4f957c9
@ -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
GroupManager.yml
Normal file
7
GroupManager.yml
Normal file
@ -0,0 +1,7 @@
|
||||
插件版本: "1"
|
||||
监听地址: 127.0.0.1
|
||||
监听端口: "2334"
|
||||
Token: ""
|
||||
主人QQ:
|
||||
- "66666666"
|
||||
- "88888888"
|
||||
3
go.mod
3
go.mod
@ -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
go.sum
8
go.sum
@ -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=
|
||||
|
||||
@ -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,7 +15,7 @@ func (manage) GetPluginInfo() zero.PluginInfo { // 返回插件信息
|
||||
Author: "kanri",
|
||||
PluginName: "manage",
|
||||
Version: "0.0.1",
|
||||
Details: "设置群名片群头衔",
|
||||
Details: "管理任命 踢出退出群聊",
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
},
|
||||
)
|
||||
@ -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
|
||||
},
|
||||
)
|
||||
@ -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
|
||||
},
|
||||
)
|
||||
@ -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
|
||||
},
|
||||
)
|
||||
|
||||
@ -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
|
||||
},
|
||||
)
|
||||
@ -56,7 +56,7 @@ 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
|
||||
},
|
||||
@ -64,10 +64,10 @@ func (mute) Start() { // 插件主体
|
||||
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
|
||||
},
|
||||
|
||||
@ -17,7 +17,7 @@ func (notice) GetPluginInfo() zero.PluginInfo { // 返回插件信息
|
||||
Author: "kanri",
|
||||
PluginName: "notice",
|
||||
Version: "0.0.1",
|
||||
Details: "设置群名片群头衔",
|
||||
Details: "进群退群提醒 戳一戳",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ func (request) GetPluginInfo() zero.PluginInfo { // 返回插件信息
|
||||
Author: "kanri",
|
||||
PluginName: "request",
|
||||
Version: "0.0.1",
|
||||
Details: "设置群名片群头衔",
|
||||
Details: "申请添加好友 加入群聊 邀请群聊",
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
},
|
||||
)
|
||||
|
||||
@ -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))
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -32,7 +32,6 @@ func DefaultConfig() *YamlConfig {
|
||||
|
||||
func Load(p string) *YamlConfig {
|
||||
if !PathExists(p) {
|
||||
CreatePath(p)
|
||||
DefaultConfig().Save(p)
|
||||
}
|
||||
c := YamlConfig{}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user