107 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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
 | |
| }
 | 
