-
Notifications
You must be signed in to change notification settings - Fork 1
/
filters.go
41 lines (36 loc) · 1.16 KB
/
filters.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package bot
import (
"strings"
"github.com/andersfylling/disgord"
)
// Filters MessageCreate events, allowing only non-bot authors.
func filterMsgCreateNotBot(evt interface{}) interface{} {
evtMsgCreate := evt.(*disgord.MessageCreate)
if evtMsgCreate.Message.Author == nil || evtMsgCreate.Message.Author.Bot {
return nil
}
return evt
}
// Returns a filter for MessageCreate events, which allows messages with the given prefix only and
// also strips the prefix from the message.
func filterMsgCreateStripPrefix(prefix string) disgord.Middleware {
return func(evt interface{}) interface{} {
evtMsgCreate := evt.(*disgord.MessageCreate)
if !strings.HasPrefix(evtMsgCreate.Message.Content, prefix) {
return nil
}
evtMsgCreate.Message.Content = evtMsgCreate.Message.Content[len(prefix):]
return evt
}
}
// Returns a filter for MessageReactionAdd events, which allows reactions on the given message ID
// only.
func filterReactionAddForMsg(msgID disgord.Snowflake) disgord.Middleware {
return func(evt interface{}) interface{} {
evtReactionAdd := evt.(*disgord.MessageReactionAdd)
if evtReactionAdd.MessageID != msgID {
return nil
}
return evt
}
}