mirror of
https://github.com/fumiama/NanoBot.git
synced 2026-06-12 06:00:29 +08:00
fix: message delete
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
emptyon:
|
emptyon:
|
||||||
- Message
|
- Message
|
||||||
|
- MessageDelete
|
||||||
|
|
||||||
- GuildCreate
|
- GuildCreate
|
||||||
- GuildUpdate
|
- GuildUpdate
|
||||||
@@ -12,14 +13,14 @@ emptyon:
|
|||||||
- GuildMemberUpdate
|
- GuildMemberUpdate
|
||||||
- GuildMemberRemove
|
- GuildMemberRemove
|
||||||
|
|
||||||
- MessageCreate
|
#- MessageCreate
|
||||||
- MessageDelete
|
#- MessageDelete
|
||||||
|
|
||||||
- MessageReactionAdd
|
- MessageReactionAdd
|
||||||
- MessageReactionRemove
|
- MessageReactionRemove
|
||||||
|
|
||||||
- DirectMessageCreate
|
#- DirectMessageCreate
|
||||||
- DirectMessageDelete
|
#- DirectMessageDelete
|
||||||
|
|
||||||
- OpenForumThreadCreate
|
- OpenForumThreadCreate
|
||||||
- OpenForumThreadUpdate
|
- OpenForumThreadUpdate
|
||||||
@@ -49,8 +50,8 @@ emptyon:
|
|||||||
- AudioOnMic
|
- AudioOnMic
|
||||||
- AudioOffMic
|
- AudioOffMic
|
||||||
|
|
||||||
- AtMessageCreate
|
#- AtMessageCreate
|
||||||
- PublicMessageDelete
|
#- PublicMessageDelete
|
||||||
|
|
||||||
ruleon:
|
ruleon:
|
||||||
Message:
|
Message:
|
||||||
|
|||||||
@@ -8,6 +8,12 @@ func (e *Engine) OnMessage(rules ...Rule) *Matcher { return e.On("Message", rule
|
|||||||
// OnMessage ...
|
// OnMessage ...
|
||||||
func OnMessage(rules ...Rule) *Matcher { return On("Message", rules...) }
|
func OnMessage(rules ...Rule) *Matcher { return On("Message", rules...) }
|
||||||
|
|
||||||
|
// OnMessageDelete ...
|
||||||
|
func (e *Engine) OnMessageDelete(rules ...Rule) *Matcher { return e.On("MessageDelete", rules...) }
|
||||||
|
|
||||||
|
// OnMessageDelete ...
|
||||||
|
func OnMessageDelete(rules ...Rule) *Matcher { return On("MessageDelete", rules...) }
|
||||||
|
|
||||||
// OnGuildCreate ...
|
// OnGuildCreate ...
|
||||||
func (e *Engine) OnGuildCreate(rules ...Rule) *Matcher { return e.On("GuildCreate", rules...) }
|
func (e *Engine) OnGuildCreate(rules ...Rule) *Matcher { return e.On("GuildCreate", rules...) }
|
||||||
|
|
||||||
@@ -62,18 +68,6 @@ func (e *Engine) OnGuildMemberRemove(rules ...Rule) *Matcher { return e.On("Guil
|
|||||||
// OnGuildMemberRemove ...
|
// OnGuildMemberRemove ...
|
||||||
func OnGuildMemberRemove(rules ...Rule) *Matcher { return On("GuildMemberRemove", rules...) }
|
func OnGuildMemberRemove(rules ...Rule) *Matcher { return On("GuildMemberRemove", rules...) }
|
||||||
|
|
||||||
// OnMessageCreate ...
|
|
||||||
func (e *Engine) OnMessageCreate(rules ...Rule) *Matcher { return e.On("MessageCreate", rules...) }
|
|
||||||
|
|
||||||
// OnMessageCreate ...
|
|
||||||
func OnMessageCreate(rules ...Rule) *Matcher { return On("MessageCreate", rules...) }
|
|
||||||
|
|
||||||
// OnMessageDelete ...
|
|
||||||
func (e *Engine) OnMessageDelete(rules ...Rule) *Matcher { return e.On("MessageDelete", rules...) }
|
|
||||||
|
|
||||||
// OnMessageDelete ...
|
|
||||||
func OnMessageDelete(rules ...Rule) *Matcher { return On("MessageDelete", rules...) }
|
|
||||||
|
|
||||||
// OnMessageReactionAdd ...
|
// OnMessageReactionAdd ...
|
||||||
func (e *Engine) OnMessageReactionAdd(rules ...Rule) *Matcher { return e.On("MessageReactionAdd", rules...) }
|
func (e *Engine) OnMessageReactionAdd(rules ...Rule) *Matcher { return e.On("MessageReactionAdd", rules...) }
|
||||||
|
|
||||||
@@ -86,18 +80,6 @@ func (e *Engine) OnMessageReactionRemove(rules ...Rule) *Matcher { return e.On("
|
|||||||
// OnMessageReactionRemove ...
|
// OnMessageReactionRemove ...
|
||||||
func OnMessageReactionRemove(rules ...Rule) *Matcher { return On("MessageReactionRemove", rules...) }
|
func OnMessageReactionRemove(rules ...Rule) *Matcher { return On("MessageReactionRemove", rules...) }
|
||||||
|
|
||||||
// OnDirectMessageCreate ...
|
|
||||||
func (e *Engine) OnDirectMessageCreate(rules ...Rule) *Matcher { return e.On("DirectMessageCreate", rules...) }
|
|
||||||
|
|
||||||
// OnDirectMessageCreate ...
|
|
||||||
func OnDirectMessageCreate(rules ...Rule) *Matcher { return On("DirectMessageCreate", rules...) }
|
|
||||||
|
|
||||||
// OnDirectMessageDelete ...
|
|
||||||
func (e *Engine) OnDirectMessageDelete(rules ...Rule) *Matcher { return e.On("DirectMessageDelete", rules...) }
|
|
||||||
|
|
||||||
// OnDirectMessageDelete ...
|
|
||||||
func OnDirectMessageDelete(rules ...Rule) *Matcher { return On("DirectMessageDelete", rules...) }
|
|
||||||
|
|
||||||
// OnOpenForumThreadCreate ...
|
// OnOpenForumThreadCreate ...
|
||||||
func (e *Engine) OnOpenForumThreadCreate(rules ...Rule) *Matcher { return e.On("OpenForumThreadCreate", rules...) }
|
func (e *Engine) OnOpenForumThreadCreate(rules ...Rule) *Matcher { return e.On("OpenForumThreadCreate", rules...) }
|
||||||
|
|
||||||
@@ -236,18 +218,6 @@ func (e *Engine) OnAudioOffMic(rules ...Rule) *Matcher { return e.On("AudioOffMi
|
|||||||
// OnAudioOffMic ...
|
// OnAudioOffMic ...
|
||||||
func OnAudioOffMic(rules ...Rule) *Matcher { return On("AudioOffMic", rules...) }
|
func OnAudioOffMic(rules ...Rule) *Matcher { return On("AudioOffMic", rules...) }
|
||||||
|
|
||||||
// OnAtMessageCreate ...
|
|
||||||
func (e *Engine) OnAtMessageCreate(rules ...Rule) *Matcher { return e.On("AtMessageCreate", rules...) }
|
|
||||||
|
|
||||||
// OnAtMessageCreate ...
|
|
||||||
func OnAtMessageCreate(rules ...Rule) *Matcher { return On("AtMessageCreate", rules...) }
|
|
||||||
|
|
||||||
// OnPublicMessageDelete ...
|
|
||||||
func (e *Engine) OnPublicMessageDelete(rules ...Rule) *Matcher { return e.On("PublicMessageDelete", rules...) }
|
|
||||||
|
|
||||||
// OnPublicMessageDelete ...
|
|
||||||
func OnPublicMessageDelete(rules ...Rule) *Matcher { return On("PublicMessageDelete", rules...) }
|
|
||||||
|
|
||||||
// OnMessagePrefix ...
|
// OnMessagePrefix ...
|
||||||
func OnMessagePrefix(prefix string, rules ...Rule) *Matcher {
|
func OnMessagePrefix(prefix string, rules ...Rule) *Matcher {
|
||||||
return defaultEngine.OnMessagePrefix(prefix, rules...)
|
return defaultEngine.OnMessagePrefix(prefix, rules...)
|
||||||
|
|||||||
18
event.go
18
event.go
@@ -52,6 +52,11 @@ func (bot *Bot) processEvent(payload *WebsocketPayload) {
|
|||||||
fallthrough
|
fallthrough
|
||||||
case "MessageCreate", "AtMessageCreate":
|
case "MessageCreate", "AtMessageCreate":
|
||||||
tp = "Message"
|
tp = "Message"
|
||||||
|
case "DirectMessageDelete":
|
||||||
|
ctx.IsToMe = true
|
||||||
|
fallthrough
|
||||||
|
case "MessageDelete", "PublicMessageDelete":
|
||||||
|
tp = "MessageDelete"
|
||||||
}
|
}
|
||||||
matcherLock.RLock()
|
matcherLock.RLock()
|
||||||
n := len(matcherMap[tp])
|
n := len(matcherMap[tp])
|
||||||
@@ -78,6 +83,19 @@ func (bot *Bot) processEvent(payload *WebsocketPayload) {
|
|||||||
ctx.IsToMe = true
|
ctx.IsToMe = true
|
||||||
}
|
}
|
||||||
log.Infoln(getLogHeader(), "=>", ctx.Message)
|
log.Infoln(getLogHeader(), "=>", ctx.Message)
|
||||||
|
case "MessageDelete":
|
||||||
|
mdl := (*MessageDelete)(x.UnsafePointer())
|
||||||
|
opmember, err := ctx.GetGuildMemberOf(mdl.Message.GuildID, mdl.OpUser.ID)
|
||||||
|
if err != nil {
|
||||||
|
log.Warnln(getLogHeader(), "获取撤回消息者详情错误:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ctx.Message = (*MessageDelete)(x.UnsafePointer()).Message
|
||||||
|
ctx.Message.Member = &Member{
|
||||||
|
GuildID: mdl.Message.GuildID,
|
||||||
|
User: ctx.Message.Author,
|
||||||
|
}
|
||||||
|
ctx.Message.Author = opmember.User
|
||||||
}
|
}
|
||||||
go match(ctx, matchers)
|
go match(ctx, matchers)
|
||||||
}
|
}
|
||||||
|
|||||||
9
rule.go
9
rule.go
@@ -16,9 +16,12 @@ func newctrl(service string, o *ctrl.Options[*Ctx]) Rule {
|
|||||||
c := m.NewControl(service, o)
|
c := m.NewControl(service, o)
|
||||||
return func(ctx *Ctx) bool {
|
return func(ctx *Ctx) bool {
|
||||||
ctx.State["manager"] = c
|
ctx.State["manager"] = c
|
||||||
gid, _ := strconv.ParseUint(ctx.Message.ChannelID, 10, 64)
|
if ctx.Message != nil {
|
||||||
uid, _ := strconv.ParseUint(ctx.Message.Author.ID, 10, 64)
|
gid, _ := strconv.ParseUint(ctx.Message.ChannelID, 10, 64)
|
||||||
return c.Handler(int64(gid), int64(uid))
|
uid, _ := strconv.ParseUint(ctx.Message.Author.ID, 10, 64)
|
||||||
|
return c.Handler(int64(gid), int64(uid))
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user