-
-
Save SilverCory/27cebfa3fa2a8bad745c526999ad48c6 to your computer and use it in GitHub Desktop.
Changes your discord username to get a sweet mf discrim cunt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"github.com/bwmarrin/discordgo" | |
"flag" | |
log "github.com/Sirupsen/logrus" | |
"fmt" | |
"time" | |
"errors" | |
) | |
var ( | |
errorNoUsernames = errors.New("No usernames found for current discrim") | |
token, password string | |
) | |
func init() { | |
flag.StringVar(&token, "t", "", "discord token") | |
flag.StringVar(&password, "p", "", "discord password") | |
flag.Parse() | |
} | |
func isGoodDiscrim(discrim string) bool { | |
return discrim == "9999" | |
} | |
func findUsername(dg *discordgo.Session) (string, error) { | |
me, err := dg.User("@me") | |
if err != nil { | |
return "", err | |
} | |
for _, guild := range dg.State.Guilds { | |
for _, member := range guild.Members { | |
if member.User.Discriminator == me.Discriminator && member.User.Username != me.Username { | |
return member.User.Username, nil | |
} | |
} | |
} | |
return "", errorNoUsernames | |
} | |
func populateGuildMembers(dg *discordgo.Session) { | |
guilds, err := dg.UserGuilds() | |
if err != nil { | |
log.WithError(err).Fatal("Error getting user guilds") | |
return | |
} | |
for _, guild := range guilds { | |
log.WithFields(log.Fields{ | |
"name": guild.Name, | |
"id": guild.ID, | |
}).Debug("Populating guild members") | |
var after string | |
for { | |
members, err := dg.GuildMembers(guild.ID, after, 1000) | |
if err != nil { | |
log.WithError(err).Fatal("Error getting guild members") | |
return | |
} | |
if len(members) < 1000 { | |
break | |
} | |
after = members[len(members) - 1].User.ID | |
} | |
} | |
log.Info("Loaded guild members") | |
} | |
func main() { | |
log.SetLevel(log.DebugLevel) | |
log.Info("Starting...") | |
dg, err := discordgo.New(token) | |
if err != nil { | |
log.WithError(err).Fatal("Error creating discord session") | |
return | |
} | |
u, err := dg.User("@me") | |
if err != nil { | |
log.WithError(err).Fatal("Error getting user details") | |
return | |
} | |
err = dg.Open() | |
if err != nil { | |
log.WithError(err).Fatal("Error opening connection") | |
return | |
} | |
log.WithField("user", fmt.Sprintf("%s#%s (%s)", u.Username, u.Discriminator, u.ID)).Info("Started!") | |
populateGuildMembers(dg) | |
var first = true | |
for { | |
if !first { | |
time.Sleep(time.Minute * 30) | |
} else { | |
first = false | |
} | |
username, err := findUsername(dg) | |
if err != nil { | |
log.WithError(err).Fatal("Error finding new username") | |
return | |
} | |
u, err := dg.UserUpdate("", password, username, "", "") | |
if err != nil { | |
log.WithError(err).Warn("Error updating user") | |
continue | |
} | |
log.WithFields(log.Fields{ | |
"username": u.Username, | |
"discriminator": u.Discriminator, | |
}).Info("Updated user") | |
if isGoodDiscrim(u.Discriminator) { | |
log.Info("Found sweet mf discrim") | |
break | |
} | |
} | |
log.Info("Finished discrim farming!") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment