Advertisement
Guest User

Mee6 Auto-Message

a guest
Jul 18th, 2017
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.64 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "flag"
  5.     "time"
  6.  
  7.     "github.com/bwmarrin/discordgo"
  8.     "github.com/nhooyr/color/log"
  9. )
  10.  
  11. var (
  12.     email    = flag.String("email", "", "account email")
  13.     pass     = flag.String("pass", "", "account password")
  14.     guild    = flag.String("guild", "", "guild (server) to join")
  15.     channel  = flag.String("chan", "", "channel to join")
  16.     message  = flag.String("msg", "_", "message to be sent")
  17.     interval = flag.Int64("int", 60, "interval between messages in seconds")
  18. )
  19.  
  20. func main() {
  21.     flag.Parse()
  22.     if *email == "" || *pass == "" {
  23.         log.Fatal("please provide an email and password")
  24.     }
  25.     s, err := discordgo.New(*email, *pass)
  26.     if err != nil {
  27.         log.Fatal(err)
  28.     }
  29.     log.Print("logged in")
  30.  
  31.     g := findGuild(s)
  32.     if g == nil {
  33.         log.Fatal("could not find guild")
  34.     }
  35.     id := findChannel(s, g)
  36.     if id == "" {
  37.         log.Fatal("could not find channel")
  38.     }
  39.  
  40.     for t := time.Tick(time.Duration(*interval) * time.Second); ; <-t {
  41.         if _, err := s.ChannelMessageSend(id, *message); err != nil {
  42.             log.Print(err)
  43.         } else {
  44.             log.Print("sent message")
  45.         }
  46.     }
  47. }
  48.  
  49. func findGuild(s *discordgo.Session) *discordgo.UserGuild {
  50.     gs, err := s.UserGuilds(0, "", "")
  51.     if err != nil {
  52.         log.Fatal(err)
  53.     }
  54.     log.Print("got guilds")
  55.     for _, g := range gs {
  56.         if g.Name == *guild {
  57.             log.Print("found guild")
  58.             return g
  59.         }
  60.     }
  61.     return nil
  62. }
  63.  
  64. func findChannel(s *discordgo.Session, g *discordgo.UserGuild) string {
  65.     chs, err := s.GuildChannels(g.ID)
  66.     if err != nil {
  67.         log.Fatal(err)
  68.     }
  69.     log.Print("got channels")
  70.     for _, ch := range chs {
  71.         if ch.Name == *channel {
  72.             log.Print("found channel")
  73.             return ch.ID
  74.         }
  75.     }
  76.     return ""
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement