Browse Source

add stuff

pull/2574/head
Misha133 2 years ago
parent
commit
142d696251
4 changed files with 33 additions and 0 deletions
  1. +8
    -0
      src/Discord.Net.Core/Entities/Guilds/IUserGuild.cs
  2. +2
    -0
      src/Discord.Net.Rest/API/Common/UserGuild.cs
  3. +13
    -0
      src/Discord.Net.Rest/DiscordRestClient.cs
  4. +10
    -0
      src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs

+ 8
- 0
src/Discord.Net.Core/Entities/Guilds/IUserGuild.cs View File

@@ -18,5 +18,13 @@ namespace Discord
/// Returns the current user's permissions for this guild.
/// </summary>
GuildPermissions Permissions { get; }

/// <summary>
/// Gets the features for this guild.
/// </summary>
/// <returns>
/// A flags enum containing all the features for the guild.
/// </returns>
GuildFeatures Features { get; }
}
}

+ 2
- 0
src/Discord.Net.Rest/API/Common/UserGuild.cs View File

@@ -14,5 +14,7 @@ namespace Discord.API
public bool Owner { get; set; }
[JsonProperty("permissions"), Int53]
public string Permissions { get; set; }
[JsonProperty("features")]
public GuildFeatures Features { get; set; }
}
}

+ 13
- 0
src/Discord.Net.Rest/DiscordRestClient.cs View File

@@ -152,6 +152,19 @@ namespace Discord.Rest

#endregion
public async Task<RestSelfUser> GetCurrentUserAsync(RequestOptions options = null)
{
var user = RestSelfUser.Create(this, await ApiClient.GetMyUserAsync(options));
base.CurrentUser = user;
return user;
}

public async Task<RestGuildUser> GetCurrentUserGuildMemberAsync(ulong guildId, RequestOptions options = null)
{
var user = await ApiClient.GetCurrentUserGuildMember(guildId, options);
return RestGuildUser.Create(this, null, user, guildId);
}

public async Task<RestApplication> GetApplicationInfoAsync(RequestOptions options = null)
{
return _applicationInfo ??= await ClientHelper.GetApplicationInfoAsync(this, options).ConfigureAwait(false);


+ 10
- 0
src/Discord.Net.Rest/Entities/Guilds/RestUserGuild.cs View File

@@ -21,6 +21,8 @@ namespace Discord.Rest
public DateTimeOffset CreatedAt => SnowflakeUtils.FromSnowflake(Id);
/// <inheritdoc />
public string IconUrl => CDN.GetGuildIconUrl(Id, _iconId);
/// <inheritdoc />
public GuildFeatures Features { get; private set; }

internal RestUserGuild(BaseDiscordClient discord, ulong id)
: base(discord, id)
@@ -39,12 +41,20 @@ namespace Discord.Rest
IsOwner = model.Owner;
Name = model.Name;
Permissions = new GuildPermissions(model.Permissions);
Features = model.Features;
}
public async Task LeaveAsync(RequestOptions options = null)
{
await Discord.ApiClient.LeaveGuildAsync(Id, options).ConfigureAwait(false);
}

public async Task<RestGuildUser> GetCurrentUserGuildMemberAsync(RequestOptions options = null)
{
var user = await Discord.ApiClient.GetCurrentUserGuildMember(Id, options);
return RestGuildUser.Create(Discord, null, user, Id);
}

/// <inheritdoc />
public async Task DeleteAsync(RequestOptions options = null)
{


Loading…
Cancel
Save