1
0
mirror of https://github.com/fumiama/NanoBot.git synced 2026-06-05 18:50:24 +08:00

fix: qq group rules

This commit is contained in:
源文雨
2023-11-22 21:42:08 +09:00
parent e35fea5903
commit a455a5df6c
5 changed files with 13 additions and 8 deletions

View File

@@ -3,7 +3,7 @@
<br>
<h1>NanoBot</h1>
ZeroBot 的官方 QQ 频道适配器<br><br>
类ZeroBot的官方QQ频道/群聊全域机器人框架, 简单易用<br><br>
<img src="https://counter.seku.su/cmoe?name=NanoBot&theme=r34" /><br>
@@ -54,7 +54,7 @@ func main() {
nano.Run(nil, &nano.Bot{
AppID: "你的AppID",
Token: "你的Token",
Secret: "你的Secret, 目前没用到, 可以不填",
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
Intents: nano.IntentPublic,
SuperUsers: []string{"用户ID1", "用户ID2"},
})
@@ -83,7 +83,7 @@ func main() {
nano.Run(nil, &nano.Bot{
AppID: "你的AppID",
Token: "你的Token",
Secret: "你的Secret, 目前没用到, 可以不填",
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
Intents: nano.IntentPublic,
Handler: &nano.Handler{
OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {

7
bot.go
View File

@@ -23,13 +23,18 @@ var (
isrunning uintptr
)
const (
// SuperUserAllQQUsers 使所有 QQ 用户成为超级用户
SuperUserAllQQUsers = "AllQQUsers"
)
// Bot 一个机器人实例的配置
type Bot struct {
AppID string `yaml:"AppID"` // AppID is BotAppID开发者ID
Token string `yaml:"Token"` // Token is 机器人令牌 有 Secret 则使用新版 API
token string // token 是通过 secret 获得的残血 token
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 调用超时
Handler *Handler `yaml:"-"` // Handler 注册对各种事件的处理
Intents uint32 `yaml:"Intents"` // Intents 欲接收的事件

View File

@@ -13,7 +13,7 @@ func main() {
nano.Run(nil, &nano.Bot{
AppID: "你的AppID",
Token: "你的Token",
Secret: "你的Secret, 目前没用到, 可以不填",
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
Intents: nano.IntentGuildPublic,
Handler: &nano.Handler{
OnAtMessageCreate: func(s uint32, bot *nano.Bot, d *nano.Message) {

View File

@@ -17,7 +17,7 @@ func main() {
nano.Run(nil, &nano.Bot{
AppID: "你的AppID",
Token: "你的Token",
Secret: "你的Secret, 目前没用到, 可以不填",
Secret: "你的Secret, 可以不填 (QQ群Bot必须填写)",
Intents: nano.IntentGuildPublic,
SuperUsers: []string{"用户ID1", "用户ID2"},
})

View File

@@ -313,7 +313,7 @@ func OnlyChannel(ctx *Ctx) bool {
// OnlyPublic 消息类型包含 At 或 Public (包括QQ群)
func OnlyPublic(ctx *Ctx) bool {
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
}
@@ -341,7 +341,7 @@ func SuperUserPermission(ctx *Ctx) bool {
return false
}
for _, su := range ctx.caller.SuperUsers {
if su == msg.Author.ID {
if su == msg.Author.ID || (ctx.IsQQ && su == SuperUserAllQQUsers) {
return true
}
}