feature: Treat warnings as errors and set warning level to 5 (#2270)
This commit is contained in:
@@ -3,7 +3,7 @@ using System;
|
||||
namespace Discord.Interactions
|
||||
{
|
||||
/// <summary>
|
||||
/// Set the <see cref="ApplicationCommandOptionProperties.Autocomplete"/> to <see langword="true"/>.
|
||||
/// Set the <see cref="ApplicationCommandOptionProperties.IsAutocomplete"/> to <see langword="true"/>.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = true)]
|
||||
public class AutocompleteAttribute : Attribute
|
||||
@@ -14,7 +14,7 @@ namespace Discord.Interactions
|
||||
public Type AutocompleteHandlerType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Set the <see cref="ApplicationCommandOptionProperties.Autocomplete"/> to <see langword="true"/> and define a <see cref="AutocompleteHandler"/> to handle
|
||||
/// Set the <see cref="ApplicationCommandOptionProperties.IsAutocomplete"/> to <see langword="true"/> and define a <see cref="AutocompleteHandler"/> to handle
|
||||
/// Autocomplete interactions targeting the parameter this <see cref="Attribute"/> is applied to.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
@@ -29,7 +29,7 @@ namespace Discord.Interactions
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set the <see cref="ApplicationCommandOptionProperties.Autocomplete"/> to <see langword="true"/> without specifying a <see cref="AutocompleteHandler"/>.
|
||||
/// Set the <see cref="ApplicationCommandOptionProperties.IsAutocomplete"/> to <see langword="true"/> without specifying a <see cref="AutocompleteHandler"/>.
|
||||
/// </summary>
|
||||
public AutocompleteAttribute() { }
|
||||
}
|
||||
|
||||
@@ -21,9 +21,7 @@ namespace Discord.Interactions
|
||||
/// <summary>
|
||||
/// Create a new <see cref="ModalInputAttribute"/>.
|
||||
/// </summary>
|
||||
/// <param name="label">The label of the input.</param>
|
||||
/// <param name="customId">The custom id of the input.</param>
|
||||
/// <param name="required">Whether the user is required to input a value.></param>
|
||||
protected ModalInputAttribute(string customId)
|
||||
{
|
||||
CustomId = customId;
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace Discord.Interactions
|
||||
/// <summary>
|
||||
/// Create a new <see cref="ModalTextInputAttribute"/>.
|
||||
/// </summary>
|
||||
/// <param name="customId"The custom id of the text input.></param>
|
||||
/// <param name="customId">The custom id of the text input.></param>
|
||||
/// <param name="style">The style of the text input.</param>
|
||||
/// <param name="placeholder">The placeholder of the text input.</param>
|
||||
/// <param name="minLength">The minimum length of the text input's content.</param>
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace Discord.Interactions
|
||||
/// <remarks>
|
||||
/// This precondition will always fail if the command is being invoked in a <see cref="IPrivateChannel"/>.
|
||||
/// </remarks>
|
||||
/// <param name="permission">
|
||||
/// <param name="guildPermission">
|
||||
/// The <see cref="Discord.GuildPermission" /> that the user must have. Multiple permissions can be
|
||||
/// specified by ORing the permissions together.
|
||||
/// </param>
|
||||
@@ -41,7 +41,7 @@ namespace Discord.Interactions
|
||||
/// <summary>
|
||||
/// Requires that the user invoking the command to have a specific <see cref="Discord.ChannelPermission"/>.
|
||||
/// </summary>
|
||||
/// <param name="permission">
|
||||
/// <param name="channelPermission">
|
||||
/// The <see cref="Discord.ChannelPermission"/> that the user must have. Multiple permissions can be
|
||||
/// specified by ORing the permissions together.
|
||||
/// </param>
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace Discord.Interactions.Builders
|
||||
/// <summary>
|
||||
/// Sets <see cref="DefaultPermission"/>.
|
||||
/// </summary>
|
||||
/// <param name="defaultPermision">New value of the <see cref="DefaultPermission"/>.</param>
|
||||
/// <param name="permission">New value of the <see cref="DefaultPermission"/>.</param>
|
||||
/// <returns>
|
||||
/// The builder instance.
|
||||
/// </returns>
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace Discord.Interactions.Builders
|
||||
/// <summary>
|
||||
/// Sets <see cref="Style"/>.
|
||||
/// </summary>
|
||||
/// <param name="style">New value of the <see cref="SetValue(string)"/>.</param>
|
||||
/// <param name="style">New value of the <see cref="Style"/>.</param>
|
||||
/// <returns>
|
||||
/// The builder instance.
|
||||
/// </returns>
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Discord.Interactions.Builders
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds text components to <see cref="TextComponents"/>.
|
||||
/// Adds text components to <see cref="Components"/>.
|
||||
/// </summary>
|
||||
/// <param name="configure">Text Component builder factory.</param>
|
||||
/// <returns>
|
||||
|
||||
@@ -357,7 +357,8 @@ namespace Discord.Interactions.Builders
|
||||
return this;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Adds a modal command builder to <see cref="ModalCommands"/>.
|
||||
/// </summary>
|
||||
/// <param name="configure"><see cref="ModalCommands"/> factory.</param>
|
||||
|
||||
@@ -122,7 +122,7 @@ namespace Discord.Interactions.Builders
|
||||
/// <summary>
|
||||
/// Adds preconditions to <see cref="Preconditions"/>
|
||||
/// </summary>
|
||||
/// <param name="preconditions">New attributes to be added to <see cref="Preconditions"/>.</param>
|
||||
/// <param name="attributes">New attributes to be added to <see cref="Preconditions"/>.</param>
|
||||
/// <returns>
|
||||
/// The builder instance.
|
||||
/// </returns>
|
||||
|
||||
@@ -7,8 +7,10 @@
|
||||
<RootNamespace>Discord.Interactions</RootNamespace>
|
||||
<AssemblyName>Discord.Net.Interactions</AssemblyName>
|
||||
<Description>A Discord.Net extension adding support for Application Commands.</Description>
|
||||
<WarningLevel>5</WarningLevel>
|
||||
<TreatWarningsAsErrors>True</TreatWarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Discord.Net.Core\Discord.Net.Core.csproj" />
|
||||
<ProjectReference Include="..\Discord.Net.Rest\Discord.Net.Rest.csproj" />
|
||||
|
||||
@@ -24,8 +24,7 @@ namespace Discord.Interactions
|
||||
/// </summary>
|
||||
/// <param name="client">The underlying client.</param>
|
||||
/// <param name="interaction">The underlying interaction.</param>
|
||||
/// <param name="user"><see cref="IUser"/> who executed the command.</param>
|
||||
/// <param name="channel"><see cref="ISocketMessageChannel"/> the command originated from.</param>
|
||||
/// <param name="channel"><see cref="IMessageChannel"/> the command originated from.</param>
|
||||
public InteractionContext(IDiscordClient client, IDiscordInteraction interaction, IMessageChannel channel = null)
|
||||
{
|
||||
Client = client;
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Discord.Interactions
|
||||
protected virtual async Task DeferAsync(bool ephemeral = false, RequestOptions options = null) =>
|
||||
await Context.Interaction.DeferAsync(ephemeral, options).ConfigureAwait(false);
|
||||
|
||||
/// <inheritdoc cref="IDiscordInteraction.RespondAsync(string, Embed[], bool, bool, AllowedMentions, RequestOptions, MessageComponent, Embed)"/>
|
||||
/// <inheritdoc cref="IDiscordInteraction.RespondAsync(string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions)"/>
|
||||
protected virtual async Task RespondAsync (string text = null, Embed[] embeds = null, bool isTTS = false, bool ephemeral = false,
|
||||
AllowedMentions allowedMentions = null, RequestOptions options = null, MessageComponent components = null, Embed embed = null) =>
|
||||
await Context.Interaction.RespondAsync(text, embeds, isTTS, ephemeral, allowedMentions, components, embed, options).ConfigureAwait(false);
|
||||
@@ -70,7 +70,7 @@ namespace Discord.Interactions
|
||||
AllowedMentions allowedMentions = null, MessageComponent components = null, Embed embed = null, RequestOptions options = null)
|
||||
=> Context.Interaction.RespondWithFilesAsync(attachments, text, embeds, isTTS, ephemeral, allowedMentions, components, embed, options);
|
||||
|
||||
/// <inheritdoc cref="IDiscordInteraction.FollowupAsync(string, Embed[], bool, bool, AllowedMentions, RequestOptions, MessageComponent, Embed)"/>
|
||||
/// <inheritdoc cref="IDiscordInteraction.FollowupAsync(string, Embed[], bool, bool, AllowedMentions, MessageComponent, Embed, RequestOptions)"/>
|
||||
protected virtual async Task<IUserMessage> FollowupAsync (string text = null, Embed[] embeds = null, bool isTTS = false, bool ephemeral = false,
|
||||
AllowedMentions allowedMentions = null, RequestOptions options = null, MessageComponent components = null, Embed embed = null) =>
|
||||
await Context.Interaction.FollowupAsync(text, embeds, isTTS, ephemeral, allowedMentions, components, embed, options).ConfigureAwait(false);
|
||||
@@ -95,7 +95,7 @@ namespace Discord.Interactions
|
||||
AllowedMentions allowedMentions = null, MessageComponent components = null, Embed embed = null, RequestOptions options = null)
|
||||
=> Context.Interaction.FollowupWithFilesAsync(attachments, text, embeds, isTTS, ephemeral, allowedMentions, components, embed, options);
|
||||
|
||||
/// <inheritdoc cref="IMessageChannel.SendMessageAsync(string, bool, Embed, RequestOptions, AllowedMentions, MessageReference, MessageComponent, ISticker[], Embed[])"/>
|
||||
/// <inheritdoc cref="IMessageChannel.SendMessageAsync(string, bool, Embed, RequestOptions, AllowedMentions, MessageReference, MessageComponent, ISticker[], Embed[], MessageFlags)"/>
|
||||
protected virtual async Task<IUserMessage> ReplyAsync (string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null,
|
||||
AllowedMentions allowedMentions = null, MessageReference messageReference = null, MessageComponent components = null) =>
|
||||
await Context.Channel.SendMessageAsync(text, false, embed, options, allowedMentions, messageReference, components).ConfigureAwait(false);
|
||||
@@ -118,9 +118,9 @@ namespace Discord.Interactions
|
||||
/// <inheritdoc cref="IDiscordInteraction.RespondWithModalAsync(Modal, RequestOptions)"/>
|
||||
protected virtual async Task RespondWithModalAsync(Modal modal, RequestOptions options = null) => await Context.Interaction.RespondWithModalAsync(modal);
|
||||
|
||||
/// <inheritdoc cref="IDiscordInteractionExtentions.RespondWithModalAsync(IDiscordInteraction, IModal, RequestOptions)"/>
|
||||
protected virtual async Task RespondWithModalAsync<T>(string customId, RequestOptions options = null) where T : class, IModal
|
||||
=> await Context.Interaction.RespondWithModalAsync<T>(customId, options);
|
||||
/// <inheritdoc cref="IDiscordInteractionExtentions.RespondWithModalAsync{T}(IDiscordInteraction, string, RequestOptions, Action{ModalBuilder})"/>
|
||||
protected virtual async Task RespondWithModalAsync<TModal>(string customId, RequestOptions options = null) where TModal : class, IModal
|
||||
=> await Context.Interaction.RespondWithModalAsync<TModal>(customId, options);
|
||||
|
||||
//IInteractionModuleBase
|
||||
|
||||
|
||||
@@ -421,7 +421,7 @@ namespace Discord.Interactions
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Commands will be registered as standalone commands, if you want the <see cref="GroupAttribute"/> to take effect,
|
||||
/// use <see cref="AddModulesToGuildAsync(IGuild, ModuleInfo[])"/>. Registering a commands without group names might cause the command traversal to fail.
|
||||
/// use <see cref="AddModulesToGuildAsync(IGuild, bool, ModuleInfo[])"/>. Registering a commands without group names might cause the command traversal to fail.
|
||||
/// </remarks>
|
||||
/// <param name="guild">The target guild.</param>
|
||||
/// <param name="commands">Commands to be registered to Discord.</param>
|
||||
@@ -517,7 +517,7 @@ namespace Discord.Interactions
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Commands will be registered as standalone commands, if you want the <see cref="GroupAttribute"/> to take effect,
|
||||
/// use <see cref="AddModulesToGuildAsync(IGuild, ModuleInfo[])"/>. Registering a commands without group names might cause the command traversal to fail.
|
||||
/// use <see cref="AddModulesToGuildAsync(IGuild, bool, ModuleInfo[])"/>. Registering a commands without group names might cause the command traversal to fail.
|
||||
/// </remarks>
|
||||
/// <param name="commands">Commands to be registered to Discord.</param>
|
||||
/// <returns>
|
||||
@@ -965,7 +965,7 @@ namespace Discord.Interactions
|
||||
/// Removes a type reader for the given type.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="CommandService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="InteractionService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// You need to reload the modules for the changes to take effect.
|
||||
/// </remarks>
|
||||
/// <param name="type">The type to remove the reader from.</param>
|
||||
@@ -978,7 +978,7 @@ namespace Discord.Interactions
|
||||
/// Removes a generic type reader from the type <typeparamref name="T"/>.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="CommandService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="InteractionService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// You need to reload the modules for the changes to take effect.
|
||||
/// </remarks>
|
||||
/// <typeparam name="T">The type to remove the readers from.</typeparam>
|
||||
@@ -991,7 +991,7 @@ namespace Discord.Interactions
|
||||
/// Removes a generic type reader from the given type.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="CommandService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="InteractionService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// You need to reload the modules for the changes to take effect.
|
||||
/// </remarks>
|
||||
/// <param name="type">The type to remove the reader from.</param>
|
||||
@@ -1004,7 +1004,7 @@ namespace Discord.Interactions
|
||||
/// Serialize an object using a <see cref="TypeReader"/> into a <see cref="string"/> to be placed in a Component CustomId.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="CommandService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// Removing a <see cref="TypeReader"/> from the <see cref="InteractionService"/> will not dereference the <see cref="TypeReader"/> from the loaded module/command instances.
|
||||
/// You need to reload the modules for the changes to take effect.
|
||||
/// </remarks>
|
||||
/// <typeparam name="T">Type of the object to be serialized.</typeparam>
|
||||
|
||||
@@ -87,12 +87,12 @@ namespace Discord.Interactions
|
||||
await InteractionService._restResponseCallback(Context, payload).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
protected override async Task RespondWithModalAsync<T>(string customId, RequestOptions options = null)
|
||||
protected override async Task RespondWithModalAsync<TModal>(string customId, RequestOptions options = null)
|
||||
{
|
||||
if (Context.Interaction is not RestInteraction restInteraction)
|
||||
throw new InvalidOperationException($"Invalid interaction type. Interaction must be a type of {nameof(RestInteraction)} in order to execute this method");
|
||||
|
||||
var payload = restInteraction.RespondWithModal<T>(customId, options);
|
||||
var payload = restInteraction.RespondWithModal<TModal>(customId, options);
|
||||
|
||||
if (Context is IRestInteractionContext restContext && restContext.InteractionResponseCallback != null)
|
||||
await restContext.InteractionResponseCallback.Invoke(payload).ConfigureAwait(false);
|
||||
|
||||
@@ -3,7 +3,7 @@ using System;
|
||||
namespace Discord.Interactions
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a result type for <see cref="TypeConverter.ReadAsync(IInteractionContext, WebSocket.SocketSlashCommandDataOption, IServiceProvider)"/>.
|
||||
/// Represents a result type for <see cref="TypeConverter.ReadAsync(IInteractionContext, IApplicationCommandInteractionDataOption, IServiceProvider)"/>.
|
||||
/// </summary>
|
||||
public struct TypeConverterResult : IResult
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user