38 lines
651 B
Go
38 lines
651 B
Go
package util
|
|
|
|
import (
|
|
"github.com/ayntgl/discordgo"
|
|
)
|
|
|
|
func FindMessageByID(ms []*discordgo.Message, mID string) (int, *discordgo.Message) {
|
|
for i, m := range ms {
|
|
if m.ID == mID {
|
|
return i, m
|
|
}
|
|
}
|
|
|
|
return -1, nil
|
|
}
|
|
|
|
func ChannelIsUnread(s *discordgo.State, c *discordgo.Channel) bool {
|
|
if c.LastMessageID == "" {
|
|
return false
|
|
}
|
|
|
|
for _, rs := range s.ReadState {
|
|
if c.ID == rs.ID {
|
|
return c.LastMessageID != rs.LastMessageID
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
func HasPermission(s *discordgo.State, cID string, p int64) bool {
|
|
perm, err := s.UserChannelPermissions(s.User.ID, cID)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
|
|
return perm&p == p
|
|
}
|