feature: Bump API version to 9 (#1847)
* First changes to the config * Lots of changes to fit the new version * Remove PermissionTargetConverter
This commit is contained in:
@@ -23,10 +23,6 @@ namespace Discord.API
|
||||
public ulong? AFKChannelId { get; set; }
|
||||
[JsonProperty("afk_timeout")]
|
||||
public int AFKTimeout { get; set; }
|
||||
[JsonProperty("embed_enabled")]
|
||||
public Optional<bool> EmbedEnabled { get; set; }
|
||||
[JsonProperty("embed_channel_id")]
|
||||
public Optional<ulong?> EmbedChannelId { get; set; }
|
||||
[JsonProperty("verification_level")]
|
||||
public VerificationLevel VerificationLevel { get; set; }
|
||||
[JsonProperty("default_message_notifications")]
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#pragma warning disable CS1591
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API
|
||||
{
|
||||
internal class GuildEmbed
|
||||
{
|
||||
[JsonProperty("enabled")]
|
||||
public bool Enabled { get; set; }
|
||||
[JsonProperty("channel_id")]
|
||||
public ulong? ChannelId { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,8 @@ namespace Discord.API
|
||||
[JsonProperty("type")]
|
||||
public PermissionTarget TargetType { get; set; }
|
||||
[JsonProperty("deny"), Int53]
|
||||
public ulong Deny { get; set; }
|
||||
public string Deny { get; set; }
|
||||
[JsonProperty("allow"), Int53]
|
||||
public ulong Allow { get; set; }
|
||||
public string Allow { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,6 @@ namespace Discord.API
|
||||
public Optional<ulong> GuildId { get; set; }
|
||||
[JsonProperty("status")]
|
||||
public UserStatus Status { get; set; }
|
||||
[JsonProperty("game")]
|
||||
public Game Game { get; set; }
|
||||
|
||||
[JsonProperty("roles")]
|
||||
public Optional<ulong[]> Roles { get; set; }
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Discord.API
|
||||
[JsonProperty("position")]
|
||||
public int Position { get; set; }
|
||||
[JsonProperty("permissions"), Int53]
|
||||
public ulong Permissions { get; set; }
|
||||
public string Permissions { get; set; }
|
||||
[JsonProperty("managed")]
|
||||
public bool Managed { get; set; }
|
||||
[JsonProperty("tags")]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma warning disable CS1591
|
||||
#pragma warning disable CS1591
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API
|
||||
@@ -14,6 +14,6 @@ namespace Discord.API
|
||||
[JsonProperty("owner")]
|
||||
public bool Owner { get; set; }
|
||||
[JsonProperty("permissions"), Int53]
|
||||
public ulong Permissions { get; set; }
|
||||
public string Permissions { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma warning disable CS1591
|
||||
#pragma warning disable CS1591
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API.Rest
|
||||
@@ -7,13 +7,13 @@ namespace Discord.API.Rest
|
||||
internal class ModifyChannelPermissionsParams
|
||||
{
|
||||
[JsonProperty("type")]
|
||||
public string Type { get; }
|
||||
public int Type { get; }
|
||||
[JsonProperty("allow")]
|
||||
public ulong Allow { get; }
|
||||
public string Allow { get; }
|
||||
[JsonProperty("deny")]
|
||||
public ulong Deny { get; }
|
||||
public string Deny { get; }
|
||||
|
||||
public ModifyChannelPermissionsParams(string type, ulong allow, ulong deny)
|
||||
public ModifyChannelPermissionsParams(int type, string allow, string deny)
|
||||
{
|
||||
Type = type;
|
||||
Allow = allow;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma warning disable CS1591
|
||||
#pragma warning disable CS1591
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API.Rest
|
||||
@@ -9,7 +9,7 @@ namespace Discord.API.Rest
|
||||
[JsonProperty("name")]
|
||||
public Optional<string> Name { get; set; }
|
||||
[JsonProperty("permissions")]
|
||||
public Optional<ulong> Permissions { get; set; }
|
||||
public Optional<string> Permissions { get; set; }
|
||||
[JsonProperty("color")]
|
||||
public Optional<uint> Color { get; set; }
|
||||
[JsonProperty("hoist")]
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API.Rest
|
||||
{
|
||||
[JsonObject(MemberSerialization = MemberSerialization.OptIn)]
|
||||
internal class SuppressEmbedParams
|
||||
{
|
||||
[JsonProperty("suppress")]
|
||||
public bool Suppressed { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -69,14 +69,6 @@ namespace Discord.Rest
|
||||
return RestGuild.Create(client, model);
|
||||
return null;
|
||||
}
|
||||
public static async Task<RestGuildEmbed?> GetGuildEmbedAsync(BaseDiscordClient client,
|
||||
ulong id, RequestOptions options)
|
||||
{
|
||||
var model = await client.ApiClient.GetGuildEmbedAsync(id, options).ConfigureAwait(false);
|
||||
if (model != null)
|
||||
return RestGuildEmbed.Create(model);
|
||||
return null;
|
||||
}
|
||||
public static async Task<RestGuildWidget?> GetGuildWidgetAsync(BaseDiscordClient client,
|
||||
ulong id, RequestOptions options)
|
||||
{
|
||||
|
||||
@@ -45,20 +45,18 @@ namespace Discord.API
|
||||
internal string AuthToken { get; private set; }
|
||||
internal IRestClient RestClient { get; private set; }
|
||||
internal ulong? CurrentUserId { get; set; }
|
||||
public RateLimitPrecision RateLimitPrecision { get; private set; }
|
||||
internal bool UseSystemClock { get; set; }
|
||||
|
||||
internal JsonSerializer Serializer => _serializer;
|
||||
|
||||
/// <exception cref="ArgumentException">Unknown OAuth token type.</exception>
|
||||
public DiscordRestApiClient(RestClientProvider restClientProvider, string userAgent, RetryMode defaultRetryMode = RetryMode.AlwaysRetry,
|
||||
JsonSerializer serializer = null, RateLimitPrecision rateLimitPrecision = RateLimitPrecision.Second, bool useSystemClock = true)
|
||||
JsonSerializer serializer = null, bool useSystemClock = true)
|
||||
{
|
||||
_restClientProvider = restClientProvider;
|
||||
UserAgent = userAgent;
|
||||
DefaultRetryMode = defaultRetryMode;
|
||||
_serializer = serializer ?? new JsonSerializer { ContractResolver = new DiscordContractResolver() };
|
||||
RateLimitPrecision = rateLimitPrecision;
|
||||
UseSystemClock = useSystemClock;
|
||||
|
||||
RequestQueue = new RequestQueue();
|
||||
@@ -75,7 +73,6 @@ namespace Discord.API
|
||||
RestClient.SetHeader("accept", "*/*");
|
||||
RestClient.SetHeader("user-agent", UserAgent);
|
||||
RestClient.SetHeader("authorization", GetPrefixedToken(AuthTokenType, AuthToken));
|
||||
RestClient.SetHeader("X-RateLimit-Precision", RateLimitPrecision.ToString().ToLower());
|
||||
}
|
||||
/// <exception cref="ArgumentException">Unknown OAuth token type.</exception>
|
||||
internal static string GetPrefixedToken(TokenType tokenType, string token)
|
||||
@@ -645,16 +642,6 @@ namespace Discord.API
|
||||
return await SendJsonAsync<Message>("PATCH", () => $"channels/{channelId}/messages/{messageId}", args, ids, clientBucket: ClientBucketType.SendEdit, options: options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task SuppressEmbedAsync(ulong channelId, ulong messageId, Rest.SuppressEmbedParams args, RequestOptions options = null)
|
||||
{
|
||||
Preconditions.NotEqual(channelId, 0, nameof(channelId));
|
||||
Preconditions.NotEqual(messageId, 0, nameof(messageId));
|
||||
options = RequestOptions.CreateOrClone(options);
|
||||
|
||||
var ids = new BucketIds(channelId: channelId);
|
||||
await SendJsonAsync("POST", () => $"channels/{channelId}/messages/{messageId}/suppress-embeds", args, ids, options: options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task AddReactionAsync(ulong channelId, ulong messageId, string emoji, RequestOptions options = null)
|
||||
{
|
||||
Preconditions.NotEqual(channelId, 0, nameof(channelId));
|
||||
@@ -936,7 +923,7 @@ namespace Discord.API
|
||||
|
||||
var ids = new BucketIds(guildId: guildId);
|
||||
string reason = string.IsNullOrWhiteSpace(args.Reason) ? "" : $"&reason={Uri.EscapeDataString(args.Reason)}";
|
||||
await SendAsync("PUT", () => $"guilds/{guildId}/bans/{userId}?delete-message-days={args.DeleteMessageDays}{reason}", ids, options: options).ConfigureAwait(false);
|
||||
await SendAsync("PUT", () => $"guilds/{guildId}/bans/{userId}?delete_message_days={args.DeleteMessageDays}{reason}", ids, options: options).ConfigureAwait(false);
|
||||
}
|
||||
/// <exception cref="ArgumentException"><paramref name="guildId"/> and <paramref name="userId"/> must not be equal to zero.</exception>
|
||||
public async Task RemoveGuildBanAsync(ulong guildId, ulong userId, RequestOptions options = null)
|
||||
@@ -949,32 +936,6 @@ namespace Discord.API
|
||||
await SendAsync("DELETE", () => $"guilds/{guildId}/bans/{userId}", ids, options: options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
//Guild Embeds
|
||||
/// <exception cref="ArgumentException"><paramref name="guildId"/> must not be equal to zero.</exception>
|
||||
public async Task<GuildEmbed> GetGuildEmbedAsync(ulong guildId, RequestOptions options = null)
|
||||
{
|
||||
Preconditions.NotEqual(guildId, 0, nameof(guildId));
|
||||
options = RequestOptions.CreateOrClone(options);
|
||||
|
||||
try
|
||||
{
|
||||
var ids = new BucketIds(guildId: guildId);
|
||||
return await SendAsync<GuildEmbed>("GET", () => $"guilds/{guildId}/embed", ids, options: options).ConfigureAwait(false);
|
||||
}
|
||||
catch (HttpException ex) when (ex.HttpCode == HttpStatusCode.NotFound) { return null; }
|
||||
}
|
||||
/// <exception cref="ArgumentException"><paramref name="guildId"/> must not be equal to zero.</exception>
|
||||
/// <exception cref="ArgumentNullException"><paramref name="args"/> must not be <see langword="null"/>.</exception>
|
||||
public async Task<GuildEmbed> ModifyGuildEmbedAsync(ulong guildId, Rest.ModifyGuildEmbedParams args, RequestOptions options = null)
|
||||
{
|
||||
Preconditions.NotNull(args, nameof(args));
|
||||
Preconditions.NotEqual(guildId, 0, nameof(guildId));
|
||||
options = RequestOptions.CreateOrClone(options);
|
||||
|
||||
var ids = new BucketIds(guildId: guildId);
|
||||
return await SendJsonAsync<GuildEmbed>("PATCH", () => $"guilds/{guildId}/embed", args, ids, options: options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
//Guild Widget
|
||||
/// <exception cref="ArgumentException"><paramref name="guildId"/> must not be equal to zero.</exception>
|
||||
public async Task<GuildWidget> GetGuildWidgetAsync(ulong guildId, RequestOptions options = null)
|
||||
|
||||
@@ -29,10 +29,7 @@ namespace Discord.Rest
|
||||
internal DiscordRestClient(DiscordRestConfig config, API.DiscordRestApiClient api) : base(config, api) { }
|
||||
|
||||
private static API.DiscordRestApiClient CreateApiClient(DiscordRestConfig config)
|
||||
=> new API.DiscordRestApiClient(config.RestClientProvider,
|
||||
DiscordRestConfig.UserAgent,
|
||||
rateLimitPrecision: config.RateLimitPrecision,
|
||||
useSystemClock: config.UseSystemClock);
|
||||
=> new API.DiscordRestApiClient(config.RestClientProvider, DiscordRestConfig.UserAgent, useSystemClock: config.UseSystemClock);
|
||||
|
||||
internal override void Dispose(bool disposing)
|
||||
{
|
||||
@@ -80,9 +77,6 @@ namespace Discord.Rest
|
||||
=> ClientHelper.GetGuildAsync(this, id, false, options);
|
||||
public Task<RestGuild> GetGuildAsync(ulong id, bool withCounts, RequestOptions options = null)
|
||||
=> ClientHelper.GetGuildAsync(this, id, withCounts, options);
|
||||
[Obsolete("This endpoint is deprecated, use GetGuildWidgetAsync instead.")]
|
||||
public Task<RestGuildEmbed?> GetGuildEmbedAsync(ulong id, RequestOptions options = null)
|
||||
=> ClientHelper.GetGuildEmbedAsync(this, id, options);
|
||||
public Task<RestGuildWidget?> GetGuildWidgetAsync(ulong id, RequestOptions options = null)
|
||||
=> ClientHelper.GetGuildWidgetAsync(this, id, options);
|
||||
public IAsyncEnumerable<IReadOnlyCollection<RestUserGuild>> GetGuildSummariesAsync(RequestOptions options = null)
|
||||
|
||||
@@ -33,8 +33,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
: Optional.Create<API.Overwrite[]>(),
|
||||
};
|
||||
@@ -59,8 +59,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
: Optional.Create<API.Overwrite[]>(),
|
||||
};
|
||||
@@ -84,8 +84,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
: Optional.Create<API.Overwrite[]>(),
|
||||
};
|
||||
@@ -328,13 +328,13 @@ namespace Discord.Rest
|
||||
public static async Task AddPermissionOverwriteAsync(IGuildChannel channel, BaseDiscordClient client,
|
||||
IUser user, OverwritePermissions perms, RequestOptions options)
|
||||
{
|
||||
var args = new ModifyChannelPermissionsParams("member", perms.AllowValue, perms.DenyValue);
|
||||
var args = new ModifyChannelPermissionsParams((int)PermissionTarget.User, perms.AllowValue.ToString(), perms.DenyValue.ToString());
|
||||
await client.ApiClient.ModifyChannelPermissionsAsync(channel.Id, user.Id, args, options).ConfigureAwait(false);
|
||||
}
|
||||
public static async Task AddPermissionOverwriteAsync(IGuildChannel channel, BaseDiscordClient client,
|
||||
IRole role, OverwritePermissions perms, RequestOptions options)
|
||||
{
|
||||
var args = new ModifyChannelPermissionsParams("role", perms.AllowValue, perms.DenyValue);
|
||||
var args = new ModifyChannelPermissionsParams((int)PermissionTarget.Role, perms.AllowValue.ToString(), perms.DenyValue.ToString());
|
||||
await client.ApiClient.ModifyChannelPermissionsAsync(channel.Id, role.Id, args, options).ConfigureAwait(false);
|
||||
}
|
||||
public static async Task RemovePermissionOverwriteAsync(IGuildChannel channel, BaseDiscordClient client,
|
||||
@@ -450,8 +450,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
};
|
||||
await client.ApiClient.ModifyGuildChannelAsync(channel.Id, apiArgs, options).ConfigureAwait(false);
|
||||
|
||||
@@ -4,7 +4,6 @@ using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using EmbedModel = Discord.API.GuildEmbed;
|
||||
using WidgetModel = Discord.API.GuildWidget;
|
||||
using Model = Discord.API.Guild;
|
||||
using RoleModel = Discord.API.Role;
|
||||
@@ -81,26 +80,6 @@ namespace Discord.Rest
|
||||
return await client.ApiClient.ModifyGuildAsync(guild.Id, apiArgs, options).ConfigureAwait(false);
|
||||
}
|
||||
/// <exception cref="ArgumentNullException"><paramref name="func"/> is <c>null</c>.</exception>
|
||||
public static async Task<EmbedModel> ModifyEmbedAsync(IGuild guild, BaseDiscordClient client,
|
||||
Action<GuildEmbedProperties> func, RequestOptions options)
|
||||
{
|
||||
if (func == null) throw new ArgumentNullException(nameof(func));
|
||||
|
||||
var args = new GuildEmbedProperties();
|
||||
func(args);
|
||||
var apiArgs = new API.Rest.ModifyGuildEmbedParams
|
||||
{
|
||||
Enabled = args.Enabled
|
||||
};
|
||||
|
||||
if (args.Channel.IsSpecified)
|
||||
apiArgs.ChannelId = args.Channel.Value?.Id;
|
||||
else if (args.ChannelId.IsSpecified)
|
||||
apiArgs.ChannelId = args.ChannelId.Value;
|
||||
|
||||
return await client.ApiClient.ModifyGuildEmbedAsync(guild.Id, apiArgs, options).ConfigureAwait(false);
|
||||
}
|
||||
/// <exception cref="ArgumentNullException"><paramref name="func"/> is <c>null</c>.</exception>
|
||||
public static async Task<WidgetModel> ModifyWidgetAsync(IGuild guild, BaseDiscordClient client,
|
||||
Action<GuildWidgetProperties> func, RequestOptions options)
|
||||
{
|
||||
@@ -205,8 +184,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
: Optional.Create<API.Overwrite[]>(),
|
||||
};
|
||||
@@ -233,8 +212,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
: Optional.Create<API.Overwrite[]>(),
|
||||
};
|
||||
@@ -258,8 +237,8 @@ namespace Discord.Rest
|
||||
{
|
||||
TargetId = overwrite.TargetId,
|
||||
TargetType = overwrite.TargetType,
|
||||
Allow = overwrite.Permissions.AllowValue,
|
||||
Deny = overwrite.Permissions.DenyValue
|
||||
Allow = overwrite.Permissions.AllowValue.ToString(),
|
||||
Deny = overwrite.Permissions.DenyValue.ToString()
|
||||
}).ToArray()
|
||||
: Optional.Create<API.Overwrite[]>(),
|
||||
};
|
||||
@@ -320,7 +299,7 @@ namespace Discord.Rest
|
||||
Hoist = isHoisted,
|
||||
Mentionable = isMentionable,
|
||||
Name = name,
|
||||
Permissions = permissions?.RawValue ?? Optional.Create<ulong>()
|
||||
Permissions = permissions?.RawValue.ToString() ?? Optional.Create<string>()
|
||||
};
|
||||
|
||||
var model = await client.ApiClient.CreateGuildRoleAsync(guild.Id, createGuildRoleParams, options).ConfigureAwait(false);
|
||||
|
||||
@@ -6,7 +6,6 @@ using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using EmbedModel = Discord.API.GuildEmbed;
|
||||
using WidgetModel = Discord.API.GuildWidget;
|
||||
using Model = Discord.API.Guild;
|
||||
|
||||
@@ -27,8 +26,6 @@ namespace Discord.Rest
|
||||
/// <inheritdoc />
|
||||
public int AFKTimeout { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public bool IsEmbeddable { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public bool IsWidgetEnabled { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public VerificationLevel VerificationLevel { get; private set; }
|
||||
@@ -42,8 +39,6 @@ namespace Discord.Rest
|
||||
/// <inheritdoc />
|
||||
public ulong? AFKChannelId { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public ulong? EmbedChannelId { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public ulong? WidgetChannelId { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public ulong? SystemChannelId { get; private set; }
|
||||
@@ -133,16 +128,12 @@ namespace Discord.Rest
|
||||
internal void Update(Model model)
|
||||
{
|
||||
AFKChannelId = model.AFKChannelId;
|
||||
if (model.EmbedChannelId.IsSpecified)
|
||||
EmbedChannelId = model.EmbedChannelId.Value;
|
||||
if (model.WidgetChannelId.IsSpecified)
|
||||
WidgetChannelId = model.WidgetChannelId.Value;
|
||||
SystemChannelId = model.SystemChannelId;
|
||||
RulesChannelId = model.RulesChannelId;
|
||||
PublicUpdatesChannelId = model.PublicUpdatesChannelId;
|
||||
AFKTimeout = model.AFKTimeout;
|
||||
if (model.EmbedEnabled.IsSpecified)
|
||||
IsEmbeddable = model.EmbedEnabled.Value;
|
||||
if (model.WidgetEnabled.IsSpecified)
|
||||
IsWidgetEnabled = model.WidgetEnabled.Value;
|
||||
IconId = model.Icon;
|
||||
@@ -200,11 +191,6 @@ namespace Discord.Rest
|
||||
|
||||
Available = true;
|
||||
}
|
||||
internal void Update(EmbedModel model)
|
||||
{
|
||||
EmbedChannelId = model.ChannelId;
|
||||
IsEmbeddable = model.Enabled;
|
||||
}
|
||||
internal void Update(WidgetModel model)
|
||||
{
|
||||
WidgetChannelId = model.ChannelId;
|
||||
@@ -241,15 +227,6 @@ namespace Discord.Rest
|
||||
Update(model);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <exception cref="ArgumentNullException"><paramref name="func"/> is <see langword="null"/>.</exception>
|
||||
[Obsolete("This endpoint is deprecated, use ModifyWidgetAsync instead.")]
|
||||
public async Task ModifyEmbedAsync(Action<GuildEmbedProperties> func, RequestOptions options = null)
|
||||
{
|
||||
var model = await GuildHelper.ModifyEmbedAsync(this, Discord, func, options).ConfigureAwait(false);
|
||||
Update(model);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <exception cref="ArgumentNullException"><paramref name="func"/> is <see langword="null"/>.</exception>
|
||||
public async Task ModifyWidgetAsync(Action<GuildWidgetProperties> func, RequestOptions options = null)
|
||||
@@ -463,23 +440,6 @@ namespace Discord.Rest
|
||||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the embed channel (i.e. the channel set in the guild's widget settings) in this guild.
|
||||
/// </summary>
|
||||
/// <param name="options">The options to be used when sending the request.</param>
|
||||
/// <returns>
|
||||
/// A task that represents the asynchronous get operation. The task result contains the embed channel set
|
||||
/// within the server's widget settings; <see langword="null"/> if none is set.
|
||||
/// </returns>
|
||||
[Obsolete("This endpoint is deprecated, use GetWidgetChannelAsync instead.")]
|
||||
public async Task<RestGuildChannel> GetEmbedChannelAsync(RequestOptions options = null)
|
||||
{
|
||||
var embedId = EmbedChannelId;
|
||||
if (embedId.HasValue)
|
||||
return await GuildHelper.GetChannelAsync(this, Discord, embedId.Value, options).ConfigureAwait(false);
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the widget channel (i.e. the channel set in the guild's widget settings) in this guild.
|
||||
/// </summary>
|
||||
@@ -937,15 +897,6 @@ namespace Discord.Rest
|
||||
return null;
|
||||
}
|
||||
/// <inheritdoc />
|
||||
[Obsolete("This endpoint is deprecated, use GetWidgetChannelAsync instead.")]
|
||||
async Task<IGuildChannel> IGuild.GetEmbedChannelAsync(CacheMode mode, RequestOptions options)
|
||||
{
|
||||
if (mode == CacheMode.AllowDownload)
|
||||
return await GetEmbedChannelAsync(options).ConfigureAwait(false);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
/// <inheritdoc />
|
||||
async Task<IGuildChannel> IGuild.GetWidgetChannelAsync(CacheMode mode, RequestOptions options)
|
||||
{
|
||||
if (mode == CacheMode.AllowDownload)
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
using System.Diagnostics;
|
||||
using Model = Discord.API.GuildEmbed;
|
||||
|
||||
namespace Discord.Rest
|
||||
{
|
||||
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
|
||||
public struct RestGuildEmbed
|
||||
{
|
||||
public bool IsEnabled { get; private set; }
|
||||
public ulong? ChannelId { get; private set; }
|
||||
|
||||
internal RestGuildEmbed(bool isEnabled, ulong? channelId)
|
||||
{
|
||||
ChannelId = channelId;
|
||||
IsEnabled = isEnabled;
|
||||
}
|
||||
internal static RestGuildEmbed Create(Model model)
|
||||
{
|
||||
return new RestGuildEmbed(model.Enabled, model.ChannelId);
|
||||
}
|
||||
|
||||
public override string ToString() => ChannelId?.ToString() ?? "Unknown";
|
||||
private string DebuggerDisplay => $"{ChannelId} ({(IsEnabled ? "Enabled" : "Disabled")})";
|
||||
}
|
||||
}
|
||||
@@ -122,15 +122,6 @@ namespace Discord.Rest
|
||||
await client.ApiClient.DeleteMessageAsync(channelId, msgId, options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public static async Task SuppressEmbedsAsync(IMessage msg, BaseDiscordClient client, bool suppress, RequestOptions options)
|
||||
{
|
||||
var apiArgs = new API.Rest.SuppressEmbedParams
|
||||
{
|
||||
Suppressed = suppress
|
||||
};
|
||||
await client.ApiClient.SuppressEmbedAsync(msg.Channel.Id, msg.Id, apiArgs, options).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public static async Task AddReactionAsync(ulong channelId, ulong messageId, IEmote emote, BaseDiscordClient client, RequestOptions options)
|
||||
{
|
||||
await client.ApiClient.AddReactionAsync(channelId, messageId, emote is Emote e ? $"{e.Name}:{e.Id}" : UrlEncode(emote.Name), options).ConfigureAwait(false);
|
||||
|
||||
@@ -164,9 +164,6 @@ namespace Discord.Rest
|
||||
/// <inheritdoc />
|
||||
public Task UnpinAsync(RequestOptions options = null)
|
||||
=> MessageHelper.UnpinAsync(this, Discord, options);
|
||||
/// <inheritdoc />
|
||||
public Task ModifySuppressionAsync(bool suppressEmbeds, RequestOptions options = null)
|
||||
=> MessageHelper.SuppressEmbedsAsync(this, Discord, suppressEmbeds, options);
|
||||
|
||||
public string Resolve(int startIndex, TagHandling userHandling = TagHandling.Name, TagHandling channelHandling = TagHandling.Name,
|
||||
TagHandling roleHandling = TagHandling.Name, TagHandling everyoneHandling = TagHandling.Ignore, TagHandling emojiHandling = TagHandling.Name)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Model = Discord.API.Role;
|
||||
using BulkParams = Discord.API.Rest.ModifyGuildRolesParams;
|
||||
@@ -24,7 +24,7 @@ namespace Discord.Rest
|
||||
Hoist = args.Hoist,
|
||||
Mentionable = args.Mentionable,
|
||||
Name = args.Name,
|
||||
Permissions = args.Permissions.IsSpecified ? args.Permissions.Value.RawValue : Optional.Create<ulong>()
|
||||
Permissions = args.Permissions.IsSpecified ? args.Permissions.Value.RawValue.ToString() : Optional.Create<string>()
|
||||
};
|
||||
var model = await client.ApiClient.ModifyGuildRoleAsync(role.Guild.Id, role.Id, apiArgs, options).ConfigureAwait(false);
|
||||
|
||||
|
||||
@@ -73,8 +73,6 @@ namespace Discord.Net.Converters
|
||||
}
|
||||
|
||||
//Enums
|
||||
if (type == typeof(PermissionTarget))
|
||||
return PermissionTargetConverter.Instance;
|
||||
if (type == typeof(UserStatus))
|
||||
return UserStatusConverter.Instance;
|
||||
if (type == typeof(EmbedType))
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
namespace Discord.Net.Converters
|
||||
{
|
||||
internal class PermissionTargetConverter : JsonConverter
|
||||
{
|
||||
public static readonly PermissionTargetConverter Instance = new PermissionTargetConverter();
|
||||
|
||||
public override bool CanConvert(Type objectType) => true;
|
||||
public override bool CanRead => true;
|
||||
public override bool CanWrite => true;
|
||||
|
||||
/// <exception cref="JsonSerializationException">Unknown permission target.</exception>
|
||||
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
||||
{
|
||||
switch ((string)reader.Value)
|
||||
{
|
||||
case "member":
|
||||
return PermissionTarget.User;
|
||||
case "role":
|
||||
return PermissionTarget.Role;
|
||||
default:
|
||||
throw new JsonSerializationException("Unknown permission target.");
|
||||
}
|
||||
}
|
||||
|
||||
/// <exception cref="JsonSerializationException">Invalid permission target.</exception>
|
||||
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
||||
{
|
||||
switch ((PermissionTarget)value)
|
||||
{
|
||||
case PermissionTarget.User:
|
||||
writer.WriteValue("member");
|
||||
break;
|
||||
case PermissionTarget.Role:
|
||||
writer.WriteValue("role");
|
||||
break;
|
||||
default:
|
||||
throw new JsonSerializationException("Invalid permission target.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user