diff --git a/structs.go b/structs.go index 868add8..12463d6 100644 --- a/structs.go +++ b/structs.go @@ -337,19 +337,6 @@ type Member struct { Roles []string `json:"roles"` } -// A User stores all data for an individual Discord user. -type User struct { - ID string `json:"id"` - Email string `json:"email"` - Username string `json:"username"` - Avatar string `json:"avatar"` - Discriminator string `json:"discriminator"` - Token string `json:"token"` - Verified bool `json:"verified"` - MFAEnabled bool `json:"mfa_enabled"` - Bot bool `json:"bot"` -} - // A Settings stores data for a specific users Discord client settings. type Settings struct { RenderEmbeds bool `json:"render_embeds"` diff --git a/user.go b/user.go new file mode 100644 index 0000000..99fe501 --- /dev/null +++ b/user.go @@ -0,0 +1,23 @@ +package discordgo + +import ( + "fmt" +) + +// A User stores all data for an individual Discord user. +type User struct { + ID string `json:"id"` + Email string `json:"email"` + Username string `json:"username"` + Avatar string `json:"avatar"` + Discriminator string `json:"discriminator"` + Token string `json:"token"` + Verified bool `json:"verified"` + MFAEnabled bool `json:"mfa_enabled"` + Bot bool `json:"bot"` +} + +//String returns a unique identifier of the form username#discriminator +func (u *User) String() string { + return fmt.Sprintf("%s#%s", u.Username, u.Discriminator) +} diff --git a/user_test.go b/user_test.go new file mode 100644 index 0000000..a36f673 --- /dev/null +++ b/user_test.go @@ -0,0 +1,16 @@ +package discordgo + +import "testing" + +func TestUser(t *testing.T) { + t.Parallel() + + user := &User{ + Username: "bob", + Discriminator: "8192", + } + + if user.String() != "bob#8192" { + t.Errorf("user.String() == %v", user.String()) + } +}