Users

This manager helps retrieve basic user information for any user on Discord.

Data Models

User Struct
nametypedescription
IdInt64the user's id
Usernamestringtheir name
Discriminatorstringthe user's unique discrim
Avatarstringthe hash of the user's avatar
Botboolif the user is a bot user
UserFlag Enum
namevaluedescription
Partner2Discord Partner
HypeSquadEvents4HypeSquad Events participant
HypeSquadHouse164House Bravery
HypeSquadHouse2128House Brilliance
HypeSquadHouse3256House Balance
PremiumType Enum
namevaluedescription
None0Not a Nitro subscriber
Tier11Nitro Classic subscriber
Tier22Nitro subscriber

GetCurrentUser

Fetch information about the currently connected user account. If you're interested in getting more detailed information about a user—for example, their email—check out our GetCurrentUser API endpoint. You'll want to call this with an authorization header of Bearer <token>, where <token> is the token retrieved from a standard OAuth2 Authorization Code Grant flow.

Returns a Discord.User.

Parameters

None

Example
cs
var user = userManager.GetCurrentUser();
Console.WriteLine("Connected to user {0}", user.Id);

GetUser

Get user information for a given id.

Returns a Discord.Result and ref Discord.User via callback.

Parameters
nametypedescription
userIdInt64the id of the user to fetch
Example
cs
userManager.GetUser(userId, (Discord.Result result, ref Discord.User user) =>
{
if (result == Discord.Result.Ok)
{
Console.WriteLine("User {0} is {1}", user.Id, user.Username);
}
});

GetCurrentUserPremiumType

Get the PremiumType for the currently connected user.

Returns Discord.PremiumType.

Parameters

None

Example
cs
var userManager = discord.GetUserManager();
var premiumType = userManager.GetCurrentUserPremiumType();
switch (premiumType)
{
case PremiumType.None:
Console.WriteLine("User is not a Nitro subscriber");
case PremiumType.Tier1:
Console.WriteLine("User has Nitro Classic");
case PremiumType.Tier2:
Console.WriteLine("User has Nitro");
default:
return;
}

CurrentUserHasFlag

See whether or not the current user has a certain UserFlag on their account.

Returns bool.

Parameters
nametypedescription
flagUserFlagthe flag to check on the user's account
Example
cs
var userManager = discord.GetUserManager();
if (userManager.CurrentUserHasFlag(Discord.UserFlag.HypeSquadHouse1))
{
Console.WriteLine("User is a member of House Bravery!");
}

OnCurrentUserUpdate

Fires when the User struct of the currently connected user changes. They may have changed their avatar, username, or something else.

Parameters

None

Example
cs
var userManager = discord.GetUserManager();
// GetCurrentUser will error until this fires once.
userManager.OnCurrentUserUpdate += () => {
var currentUser = userManager.GetCurrentUser();
Console.WriteLine(currentUser.Username);
Console.WriteLine(currentUser.Id);
Console.WriteLine(currentUser.Discriminator);
Console.WriteLine(currentUser.Avatar);
};

Example: Fetching Data About a Discord User

cs
var discord = new Discord.Discord(clientId, Discord.CreateFlags.Default);
var userManager = discord.GetUserManager();
userManager.GetUser(450795363658366976, (Discord.Result result, ref Discord.User user) =>
{
if (result == Discord.Result.Ok)
{
Console.WriteLine("user fetched: {0}", user.Username);
}
else
{
Console.WriteLine("user fetch error: {0}", result);
}
});