mirror of
https://github.com/fumiama/NanoBot.git
synced 2026-06-20 02:40:25 +08:00
fix: qq group rules
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
<h1>NanoBot</h1>
|
<h1>NanoBot</h1>
|
||||||
类 ZeroBot 的官方 QQ 频道适配器<br><br>
|
类ZeroBot的官方QQ频道/群聊全域机器人框架, 简单易用<br><br>
|
||||||
|
|
||||||
<img src="https://counter.seku.su/cmoe?name=NanoBot&theme=r34" /><br>
|
<img src="https://counter.seku.su/cmoe?name=NanoBot&theme=r34" /><br>
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ func main() {
|
|||||||
nano.Run(nil, &nano.Bot{
|
nano.Run(nil, &nano.Bot{
|
||||||
AppID: "你的AppID",
|
AppID: "你的AppID",
|
||||||
Token: "你的Token",
|
Token: "你的Token",
|
||||||
Secret: "你的Secret, 目前没用到, 可以不填",
|
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
|
||||||
Intents: nano.IntentPublic,
|
Intents: nano.IntentPublic,
|
||||||
SuperUsers: []string{"用户ID1", "用户ID2"},
|
SuperUsers: []string{"用户ID1", "用户ID2"},
|
||||||
})
|
})
|
||||||
@@ -83,7 +83,7 @@ func main() {
|
|||||||
nano.Run(nil, &nano.Bot{
|
nano.Run(nil, &nano.Bot{
|
||||||
AppID: "你的AppID",
|
AppID: "你的AppID",
|
||||||
Token: "你的Token",
|
Token: "你的Token",
|
||||||
Secret: "你的Secret, 目前没用到, 可以不填",
|
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
|
||||||
Intents: nano.IntentPublic,
|
Intents: nano.IntentPublic,
|
||||||
Handler: &nano.Handler{
|
Handler: &nano.Handler{
|
||||||
OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {
|
OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {
|
||||||
|
|||||||
7
bot.go
7
bot.go
@@ -23,13 +23,18 @@ var (
|
|||||||
isrunning uintptr
|
isrunning uintptr
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// SuperUserAllQQUsers 使所有 QQ 用户成为超级用户
|
||||||
|
SuperUserAllQQUsers = "AllQQUsers"
|
||||||
|
)
|
||||||
|
|
||||||
// Bot 一个机器人实例的配置
|
// Bot 一个机器人实例的配置
|
||||||
type Bot struct {
|
type Bot struct {
|
||||||
AppID string `yaml:"AppID"` // AppID is BotAppID(开发者ID)
|
AppID string `yaml:"AppID"` // AppID is BotAppID(开发者ID)
|
||||||
Token string `yaml:"Token"` // Token is 机器人令牌 有 Secret 则使用新版 API
|
Token string `yaml:"Token"` // Token is 机器人令牌 有 Secret 则使用新版 API
|
||||||
token string // token 是通过 secret 获得的残血 token
|
token string // token 是通过 secret 获得的残血 token
|
||||||
Secret string `yaml:"Secret"` // Secret is 机器人令牌 V2 (AppSecret/ClientSecret) 沙盒目前虽然能登录但无法收发消息
|
Secret string `yaml:"Secret"` // Secret is 机器人令牌 V2 (AppSecret/ClientSecret) 沙盒目前虽然能登录但无法收发消息
|
||||||
SuperUsers []string `yaml:"SuperUsers"` // SuperUsers 超级用户
|
SuperUsers []string `yaml:"SuperUsers"` // SuperUsers 超级用户, 特殊: AllQQUsers 将使所有 QQ 用户成为超级用户
|
||||||
Timeout time.Duration `yaml:"Timeout"` // Timeout is API 调用超时
|
Timeout time.Duration `yaml:"Timeout"` // Timeout is API 调用超时
|
||||||
Handler *Handler `yaml:"-"` // Handler 注册对各种事件的处理
|
Handler *Handler `yaml:"-"` // Handler 注册对各种事件的处理
|
||||||
Intents uint32 `yaml:"Intents"` // Intents 欲接收的事件
|
Intents uint32 `yaml:"Intents"` // Intents 欲接收的事件
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ func main() {
|
|||||||
nano.Run(nil, &nano.Bot{
|
nano.Run(nil, &nano.Bot{
|
||||||
AppID: "你的AppID",
|
AppID: "你的AppID",
|
||||||
Token: "你的Token",
|
Token: "你的Token",
|
||||||
Secret: "你的Secret, 目前没用到, 可以不填",
|
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
|
||||||
Intents: nano.IntentGuildPublic,
|
Intents: nano.IntentGuildPublic,
|
||||||
Handler: &nano.Handler{
|
Handler: &nano.Handler{
|
||||||
OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {
|
OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ func main() {
|
|||||||
nano.Run(nil, &nano.Bot{
|
nano.Run(nil, &nano.Bot{
|
||||||
AppID: "你的AppID",
|
AppID: "你的AppID",
|
||||||
Token: "你的Token",
|
Token: "你的Token",
|
||||||
Secret: "你的Secret, 目前没用到, 可以不填",
|
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
|
||||||
Intents: nano.IntentGuildPublic,
|
Intents: nano.IntentGuildPublic,
|
||||||
SuperUsers: []string{"用户ID1", "用户ID2"},
|
SuperUsers: []string{"用户ID1", "用户ID2"},
|
||||||
})
|
})
|
||||||
|
|||||||
4
rules.go
4
rules.go
@@ -313,7 +313,7 @@ func OnlyChannel(ctx *Ctx) bool {
|
|||||||
// OnlyPublic 消息类型包含 At 或 Public (包括QQ群)
|
// OnlyPublic 消息类型包含 At 或 Public (包括QQ群)
|
||||||
func OnlyPublic(ctx *Ctx) bool {
|
func OnlyPublic(ctx *Ctx) bool {
|
||||||
if ctx.Type != "" {
|
if ctx.Type != "" {
|
||||||
return strings.HasPrefix(ctx.Type, "At") || strings.HasPrefix(ctx.Type, "Public")
|
return strings.HasPrefix(ctx.Type, "At") || strings.HasPrefix(ctx.Type, "Public") || strings.HasPrefix(ctx.Type, "GroupAt")
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -341,7 +341,7 @@ func SuperUserPermission(ctx *Ctx) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
for _, su := range ctx.caller.SuperUsers {
|
for _, su := range ctx.caller.SuperUsers {
|
||||||
if su == msg.Author.ID {
|
if su == msg.Author.ID || (ctx.IsQQ && su == SuperUserAllQQUsers) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user