View Source Nostrum.Struct.User (Nostrum v0.8.0)

Struct representing a Discord user.

mentioning-users-in-messages

Mentioning Users in Messages

A Nostrum.Struct.User can be mentioned in message content using the String.Chars protocol or mention/1.

user = %Nostrum.Struct.User{id: 120571255635181568}
Nostrum.Api.create_message!(184046599834435585, "#{user}")
%Nostrum.Struct.Message{content: "<@120571255635181568>"}

user = %Nostrum.Struct.User{id: 89918932789497856}
Nostrum.Api.create_message!(280085880452939778, "#{Nostrum.Struct.User.mention(user)}")
%Nostrum.Struct.Message{content: "<@89918932789497856>"}

user-vs-member

User vs. Member

A user contains only general information about that user such as a username and an avatar. A member has everything that a user has, but also additional information on a per guild basis. This includes things like a nickname and a list of roles.

Link to this section Summary

Types

User's avatar hash

Whether the user is a bot

The user's 4--digit discord-tag

The user's email

The user's id

Whether the user has two factor enabled

The user's public flags

t()

The user's username

Whether the email on the account has been verified

Functions

Returns the URL of a user's display avatar.

Returns a user's :username and :discriminator separated by a hashtag.

Formats an Nostrum.Struct.User into a mention.

Link to this section Types

@type avatar() :: String.t() | nil

User's avatar hash

@type bot() :: boolean() | nil

Whether the user is a bot

@type discriminator() :: String.t()

The user's 4--digit discord-tag

@type email() :: String.t() | nil

The user's email

@type id() :: Nostrum.Snowflake.t()

The user's id

@type mfa_enabled() :: boolean() | nil

Whether the user has two factor enabled

@type public_flags() :: Nostrum.Struct.User.Flags.t()

The user's public flags

@type t() :: %Nostrum.Struct.User{
  avatar: avatar(),
  bot: bot(),
  discriminator: discriminator(),
  email: email(),
  id: id(),
  mfa_enabled: mfa_enabled(),
  public_flags: public_flags(),
  username: username(),
  verified: verified()
}
@type username() :: String.t()

The user's username

@type verified() :: boolean() | nil

Whether the email on the account has been verified

Link to this section Functions

Link to this function

avatar_url(user, image_format \\ "webp")

View Source
@spec avatar_url(t(), String.t()) :: String.t()

Returns the URL of a user's display avatar.

If :avatar is nil, the default avatar url is returned.

Supported image formats are PNG, JPEG, WebP, and GIF.

examples

Examples

iex> user = %Nostrum.Struct.User{avatar: "8342729096ea3675442027381ff50dfe",
...>                             id: 80351110224678912}
iex> Nostrum.Struct.User.avatar_url(user)
"https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.webp"
iex> Nostrum.Struct.User.avatar_url(user, "png")
"https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png"

iex> user = %Nostrum.Struct.User{avatar: nil,
...>                             discriminator: "1337"}
iex> Nostrum.Struct.User.avatar_url(user)
"https://cdn.discordapp.com/embed/avatars/2.png"
@spec full_name(t()) :: String.t()

Returns a user's :username and :discriminator separated by a hashtag.

examples

Examples

iex> user = %Nostrum.Struct.User{username: "b1nzy",
...>                             discriminator: "0852"}
iex> Nostrum.Struct.User.full_name(user)
"b1nzy#0852"
@spec mention(t()) :: String.t()

Formats an Nostrum.Struct.User into a mention.

examples

Examples

iex> user = %Nostrum.Struct.User{id: 177888205536886784}
...> Nostrum.Struct.User.mention(user)
"<@177888205536886784>"