Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "github.com/bwmarrin/discordgo"
  5. "flag"
  6. log "github.com/Sirupsen/logrus"
  7. "fmt"
  8. "time"
  9. "errors"
  10. )
  11.  
  12. var (
  13. discrims = []string{
  14. "1234", "1337", "8765", "4567", "2345",
  15. }
  16. errorNoUsernames = errors.New("No usernames found for current discrim")
  17. token, password string
  18. )
  19.  
  20. func init() {
  21. flag.StringVar(&token, "t", "", "discord token")
  22. flag.StringVar(&password, "p", "", "discord password")
  23. flag.Parse()
  24. }
  25.  
  26. func isGoodDiscrim(discrim string) bool {
  27. if discrim[0] == discrim[1] && discrim[1] == discrim[2] && discrim[2] == discrim[3] {
  28. return true
  29. }
  30. if discrim[0] == discrim[1] && discrim[1] == discrim[2] && discrim[2] == 0 {
  31. return true
  32. }
  33. if discrim[1] == discrim[2] && discrim[2] == discrim[3] && discrim[3] == 0 {
  34. return true
  35. }
  36. for _, d := range discrims {
  37. if discrim == d {
  38. return true
  39. }
  40. }
  41. return false
  42. }
  43.  
  44. func findUsername(dg *discordgo.Session) (string, error) {
  45. me, err := dg.User("@me")
  46. if err != nil {
  47. return "", err
  48. }
  49. for _, guild := range dg.State.Guilds {
  50. for _, member := range guild.Members {
  51. if member.User.Discriminator == me.Discriminator && member.User.Username != me.Username {
  52. return member.User.Username, nil
  53. }
  54. }
  55. }
  56. return "", errorNoUsernames
  57. }
  58.  
  59. func populateGuildMembers(dg *discordgo.Session) {
  60. guilds, err := dg.UserGuilds()
  61. if err != nil {
  62. log.WithError(err).Fatal("Error getting user guilds")
  63. return
  64. }
  65. for _, guild := range guilds {
  66. log.WithFields(log.Fields{
  67. "name": guild.Name,
  68. "id": guild.ID,
  69. }).Debug("Populating guild members")
  70. var after string
  71. for {
  72. members, err := dg.GuildMembers(guild.ID, after, 1000)
  73. if err != nil {
  74. log.WithError(err).Fatal("Error getting guild members")
  75. return
  76. }
  77. if len(members) < 1000 {
  78. break
  79. }
  80. after = members[len(members) - 1].User.ID
  81. }
  82. }
  83. log.Info("Loaded guild members")
  84. }
  85.  
  86. func main() {
  87. log.SetLevel(log.DebugLevel)
  88. log.Info("Starting...")
  89. dg, err := discordgo.New(token)
  90. if err != nil {
  91. log.WithError(err).Fatal("Error creating discord session")
  92. return
  93. }
  94. u, err := dg.User("@me")
  95. if err != nil {
  96. log.WithError(err).Fatal("Error getting user details")
  97. return
  98. }
  99. err = dg.Open()
  100. if err != nil {
  101. log.WithError(err).Fatal("Error opening connection")
  102. return
  103. }
  104. log.WithField("user", fmt.Sprintf("%s#%s (%s)", u.Username, u.Discriminator, u.ID)).Info("Started!")
  105. populateGuildMembers(dg)
  106. for {
  107. username, err := findUsername(dg)
  108. if err != nil {
  109. log.WithError(err).Fatal("Error finding new username")
  110. return
  111. }
  112. log.WithField("username", username).Debug("Found new username")
  113. u, err := dg.UserUpdate("", password, username, "", "")
  114. if err != nil {
  115. log.WithError(err).Warn("Error updating user")
  116. return
  117. }
  118. log.WithFields(log.Fields{
  119. "username": u.Username,
  120. "discriminator": u.Discriminator,
  121. }).Info("Updated user")
  122. if isGoodDiscrim(u.Discriminator) {
  123. log.Info("Found sweet mf discrim")
  124. break
  125. }
  126. time.Sleep(time.Minute * 30)
  127. }
  128. log.Info("Finished discrim farming!")
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement