aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/bwmarrin/discordgo/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/bwmarrin/discordgo/user.go')
-rw-r--r--vendor/github.com/bwmarrin/discordgo/user.go106
1 files changed, 106 insertions, 0 deletions
diff --git a/vendor/github.com/bwmarrin/discordgo/user.go b/vendor/github.com/bwmarrin/discordgo/user.go
new file mode 100644
index 0000000..b2894d5
--- /dev/null
+++ b/vendor/github.com/bwmarrin/discordgo/user.go
@@ -0,0 +1,106 @@
+package discordgo
+
+import "strings"
+
+// UserFlags is the flags of "user" (see UserFlags* consts)
+// https://discord.com/developers/docs/resources/user#user-object-user-flags
+type UserFlags int
+
+// Valid UserFlags values
+const (
+ UserFlagDiscordEmployee UserFlags = 1 << 0
+ UserFlagDiscordPartner = 1 << 1
+ UserFlagHypeSquadEvents = 1 << 2
+ UserFlagBugHunterLevel1 = 1 << 3
+ UserFlagHouseBravery = 1 << 6
+ UserFlagHouseBrilliance = 1 << 7
+ UserFlagHouseBalance = 1 << 8
+ UserFlagEarlySupporter = 1 << 9
+ UserFlagTeamUser = 1 << 10
+ UserFlagSystem = 1 << 12
+ UserFlagBugHunterLevel2 = 1 << 14
+ UserFlagVerifiedBot = 1 << 16
+ UserFlagVerifiedBotDeveloper = 1 << 17
+)
+
+// A User stores all data for an individual Discord user.
+type User struct {
+ // The ID of the user.
+ ID string `json:"id"`
+
+ // The email of the user. This is only present when
+ // the application possesses the email scope for the user.
+ Email string `json:"email"`
+
+ // The user's username.
+ Username string `json:"username"`
+
+ // The hash of the user's avatar. Use Session.UserAvatar
+ // to retrieve the avatar itself.
+ Avatar string `json:"avatar"`
+
+ // The user's chosen language option.
+ Locale string `json:"locale"`
+
+ // The discriminator of the user (4 numbers after name).
+ Discriminator string `json:"discriminator"`
+
+ // The token of the user. This is only present for
+ // the user represented by the current session.
+ Token string `json:"token"`
+
+ // Whether the user's email is verified.
+ Verified bool `json:"verified"`
+
+ // Whether the user has multi-factor authentication enabled.
+ MFAEnabled bool `json:"mfa_enabled"`
+
+ // Whether the user is a bot.
+ Bot bool `json:"bot"`
+
+ // The public flags on a user's account.
+ // This is a combination of bit masks; the presence of a certain flag can
+ // be checked by performing a bitwise AND between this int and the flag.
+ PublicFlags UserFlags `json:"public_flags"`
+
+ // The type of Nitro subscription on a user's account.
+ // Only available when the request is authorized via a Bearer token.
+ PremiumType int `json:"premium_type"`
+
+ // Whether the user is an Official Discord System user (part of the urgent message system).
+ System bool `json:"system"`
+
+ // The flags on a user's account.
+ // Only available when the request is authorized via a Bearer token.
+ Flags int `json:"flags"`
+}
+
+// String returns a unique identifier of the form username#discriminator
+func (u *User) String() string {
+ return u.Username + "#" + u.Discriminator
+}
+
+// Mention return a string which mentions the user
+func (u *User) Mention() string {
+ return "<@" + u.ID + ">"
+}
+
+// AvatarURL returns a URL to the user's avatar.
+// size: The size of the user's avatar as a power of two
+// if size is an empty string, no size parameter will
+// be added to the URL.
+func (u *User) AvatarURL(size string) string {
+ var URL string
+ if u.Avatar == "" {
+ URL = EndpointDefaultUserAvatar(u.Discriminator)
+ } else if strings.HasPrefix(u.Avatar, "a_") {
+ URL = EndpointUserAvatarAnimated(u.ID, u.Avatar)
+ } else {
+ URL = EndpointUserAvatar(u.ID, u.Avatar)
+ }
+
+ if size != "" {
+ return URL + "?size=" + size
+ }
+ return URL
+}