discord.go 651 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package util
  2. import (
  3. "github.com/ayntgl/discordgo"
  4. )
  5. func FindMessageByID(ms []*discordgo.Message, mID string) (int, *discordgo.Message) {
  6. for i, m := range ms {
  7. if m.ID == mID {
  8. return i, m
  9. }
  10. }
  11. return -1, nil
  12. }
  13. func ChannelIsUnread(s *discordgo.State, c *discordgo.Channel) bool {
  14. if c.LastMessageID == "" {
  15. return false
  16. }
  17. for _, rs := range s.ReadState {
  18. if c.ID == rs.ID {
  19. return c.LastMessageID != rs.LastMessageID
  20. }
  21. }
  22. return false
  23. }
  24. func HasPermission(s *discordgo.State, cID string, p int64) bool {
  25. perm, err := s.UserChannelPermissions(s.User.ID, cID)
  26. if err != nil {
  27. return false
  28. }
  29. return perm&p == p
  30. }