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:
@@ -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
7
bot.go
@@ -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 欲接收的事件
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"},
|
||||
})
|
||||
|
||||
4
rules.go
4
rules.go
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user