diff --git a/coolq/bot.go b/coolq/bot.go index 1e5121d..f0b2106 100644 --- a/coolq/bot.go +++ b/coolq/bot.go @@ -10,6 +10,7 @@ import ( "github.com/Mrs4s/MiraiGo/message" "github.com/Mrs4s/go-cqhttp/global" log "github.com/sirupsen/logrus" + "github.com/tidwall/gjson" "github.com/xujiajun/nutsdb" "hash/crc32" "path" @@ -208,6 +209,12 @@ func (bot *CQBot) Release() { } func (bot *CQBot) dispatchEventMessage(m MSG) { + payload := gjson.Parse(m.ToJson()) + filter := global.GetFilter() + if filter != nil && (*filter).Eval(payload) == false { + log.Debug("Event filtered!") + return + } for _, f := range bot.events { fn := f go func() { diff --git a/server/websocket.go b/server/websocket.go index b940ac2..8dab69a 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -172,12 +172,6 @@ func (c *websocketClient) listenApi(conn *websocketConn, u bool) { } func (c *websocketClient) onBotPushEvent(m coolq.MSG) { - payload := gjson.Parse(m.ToJson()) - filter := global.GetFilter() - if filter != nil && (*filter).Eval(payload) == false { - log.Debug("Event filtered!") - return - } if c.eventConn != nil { log.Debugf("向WS服务器 %v 推送Event: %v", c.eventConn.RemoteAddr().String(), m.ToJson()) conn := c.eventConn