Format the project with 'dotnet format' (#2551)

* Sync and Re-Format

* Fix Title string.

* Fix indentation.
This commit is contained in:
NaN
2023-02-13 14:45:59 -03:00
committed by GitHub
parent 71e9ecb21e
commit 257f246d1d
401 changed files with 3178 additions and 2671 deletions

View File

@@ -19,7 +19,7 @@ namespace Discord.Interactions
/// Specify the target channel types for a <see cref="ApplicationCommandOptionType.Channel"/> option.
/// </summary>
/// <param name="channelTypes">The allowed channel types for this option.</param>
public ChannelTypesAttribute (params ChannelType[] channelTypes)
public ChannelTypesAttribute(params ChannelType[] channelTypes)
{
if (channelTypes is null)
throw new ArgumentNullException(nameof(channelTypes));

View File

@@ -23,7 +23,7 @@ namespace Discord.Interactions
/// </summary>
public object Value { get; }
private ChoiceAttribute (string name)
private ChoiceAttribute(string name)
{
Name = name;
}
@@ -33,7 +33,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="name">Name of the choice.</param>
/// <param name="value">Predefined value of the choice.</param>
public ChoiceAttribute (string name, string value) : this(name)
public ChoiceAttribute(string name, string value) : this(name)
{
Type = SlashCommandChoiceType.String;
Value = value;
@@ -44,7 +44,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="name">Name of the choice.</param>
/// <param name="value">Predefined value of the choice.</param>
public ChoiceAttribute (string name, int value) : this(name)
public ChoiceAttribute(string name, int value) : this(name)
{
Type = SlashCommandChoiceType.Integer;
Value = value;
@@ -55,7 +55,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="name">Name of the choice.</param>
/// <param name="value">Predefined value of the choice.</param>
public ChoiceAttribute (string name, double value) : this(name)
public ChoiceAttribute(string name, double value) : this(name)
{
Type = SlashCommandChoiceType.Number;
Value = value;

View File

@@ -43,7 +43,7 @@ namespace Discord.Interactions
/// <param name="customId">String to compare the Message Component CustomIDs with.</param>
/// <param name="ignoreGroupNames">If <see langword="true"/> <see cref="GroupAttribute"/>s will be ignored while creating this command and this method will be treated as a top level command.</param>
/// <param name="runMode">Set the run mode of the command.</param>
public ComponentInteractionAttribute (string customId, bool ignoreGroupNames = false, RunMode runMode = RunMode.Default)
public ComponentInteractionAttribute(string customId, bool ignoreGroupNames = false, RunMode runMode = RunMode.Default)
{
CustomId = customId;
IgnoreGroupNames = ignoreGroupNames;

View File

@@ -24,13 +24,13 @@ namespace Discord.Interactions
/// </summary>
public RunMode RunMode { get; }
internal ContextCommandAttribute (string name, ApplicationCommandType commandType, RunMode runMode = RunMode.Default)
internal ContextCommandAttribute(string name, ApplicationCommandType commandType, RunMode runMode = RunMode.Default)
{
Name = name;
CommandType = commandType;
RunMode = runMode;
}
internal virtual void CheckMethodDefinition (MethodInfo methodInfo) { }
internal virtual void CheckMethodDefinition(MethodInfo methodInfo) { }
}
}

View File

@@ -16,9 +16,9 @@ namespace Discord.Interactions
/// Register a method as a Message Context Command.
/// </summary>
/// <param name="name">Name of the context command.</param>
public MessageCommandAttribute (string name) : base(name, ApplicationCommandType.Message) { }
public MessageCommandAttribute(string name) : base(name, ApplicationCommandType.Message) { }
internal override void CheckMethodDefinition (MethodInfo methodInfo)
internal override void CheckMethodDefinition(MethodInfo methodInfo)
{
var parameters = methodInfo.GetParameters();

View File

@@ -17,7 +17,7 @@ namespace Discord.Interactions
/// Gets the string to compare the Modal CustomIDs with.
/// </summary>
public string CustomId { get; }
/// <summary>
/// Gets <see langword="true"/> if <see cref="GroupAttribute"/>s will be ignored while creating this command and this method will be treated as a top level command.
/// </summary>

View File

@@ -38,7 +38,7 @@ namespace Discord.Interactions
/// <param name="description">Description of the command.</param>
/// <param name="ignoreGroupNames"> If <see langword="true"/>, <see cref="GroupAttribute"/>s will be ignored while creating this command and this method will be treated as a top level command.</param>
/// <param name="runMode">Set the run mode of the command.</param>
public SlashCommandAttribute (string name, string description, bool ignoreGroupNames = false, RunMode runMode = RunMode.Default)
public SlashCommandAttribute(string name, string description, bool ignoreGroupNames = false, RunMode runMode = RunMode.Default)
{
Name = name;
Description = description;

View File

@@ -16,9 +16,9 @@ namespace Discord.Interactions
/// Register a command as a User Context Command.
/// </summary>
/// <param name="name">Name of this User Context Command.</param>
public UserCommandAttribute (string name) : base(name, ApplicationCommandType.User) { }
public UserCommandAttribute(string name) : base(name, ApplicationCommandType.User) { }
internal override void CheckMethodDefinition (MethodInfo methodInfo)
internal override void CheckMethodDefinition(MethodInfo methodInfo)
{
var parameters = methodInfo.GetParameters();

View File

@@ -18,7 +18,7 @@ namespace Discord.Interactions
/// Set the default permission of a Slash Command.
/// </summary>
/// <param name="isDefaultPermission"><see langword="true"/> if the users are allowed to use this command.</param>
public DefaultPermissionAttribute (bool isDefaultPermission)
public DefaultPermissionAttribute(bool isDefaultPermission)
{
IsDefaultPermission = isDefaultPermission;
}

View File

@@ -26,7 +26,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="name">Name of the group.</param>
/// <param name="description">Description of the group.</param>
public GroupAttribute (string name, string description)
public GroupAttribute(string name, string description)
{
Name = name;
Description = description;

View File

@@ -28,7 +28,7 @@ namespace Discord.Interactions
/// <param name="parameterInfo">The parameter of the command being checked against.</param>
/// <param name="value">The raw value of the parameter.</param>
/// <param name="services">The service collection used for dependency injection.</param>
public abstract Task<PreconditionResult> CheckRequirementsAsync (IInteractionContext context, IParameterInfo parameterInfo, object value,
public abstract Task<PreconditionResult> CheckRequirementsAsync(IInteractionContext context, IParameterInfo parameterInfo, object value,
IServiceProvider services);
}
}

View File

@@ -37,6 +37,6 @@ namespace Discord.Interactions
/// <param name="context">The context of the command.</param>
/// <param name="commandInfo">The command being executed.</param>
/// <param name="services">The service collection used for dependency injection.</param>
public abstract Task<PreconditionResult> CheckRequirementsAsync (IInteractionContext context, ICommandInfo commandInfo, IServiceProvider services);
public abstract Task<PreconditionResult> CheckRequirementsAsync(IInteractionContext context, ICommandInfo commandInfo, IServiceProvider services);
}
}

View File

@@ -23,7 +23,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="name">Name of the parameter.</param>
/// <param name="description">Description of the parameter.</param>
public SummaryAttribute (string name = null, string description = null)
public SummaryAttribute(string name = null, string description = null)
{
Name = name;
Description = description;

View File

@@ -53,7 +53,7 @@ namespace Discord.Interactions.Builders
/// <inheritdoc/>
IReadOnlyList<IParameterBuilder> ICommandBuilder.Parameters => Parameters;
internal CommandBuilder (ModuleBuilder module)
internal CommandBuilder(ModuleBuilder module)
{
_attributes = new List<Attribute>();
_preconditions = new List<PreconditionAttribute>();
@@ -62,7 +62,7 @@ namespace Discord.Interactions.Builders
Module = module;
}
protected CommandBuilder (ModuleBuilder module, string name, ExecuteCallback callback) : this(module)
protected CommandBuilder(ModuleBuilder module, string name, ExecuteCallback callback) : this(module)
{
Name = name;
Callback = callback;
@@ -75,7 +75,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder WithName (string name)
public TBuilder WithName(string name)
{
Name = name;
return Instance;
@@ -88,7 +88,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder WithMethodName (string name)
public TBuilder WithMethodName(string name)
{
MethodName = name;
return Instance;
@@ -101,7 +101,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder WithAttributes (params Attribute[] attributes)
public TBuilder WithAttributes(params Attribute[] attributes)
{
_attributes.AddRange(attributes);
return Instance;
@@ -114,7 +114,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder SetRunMode (RunMode runMode)
public TBuilder SetRunMode(RunMode runMode)
{
RunMode = runMode;
return Instance;
@@ -127,7 +127,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder WithNameAsRegex (bool value)
public TBuilder WithNameAsRegex(bool value)
{
TreatNameAsRegex = value;
return Instance;
@@ -140,7 +140,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder AddParameters (params TParamBuilder[] parameters)
public TBuilder AddParameters(params TParamBuilder[] parameters)
{
_parameters.AddRange(parameters);
return Instance;
@@ -153,30 +153,30 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public TBuilder WithPreconditions (params PreconditionAttribute[] preconditions)
public TBuilder WithPreconditions(params PreconditionAttribute[] preconditions)
{
_preconditions.AddRange(preconditions);
return Instance;
}
/// <inheritdoc/>
public abstract TBuilder AddParameter (Action<TParamBuilder> configure);
public abstract TBuilder AddParameter(Action<TParamBuilder> configure);
internal abstract TInfo Build (ModuleInfo module, InteractionService commandService);
internal abstract TInfo Build(ModuleInfo module, InteractionService commandService);
//ICommandBuilder
/// <inheritdoc/>
ICommandBuilder ICommandBuilder.WithName (string name) =>
ICommandBuilder ICommandBuilder.WithName(string name) =>
WithName(name);
/// <inheritdoc/>
ICommandBuilder ICommandBuilder.WithMethodName (string name) =>
ICommandBuilder ICommandBuilder.WithMethodName(string name) =>
WithMethodName(name);
ICommandBuilder ICommandBuilder.WithAttributes (params Attribute[] attributes) =>
ICommandBuilder ICommandBuilder.WithAttributes(params Attribute[] attributes) =>
WithAttributes(attributes);
/// <inheritdoc/>
ICommandBuilder ICommandBuilder.SetRunMode (RunMode runMode) =>
ICommandBuilder ICommandBuilder.SetRunMode(RunMode runMode) =>
SetRunMode(runMode);
/// <inheritdoc/>
@@ -184,11 +184,11 @@ namespace Discord.Interactions.Builders
WithNameAsRegex(value);
/// <inheritdoc/>
ICommandBuilder ICommandBuilder.AddParameters (params IParameterBuilder[] parameters) =>
ICommandBuilder ICommandBuilder.AddParameters(params IParameterBuilder[] parameters) =>
AddParameters(parameters as TParamBuilder);
/// <inheritdoc/>
ICommandBuilder ICommandBuilder.WithPreconditions (params PreconditionAttribute[] preconditions) =>
ICommandBuilder ICommandBuilder.WithPreconditions(params PreconditionAttribute[] preconditions) =>
WithPreconditions(preconditions);
}
}

View File

@@ -9,7 +9,7 @@ namespace Discord.Interactions.Builders
{
protected override ComponentCommandBuilder Instance => this;
internal ComponentCommandBuilder (ModuleBuilder module) : base(module) { }
internal ComponentCommandBuilder(ModuleBuilder module) : base(module) { }
/// <summary>
/// Initializes a new <see cref="ComponentBuilder"/>.
@@ -17,7 +17,7 @@ namespace Discord.Interactions.Builders
/// <param name="module">Parent module of this command.</param>
/// <param name="name">Name of this command.</param>
/// <param name="callback">Execution callback of this command.</param>
public ComponentCommandBuilder (ModuleBuilder module, string name, ExecuteCallback callback) : base(module, name, callback) { }
public ComponentCommandBuilder(ModuleBuilder module, string name, ExecuteCallback callback) : base(module, name, callback) { }
/// <summary>
/// Adds a command parameter to the parameters collection.
@@ -26,7 +26,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public override ComponentCommandBuilder AddParameter (Action<ComponentCommandParameterBuilder> configure)
public override ComponentCommandBuilder AddParameter(Action<ComponentCommandParameterBuilder> configure)
{
var parameter = new ComponentCommandParameterBuilder(this);
configure(parameter);
@@ -34,7 +34,7 @@ namespace Discord.Interactions.Builders
return this;
}
internal override ComponentCommandInfo Build (ModuleInfo module, InteractionService commandService) =>
internal override ComponentCommandInfo Build(ModuleInfo module, InteractionService commandService) =>
new ComponentCommandInfo(this, module, commandService);
}
}

View File

@@ -35,7 +35,7 @@ namespace Discord.Interactions.Builders
/// </summary>
public GuildPermission? DefaultMemberPermissions { get; set; } = null;
internal ContextCommandBuilder (ModuleBuilder module) : base(module) { }
internal ContextCommandBuilder(ModuleBuilder module) : base(module) { }
/// <summary>
/// Initializes a new <see cref="ContextCommandBuilder"/>.
@@ -43,7 +43,7 @@ namespace Discord.Interactions.Builders
/// <param name="module">Parent module of this command.</param>
/// <param name="name">Name of this command.</param>
/// <param name="callback">Execution callback of this command.</param>
public ContextCommandBuilder (ModuleBuilder module, string name, ExecuteCallback callback) : base(module, name, callback) { }
public ContextCommandBuilder(ModuleBuilder module, string name, ExecuteCallback callback) : base(module, name, callback) { }
/// <summary>
/// Sets <see cref="CommandType"/>.
@@ -52,7 +52,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ContextCommandBuilder SetType (ApplicationCommandType commandType)
public ContextCommandBuilder SetType(ApplicationCommandType commandType)
{
CommandType = commandType;
return this;
@@ -66,7 +66,7 @@ namespace Discord.Interactions.Builders
/// The builder instance.
/// </returns>
[Obsolete($"To be deprecated soon, use {nameof(SetEnabledInDm)} and {nameof(WithDefaultMemberPermissions)} instead.")]
public ContextCommandBuilder SetDefaultPermission (bool defaultPermision)
public ContextCommandBuilder SetDefaultPermission(bool defaultPermision)
{
DefaultPermission = defaultPermision;
return this;
@@ -79,7 +79,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public override ContextCommandBuilder AddParameter (Action<CommandParameterBuilder> configure)
public override ContextCommandBuilder AddParameter(Action<CommandParameterBuilder> configure)
{
var parameter = new CommandParameterBuilder(this);
configure(parameter);
@@ -126,7 +126,7 @@ namespace Discord.Interactions.Builders
return this;
}
internal override ContextCommandInfo Build (ModuleInfo module, InteractionService commandService) =>
internal override ContextCommandInfo Build(ModuleInfo module, InteractionService commandService) =>
ContextCommandInfo.Create(this, module, commandService);
}
}

View File

@@ -66,7 +66,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
ICommandBuilder WithName (string name);
ICommandBuilder WithName(string name);
/// <summary>
/// Sets <see cref="MethodName"/>.
@@ -75,7 +75,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
ICommandBuilder WithMethodName (string name);
ICommandBuilder WithMethodName(string name);
/// <summary>
/// Adds attributes to <see cref="Attributes"/>.
@@ -84,7 +84,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
ICommandBuilder WithAttributes (params Attribute[] attributes);
ICommandBuilder WithAttributes(params Attribute[] attributes);
/// <summary>
/// Sets <see cref="RunMode"/>.
@@ -93,7 +93,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
ICommandBuilder SetRunMode (RunMode runMode);
ICommandBuilder SetRunMode(RunMode runMode);
/// <summary>
/// Sets <see cref="TreatNameAsRegex"/>.
@@ -111,7 +111,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
ICommandBuilder AddParameters (params IParameterBuilder[] parameters);
ICommandBuilder AddParameters(params IParameterBuilder[] parameters);
/// <summary>
/// Adds preconditions to <see cref="Preconditions"/>.
@@ -120,6 +120,6 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
ICommandBuilder WithPreconditions (params PreconditionAttribute[] preconditions);
ICommandBuilder WithPreconditions(params PreconditionAttribute[] preconditions);
}
}

View File

@@ -35,7 +35,7 @@ namespace Discord.Interactions.Builders
/// </summary>
public GuildPermission? DefaultMemberPermissions { get; set; } = null;
internal SlashCommandBuilder (ModuleBuilder module) : base(module) { }
internal SlashCommandBuilder(ModuleBuilder module) : base(module) { }
/// <summary>
/// Initializes a new <see cref="SlashCommandBuilder"/>.
@@ -43,7 +43,7 @@ namespace Discord.Interactions.Builders
/// <param name="module">Parent module of this command.</param>
/// <param name="name">Name of this command.</param>
/// <param name="callback">Execution callback of this command.</param>
public SlashCommandBuilder (ModuleBuilder module, string name, ExecuteCallback callback) : base(module, name, callback) { }
public SlashCommandBuilder(ModuleBuilder module, string name, ExecuteCallback callback) : base(module, name, callback) { }
/// <summary>
/// Sets <see cref="Description"/>.
@@ -52,7 +52,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public SlashCommandBuilder WithDescription (string description)
public SlashCommandBuilder WithDescription(string description)
{
Description = description;
return this;
@@ -66,7 +66,7 @@ namespace Discord.Interactions.Builders
/// The builder instance.
/// </returns>
[Obsolete($"To be deprecated soon, use {nameof(SetEnabledInDm)} and {nameof(WithDefaultMemberPermissions)} instead.")]
public SlashCommandBuilder WithDefaultPermission (bool permission)
public SlashCommandBuilder WithDefaultPermission(bool permission)
{
DefaultPermission = permission;
return Instance;
@@ -79,7 +79,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public override SlashCommandBuilder AddParameter (Action<SlashCommandParameterBuilder> configure)
public override SlashCommandBuilder AddParameter(Action<SlashCommandParameterBuilder> configure)
{
var parameter = new SlashCommandParameterBuilder(this);
configure(parameter);
@@ -126,7 +126,7 @@ namespace Discord.Interactions.Builders
return this;
}
internal override SlashCommandInfo Build (ModuleInfo module, InteractionService commandService) =>
internal override SlashCommandInfo Build(ModuleInfo module, InteractionService commandService) =>
new SlashCommandInfo(this, module, commandService);
}
}

View File

@@ -116,7 +116,7 @@ namespace Discord.Interactions.Builders
internal TypeInfo TypeInfo { get; set; }
internal ModuleBuilder (InteractionService interactionService, ModuleBuilder parent = null)
internal ModuleBuilder(InteractionService interactionService, ModuleBuilder parent = null)
{
InteractionService = interactionService;
Parent = parent;
@@ -127,7 +127,7 @@ namespace Discord.Interactions.Builders
_contextCommands = new List<ContextCommandBuilder>();
_componentCommands = new List<ComponentCommandBuilder>();
_autocompleteCommands = new List<AutocompleteCommandBuilder>();
_modalCommands = new List<ModalCommandBuilder> ();
_modalCommands = new List<ModalCommandBuilder>();
_preconditions = new List<PreconditionAttribute>();
}
@@ -137,7 +137,7 @@ namespace Discord.Interactions.Builders
/// <param name="interactionService">The underlying Interaction Service.</param>
/// <param name="name">Name of this module.</param>
/// <param name="parent">Parent module of this sub-module.</param>
public ModuleBuilder (InteractionService interactionService, string name, ModuleBuilder parent = null) : this(interactionService, parent)
public ModuleBuilder(InteractionService interactionService, string name, ModuleBuilder parent = null) : this(interactionService, parent)
{
Name = name;
}
@@ -149,7 +149,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder WithGroupName (string name)
public ModuleBuilder WithGroupName(string name)
{
SlashGroupName = name;
return this;
@@ -162,7 +162,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder WithDescription (string description)
public ModuleBuilder WithDescription(string description)
{
Description = description;
return this;
@@ -176,7 +176,7 @@ namespace Discord.Interactions.Builders
/// The builder instance.
/// </returns>
[Obsolete($"To be deprecated soon, use {nameof(SetEnabledInDm)} and {nameof(WithDefaultMemberPermissions)} instead.")]
public ModuleBuilder WithDefaultPermission (bool permission)
public ModuleBuilder WithDefaultPermission(bool permission)
{
DefaultPermission = permission;
return this;
@@ -228,7 +228,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder AddAttributes (params Attribute[] attributes)
public ModuleBuilder AddAttributes(params Attribute[] attributes)
{
_attributes.AddRange(attributes);
return this;
@@ -241,7 +241,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder AddPreconditions (params PreconditionAttribute[] preconditions)
public ModuleBuilder AddPreconditions(params PreconditionAttribute[] preconditions)
{
_preconditions.AddRange(preconditions);
return this;
@@ -254,7 +254,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder AddSlashCommand (Action<SlashCommandBuilder> configure)
public ModuleBuilder AddSlashCommand(Action<SlashCommandBuilder> configure)
{
var command = new SlashCommandBuilder(this);
configure(command);
@@ -286,7 +286,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder AddContextCommand (Action<ContextCommandBuilder> configure)
public ModuleBuilder AddContextCommand(Action<ContextCommandBuilder> configure)
{
var command = new ContextCommandBuilder(this);
configure(command);
@@ -318,7 +318,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder AddComponentCommand (Action<ComponentCommandBuilder> configure)
public ModuleBuilder AddComponentCommand(Action<ComponentCommandBuilder> configure)
{
var command = new ComponentCommandBuilder(this);
configure(command);
@@ -398,7 +398,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public ModuleBuilder AddModule (Action<ModuleBuilder> configure)
public ModuleBuilder AddModule(Action<ModuleBuilder> configure)
{
var subModule = new ModuleBuilder(InteractionService, this);
configure(subModule);
@@ -406,7 +406,7 @@ namespace Discord.Interactions.Builders
return this;
}
internal ModuleInfo Build (InteractionService interactionService, IServiceProvider services, ModuleInfo parent = null)
internal ModuleInfo Build(InteractionService interactionService, IServiceProvider services, ModuleInfo parent = null)
{
if (TypeInfo is not null && ModuleClassBuilder.IsValidModuleDefinition(TypeInfo))
{

View File

@@ -13,9 +13,9 @@ namespace Discord.Interactions.Builders
public const int MaxCommandDepth = 3;
public static async Task<IEnumerable<TypeInfo>> SearchAsync (Assembly assembly, InteractionService commandService)
public static async Task<IEnumerable<TypeInfo>> SearchAsync(Assembly assembly, InteractionService commandService)
{
static bool IsLoadableModule (TypeInfo info)
static bool IsLoadableModule(TypeInfo info)
{
return info.DeclaredMethods.Any(x => x.GetCustomAttribute<SlashCommandAttribute>() != null);
}
@@ -24,7 +24,7 @@ namespace Discord.Interactions.Builders
foreach (var type in assembly.DefinedTypes)
{
if (( type.IsPublic || type.IsNestedPublic ) && IsValidModuleDefinition(type))
if ((type.IsPublic || type.IsNestedPublic) && IsValidModuleDefinition(type))
{
result.Add(type);
}
@@ -36,7 +36,7 @@ namespace Discord.Interactions.Builders
return result;
}
public static async Task<Dictionary<Type, ModuleInfo>> BuildAsync (IEnumerable<TypeInfo> validTypes, InteractionService commandService,
public static async Task<Dictionary<Type, ModuleInfo>> BuildAsync(IEnumerable<TypeInfo> validTypes, InteractionService commandService,
IServiceProvider services)
{
var topLevelGroups = validTypes.Where(x => x.DeclaringType == null || !IsValidModuleDefinition(x.DeclaringType.GetTypeInfo()));
@@ -62,7 +62,7 @@ namespace Discord.Interactions.Builders
return result;
}
private static void BuildModule (ModuleBuilder builder, TypeInfo typeInfo, InteractionService commandService,
private static void BuildModule(ModuleBuilder builder, TypeInfo typeInfo, InteractionService commandService,
IServiceProvider services)
{
var attributes = typeInfo.GetCustomAttributes();
@@ -130,14 +130,14 @@ namespace Discord.Interactions.Builders
foreach (var method in validInteractions)
builder.AddComponentCommand(x => BuildComponentCommand(x, createInstance, method, commandService, services));
foreach(var method in validAutocompleteCommands)
foreach (var method in validAutocompleteCommands)
builder.AddAutocompleteCommand(x => BuildAutocompleteCommand(x, createInstance, method, commandService, services));
foreach(var method in validModalCommands)
foreach (var method in validModalCommands)
builder.AddModalCommand(x => BuildModalCommand(x, createInstance, method, commandService, services));
}
private static void BuildSubModules (ModuleBuilder parent, IEnumerable<TypeInfo> subModules, IList<TypeInfo> builtTypes, InteractionService commandService,
private static void BuildSubModules(ModuleBuilder parent, IEnumerable<TypeInfo> subModules, IList<TypeInfo> builtTypes, InteractionService commandService,
IServiceProvider services, int slashGroupDepth = 0)
{
foreach (var submodule in subModules.Where(IsValidModuleDefinition))
@@ -158,7 +158,7 @@ namespace Discord.Interactions.Builders
}
}
private static void BuildSlashCommand (SlashCommandBuilder builder, Func<IServiceProvider, IInteractionModuleBase> createInstance, MethodInfo methodInfo,
private static void BuildSlashCommand(SlashCommandBuilder builder, Func<IServiceProvider, IInteractionModuleBase> createInstance, MethodInfo methodInfo,
InteractionService commandService, IServiceProvider services)
{
var attributes = methodInfo.GetCustomAttributes();
@@ -212,7 +212,7 @@ namespace Discord.Interactions.Builders
builder.Callback = CreateCallback(createInstance, methodInfo, commandService);
}
private static void BuildContextCommand (ContextCommandBuilder builder, Func<IServiceProvider, IInteractionModuleBase> createInstance, MethodInfo methodInfo,
private static void BuildContextCommand(ContextCommandBuilder builder, Func<IServiceProvider, IInteractionModuleBase> createInstance, MethodInfo methodInfo,
InteractionService commandService, IServiceProvider services)
{
var attributes = methodInfo.GetCustomAttributes();
@@ -267,7 +267,7 @@ namespace Discord.Interactions.Builders
builder.Callback = CreateCallback(createInstance, methodInfo, commandService);
}
private static void BuildComponentCommand (ComponentCommandBuilder builder, Func<IServiceProvider, IInteractionModuleBase> createInstance, MethodInfo methodInfo,
private static void BuildComponentCommand(ComponentCommandBuilder builder, Func<IServiceProvider, IInteractionModuleBase> createInstance, MethodInfo methodInfo,
InteractionService commandService, IServiceProvider services)
{
var attributes = methodInfo.GetCustomAttributes();
@@ -312,7 +312,7 @@ namespace Discord.Interactions.Builders
builder.MethodName = methodInfo.Name;
foreach(var attribute in attributes)
foreach (var attribute in attributes)
{
switch (attribute)
{
@@ -383,13 +383,13 @@ namespace Discord.Interactions.Builders
builder.Callback = CreateCallback(createInstance, methodInfo, commandService);
}
private static ExecuteCallback CreateCallback (Func<IServiceProvider, IInteractionModuleBase> createInstance,
private static ExecuteCallback CreateCallback(Func<IServiceProvider, IInteractionModuleBase> createInstance,
MethodInfo methodInfo, InteractionService commandService)
{
Func<IInteractionModuleBase, object[], Task> commandInvoker = commandService._useCompiledLambda ?
ReflectionUtils<IInteractionModuleBase>.CreateMethodInvoker(methodInfo) : (module, args) => methodInfo.Invoke(module, args) as Task;
async Task<IResult> ExecuteCallback (IInteractionContext context, object[] args, IServiceProvider serviceProvider, ICommandInfo commandInfo)
async Task<IResult> ExecuteCallback(IInteractionContext context, object[] args, IServiceProvider serviceProvider, ICommandInfo commandInfo)
{
var instance = createInstance(serviceProvider);
instance.SetContext(context);
@@ -420,7 +420,7 @@ namespace Discord.Interactions.Builders
{
await instance.AfterExecuteAsync(commandInfo).ConfigureAwait(false);
instance.AfterExecute(commandInfo);
( instance as IDisposable )?.Dispose();
(instance as IDisposable)?.Dispose();
}
}
@@ -428,7 +428,7 @@ namespace Discord.Interactions.Builders
}
#region Parameters
private static void BuildSlashParameter (SlashCommandParameterBuilder builder, ParameterInfo paramInfo, IServiceProvider services)
private static void BuildSlashParameter(SlashCommandParameterBuilder builder, ParameterInfo paramInfo, IServiceProvider services)
{
var attributes = paramInfo.GetCustomAttributes();
var paramType = paramInfo.ParameterType;
@@ -465,7 +465,7 @@ namespace Discord.Interactions.Builders
break;
case AutocompleteAttribute autocomplete:
builder.Autocomplete = true;
if(autocomplete.AutocompleteHandlerType is not null)
if (autocomplete.AutocompleteHandlerType is not null)
builder.WithAutocompleteHandler(autocomplete.AutocompleteHandlerType, services);
break;
case MaxValueAttribute maxValue:
@@ -516,7 +516,7 @@ namespace Discord.Interactions.Builders
BuildParameter(builder, paramInfo);
}
private static void BuildParameter<TInfo, TBuilder> (ParameterBuilder<TInfo, TBuilder> builder, ParameterInfo paramInfo)
private static void BuildParameter<TInfo, TBuilder>(ParameterBuilder<TInfo, TBuilder> builder, ParameterInfo paramInfo)
where TInfo : class, IParameterInfo
where TBuilder : ParameterBuilder<TInfo, TBuilder>
{
@@ -598,7 +598,7 @@ namespace Discord.Interactions.Builders
builder.WithType(propertyInfo.PropertyType);
builder.PropertyInfo = propertyInfo;
foreach(var attribute in attributes)
foreach (var attribute in attributes)
{
switch (attribute)
{
@@ -625,30 +625,30 @@ namespace Discord.Interactions.Builders
}
#endregion
internal static bool IsValidModuleDefinition (TypeInfo typeInfo)
internal static bool IsValidModuleDefinition(TypeInfo typeInfo)
{
return ModuleTypeInfo.IsAssignableFrom(typeInfo) &&
!typeInfo.IsAbstract &&
!typeInfo.ContainsGenericParameters;
}
private static bool IsValidSlashCommandDefinition (MethodInfo methodInfo)
private static bool IsValidSlashCommandDefinition(MethodInfo methodInfo)
{
return methodInfo.IsDefined(typeof(SlashCommandAttribute)) &&
( methodInfo.ReturnType == typeof(Task) || methodInfo.ReturnType == typeof(Task<RuntimeResult>) ) &&
(methodInfo.ReturnType == typeof(Task) || methodInfo.ReturnType == typeof(Task<RuntimeResult>)) &&
!methodInfo.IsStatic &&
!methodInfo.IsGenericMethod;
}
private static bool IsValidContextCommandDefinition (MethodInfo methodInfo)
private static bool IsValidContextCommandDefinition(MethodInfo methodInfo)
{
return methodInfo.IsDefined(typeof(ContextCommandAttribute)) &&
( methodInfo.ReturnType == typeof(Task) || methodInfo.ReturnType == typeof(Task<RuntimeResult>) ) &&
(methodInfo.ReturnType == typeof(Task) || methodInfo.ReturnType == typeof(Task<RuntimeResult>)) &&
!methodInfo.IsStatic &&
!methodInfo.IsGenericMethod;
}
private static bool IsValidComponentCommandDefinition (MethodInfo methodInfo)
private static bool IsValidComponentCommandDefinition(MethodInfo methodInfo)
{
return methodInfo.IsDefined(typeof(ComponentInteractionAttribute)) &&
(methodInfo.ReturnType == typeof(Task) || methodInfo.ReturnType == typeof(Task<RuntimeResult>)) &&
@@ -656,7 +656,7 @@ namespace Discord.Interactions.Builders
!methodInfo.IsGenericMethod;
}
private static bool IsValidAutocompleteCommandDefinition (MethodInfo methodInfo)
private static bool IsValidAutocompleteCommandDefinition(MethodInfo methodInfo)
{
return methodInfo.IsDefined(typeof(AutocompleteCommandAttribute)) &&
(methodInfo.ReturnType == typeof(Task) || methodInfo.ReturnType == typeof(Task<RuntimeResult>)) &&
@@ -680,7 +680,7 @@ namespace Discord.Interactions.Builders
propertyInfo.SetMethod?.IsStatic == false &&
propertyInfo.IsDefined(typeof(ModalInputAttribute));
}
private static ConstructorInfo GetComplexParameterConstructor(TypeInfo typeInfo, ComplexParameterAttribute complexParameter)
{
var ctors = typeInfo.GetConstructors();

View File

@@ -9,7 +9,7 @@ namespace Discord.Interactions.Builders
{
protected override CommandParameterBuilder Instance => this;
internal CommandParameterBuilder (ICommandBuilder command) : base(command) { }
internal CommandParameterBuilder(ICommandBuilder command) : base(command) { }
/// <summary>
/// Initializes a new <see cref="CommandParameterInfo"/>.
@@ -17,9 +17,9 @@ namespace Discord.Interactions.Builders
/// <param name="command">Parent command of this parameter.</param>
/// <param name="name">Name of this command.</param>
/// <param name="type">Type of this parameter.</param>
public CommandParameterBuilder (ICommandBuilder command, string name, Type type) : base(command, name, type) { }
public CommandParameterBuilder(ICommandBuilder command, string name, Type type) : base(command, name, type) { }
internal override CommandParameterInfo Build (ICommandInfo command) =>
internal override CommandParameterInfo Build(ICommandInfo command) =>
new CommandParameterInfo(this, command);
}
}

View File

@@ -55,7 +55,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder WithName (string name);
IParameterBuilder WithName(string name);
/// <summary>
/// Sets <see cref="ParameterType"/>.
@@ -64,7 +64,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder SetParameterType (Type type);
IParameterBuilder SetParameterType(Type type);
/// <summary>
/// Sets <see cref="IsRequired"/>.
@@ -73,7 +73,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder SetRequired (bool isRequired);
IParameterBuilder SetRequired(bool isRequired);
/// <summary>
/// Sets <see cref="DefaultValue"/>.
@@ -82,7 +82,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder SetDefaultValue (object defaultValue);
IParameterBuilder SetDefaultValue(object defaultValue);
/// <summary>
/// Adds attributes to <see cref="Attributes"/>.
@@ -91,7 +91,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder AddAttributes (params Attribute[] attributes);
IParameterBuilder AddAttributes(params Attribute[] attributes);
/// <summary>
/// Adds preconditions to <see cref="Preconditions"/>.
@@ -100,6 +100,6 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder AddPreconditions (params ParameterPreconditionAttribute[] preconditions);
IParameterBuilder AddPreconditions(params ParameterPreconditionAttribute[] preconditions);
}
}

View File

@@ -40,7 +40,7 @@ namespace Discord.Interactions.Builders
public IReadOnlyCollection<ParameterPreconditionAttribute> Preconditions => _preconditions;
protected abstract TBuilder Instance { get; }
internal ParameterBuilder (ICommandBuilder command)
internal ParameterBuilder(ICommandBuilder command)
{
_attributes = new List<Attribute>();
_preconditions = new List<ParameterPreconditionAttribute>();
@@ -48,7 +48,7 @@ namespace Discord.Interactions.Builders
Command = command;
}
protected ParameterBuilder (ICommandBuilder command, string name, Type type) : this(command)
protected ParameterBuilder(ICommandBuilder command, string name, Type type) : this(command)
{
Name = name;
SetParameterType(type);
@@ -61,7 +61,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public virtual TBuilder WithName (string name)
public virtual TBuilder WithName(string name)
{
Name = name;
return Instance;
@@ -74,7 +74,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public virtual TBuilder SetParameterType (Type type)
public virtual TBuilder SetParameterType(Type type)
{
ParameterType = type;
return Instance;
@@ -87,7 +87,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public virtual TBuilder SetRequired (bool isRequired)
public virtual TBuilder SetRequired(bool isRequired)
{
IsRequired = isRequired;
return Instance;
@@ -100,7 +100,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public virtual TBuilder SetDefaultValue (object defaultValue)
public virtual TBuilder SetDefaultValue(object defaultValue)
{
DefaultValue = defaultValue;
return Instance;
@@ -113,7 +113,7 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public virtual TBuilder AddAttributes (params Attribute[] attributes)
public virtual TBuilder AddAttributes(params Attribute[] attributes)
{
_attributes.AddRange(attributes);
return Instance;
@@ -126,37 +126,37 @@ namespace Discord.Interactions.Builders
/// <returns>
/// The builder instance.
/// </returns>
public virtual TBuilder AddPreconditions (params ParameterPreconditionAttribute[] attributes)
public virtual TBuilder AddPreconditions(params ParameterPreconditionAttribute[] attributes)
{
_preconditions.AddRange(attributes);
return Instance;
}
internal abstract TInfo Build (ICommandInfo command);
internal abstract TInfo Build(ICommandInfo command);
//IParameterBuilder
/// <inheritdoc/>
IParameterBuilder IParameterBuilder.WithName (string name) =>
IParameterBuilder IParameterBuilder.WithName(string name) =>
WithName(name);
/// <inheritdoc/>
IParameterBuilder IParameterBuilder.SetParameterType (Type type) =>
IParameterBuilder IParameterBuilder.SetParameterType(Type type) =>
SetParameterType(type);
/// <inheritdoc/>
IParameterBuilder IParameterBuilder.SetRequired (bool isRequired) =>
IParameterBuilder IParameterBuilder.SetRequired(bool isRequired) =>
SetRequired(isRequired);
/// <inheritdoc/>
IParameterBuilder IParameterBuilder.SetDefaultValue (object defaultValue) =>
IParameterBuilder IParameterBuilder.SetDefaultValue(object defaultValue) =>
SetDefaultValue(defaultValue);
/// <inheritdoc/>
IParameterBuilder IParameterBuilder.AddAttributes (params Attribute[] attributes) =>
IParameterBuilder IParameterBuilder.AddAttributes(params Attribute[] attributes) =>
AddAttributes(attributes);
/// <inheritdoc/>
IParameterBuilder IParameterBuilder.AddPreconditions (params ParameterPreconditionAttribute[] preconditions) =>
IParameterBuilder IParameterBuilder.AddPreconditions(params ParameterPreconditionAttribute[] preconditions) =>
AddPreconditions(preconditions);
}
}

View File

@@ -229,7 +229,7 @@ namespace Discord.Interactions.Builders
{
base.SetParameterType(type);
if(!IsComplexParameter)
if (!IsComplexParameter)
TypeConverter = Command.Module.InteractionService.GetTypeConverter(ParameterType, services);
return this;
@@ -248,7 +248,7 @@ namespace Discord.Interactions.Builders
SlashCommandParameterBuilder builder = new(Command);
configure(builder);
if(builder.IsComplexParameter)
if (builder.IsComplexParameter)
throw new InvalidOperationException("You cannot create nested complex parameters.");
_complexParameterFields.Add(builder);
@@ -265,7 +265,7 @@ namespace Discord.Interactions.Builders
/// <exception cref="InvalidOperationException">Thrown if the added field has a <see cref="ComplexParameterAttribute"/>.</exception>
public SlashCommandParameterBuilder AddComplexParameterFields(params SlashCommandParameterBuilder[] fields)
{
if(fields.Any(x => x.IsComplexParameter))
if (fields.Any(x => x.IsComplexParameter))
throw new InvalidOperationException("You cannot create nested complex parameters.");
_complexParameterFields.AddRange(fields);

View File

@@ -15,7 +15,7 @@ namespace Discord.Interactions
/// </summary>
public object Value { get; }
internal ParameterChoice (string name, object value)
internal ParameterChoice(string name, object value)
{
Name = name;
Value = value;

View File

@@ -11,7 +11,7 @@ namespace Discord.Interactions
/// Sets the context of this module.
/// </summary>
/// <param name="context"></param>
void SetContext (IInteractionContext context);
void SetContext(IInteractionContext context);
/// <summary>
/// Method body to be executed asynchronously before executing an application command.
@@ -35,14 +35,14 @@ namespace Discord.Interactions
/// Method body to be executed after an application command execution.
/// </summary>
/// <param name="command">Command information related to the Discord Application Command.</param>
void AfterExecute (ICommandInfo command);
void AfterExecute(ICommandInfo command);
/// <summary>
/// Method body to be executed when <see cref="Builders.ModuleBuilder.Build(InteractionService, System.IServiceProvider, ModuleInfo)"/> is called.
/// </summary>
/// <param name="commandService">Command Service instance that built this module.</param>
/// <param name="module">Info class of this module.</param>
void OnModuleBuilding (InteractionService commandService, ModuleInfo module);
void OnModuleBuilding(InteractionService commandService, ModuleInfo module);
/// <summary>
/// Method body to be executed after the automated module creation is completed and before <see cref="Builders.ModuleBuilder.Build(InteractionService, System.IServiceProvider, ModuleInfo)"/> is called.

View File

@@ -64,7 +64,7 @@ namespace Discord.Interactions
{
var keywords = new List<string>() { ParameterName, CommandName };
if(!IgnoreGroupNames)
if (!IgnoreGroupNames)
{
var currentParent = Module;

View File

@@ -20,7 +20,7 @@ namespace Discord.Interactions
/// <returns>
/// A task representing the execution operation.
/// </returns>
public delegate Task ExecuteCallback (IInteractionContext context, object[] args, IServiceProvider serviceProvider, ICommandInfo commandInfo);
public delegate Task ExecuteCallback(IInteractionContext context, object[] args, IServiceProvider serviceProvider, ICommandInfo commandInfo);
/// <summary>
/// The base information class for <see cref="InteractionService"/> commands.
@@ -114,7 +114,7 @@ namespace Discord.Interactions
await CommandService._cmdLogger.DebugAsync($"Executing {GetLogString(context)}").ConfigureAwait(false);
using var scope = services?.CreateScope();
if (CommandService._autoServiceScopes)
services = scope?.ServiceProvider ?? EmptyServiceProvider.Instance;
@@ -129,7 +129,7 @@ namespace Discord.Interactions
if (!argsResult.IsSuccess)
return await InvokeEventAndReturn(context, argsResult).ConfigureAwait(false);
if(argsResult is not ParseResult parseResult)
if (argsResult is not ParseResult parseResult)
return ExecuteResult.FromError(InteractionCommandError.BadArgs, "Complex command parsing failed for an unknown reason.");
var args = parseResult.Args;

View File

@@ -42,7 +42,7 @@ namespace Discord.Interactions
var data = (context.Interaction as IComponentInteraction).Data;
var args = new object[Parameters.Count];
for(var i = 0; i < Parameters.Count; i++)
for (var i = 0; i < Parameters.Count; i++)
{
var parameter = Parameters[i];
var isCapture = i < captureCount;

View File

@@ -35,7 +35,7 @@ namespace Discord.Interactions
/// <inheritdoc/>
public override bool IgnoreGroupNames => true;
internal ContextCommandInfo (Builders.ContextCommandBuilder builder, ModuleInfo module, InteractionService commandService)
internal ContextCommandInfo(Builders.ContextCommandBuilder builder, ModuleInfo module, InteractionService commandService)
: base(builder, module, commandService)
{
CommandType = builder.CommandType;
@@ -46,7 +46,7 @@ namespace Discord.Interactions
Parameters = builder.Parameters.Select(x => x.Build(this)).ToImmutableArray();
}
internal static ContextCommandInfo Create (Builders.ContextCommandBuilder builder, ModuleInfo module, InteractionService commandService)
internal static ContextCommandInfo Create(Builders.ContextCommandBuilder builder, ModuleInfo module, InteractionService commandService)
{
return builder.CommandType switch
{
@@ -57,7 +57,7 @@ namespace Discord.Interactions
}
/// <inheritdoc/>
protected override Task InvokeModuleEvent (IInteractionContext context, IResult result)
protected override Task InvokeModuleEvent(IInteractionContext context, IResult result)
=> CommandService._contextCommandExecutedEvent.InvokeAsync(this, context, result);
}
}

View File

@@ -86,7 +86,7 @@ namespace Discord.Interactions
var options = GetOptions();
var args = new object[Parameters.Count];
for(var i = 0; i < Parameters.Count; i++)
for (var i = 0; i < Parameters.Count; i++)
{
var parameter = Parameters[i];
var result = await ParseArgumentAsync(parameter, context, options, services).ConfigureAwait(false);
@@ -136,10 +136,10 @@ namespace Discord.Interactions
return readResult;
}
protected override Task InvokeModuleEvent (IInteractionContext context, IResult result)
protected override Task InvokeModuleEvent(IInteractionContext context, IResult result)
=> CommandService._slashCommandExecutedEvent.InvokeAsync(this, context, result);
protected override string GetLogString (IInteractionContext context)
protected override string GetLogString(IInteractionContext context)
{
if (context.Guild != null)
return $"Slash Command: \"{base.ToString()}\" for {context.User} in {context.Guild}/{context.Channel}";
@@ -153,7 +153,7 @@ namespace Discord.Interactions
if (!parameter.IsComplexParameter)
yield return parameter;
else
foreach(var complexParameterField in parameter.ComplexParameterFields)
foreach (var complexParameterField in parameter.ComplexParameterFields)
yield return complexParameterField;
}
}

View File

@@ -75,11 +75,11 @@ namespace Discord.Interactions
/// <returns>
/// A task representing the execution process. The task result contains the execution result.
/// </returns>
Task<IResult> ExecuteAsync (IInteractionContext context, IServiceProvider services);
Task<IResult> ExecuteAsync(IInteractionContext context, IServiceProvider services);
/// <summary>
/// Check if an execution context meets the command precondition requirements.
/// </summary>
Task<PreconditionResult> CheckPreconditionsAsync (IInteractionContext context, IServiceProvider services);
Task<PreconditionResult> CheckPreconditionsAsync(IInteractionContext context, IServiceProvider services);
}
}

View File

@@ -52,6 +52,6 @@ namespace Discord.Interactions
/// <summary>
/// Check if an execution context meets the parameter precondition requirements.
/// </summary>
Task<PreconditionResult> CheckPreconditionsAsync (IInteractionContext context, object value, IServiceProvider services);
Task<PreconditionResult> CheckPreconditionsAsync(IInteractionContext context, object value, IServiceProvider services);
}
}

View File

@@ -117,7 +117,7 @@ namespace Discord.Interactions
/// </summary>
public bool DontAutoRegister { get; }
internal ModuleInfo (ModuleBuilder builder, InteractionService commandService, IServiceProvider services, ModuleInfo parent = null)
internal ModuleInfo(ModuleBuilder builder, InteractionService commandService, IServiceProvider services, ModuleInfo parent = null)
{
CommandService = commandService;
@@ -143,7 +143,7 @@ namespace Discord.Interactions
GroupedPreconditions = Preconditions.ToLookup(x => x.Group, x => x, StringComparer.Ordinal);
}
private IEnumerable<ModuleInfo> BuildSubModules (ModuleBuilder builder, InteractionService commandService, IServiceProvider services)
private IEnumerable<ModuleInfo> BuildSubModules(ModuleBuilder builder, InteractionService commandService, IServiceProvider services)
{
var result = new List<ModuleInfo>();
@@ -153,7 +153,7 @@ namespace Discord.Interactions
return result;
}
private IEnumerable<SlashCommandInfo> BuildSlashCommands (ModuleBuilder builder)
private IEnumerable<SlashCommandInfo> BuildSlashCommands(ModuleBuilder builder)
{
var result = new List<SlashCommandInfo>();
@@ -163,7 +163,7 @@ namespace Discord.Interactions
return result;
}
private IEnumerable<ContextCommandInfo> BuildContextCommands (ModuleBuilder builder)
private IEnumerable<ContextCommandInfo> BuildContextCommands(ModuleBuilder builder)
{
var result = new List<ContextCommandInfo>();
@@ -173,7 +173,7 @@ namespace Discord.Interactions
return result;
}
private IEnumerable<ComponentCommandInfo> BuildComponentCommands (ModuleBuilder builder)
private IEnumerable<ComponentCommandInfo> BuildComponentCommands(ModuleBuilder builder)
{
var result = new List<ComponentCommandInfo>();
@@ -183,7 +183,7 @@ namespace Discord.Interactions
return result;
}
private IEnumerable<AutocompleteCommandInfo> BuildAutocompleteCommands( ModuleBuilder builder)
private IEnumerable<AutocompleteCommandInfo> BuildAutocompleteCommands(ModuleBuilder builder)
{
var result = new List<AutocompleteCommandInfo>();
@@ -203,7 +203,7 @@ namespace Discord.Interactions
return result;
}
private IEnumerable<Attribute> BuildAttributes (ModuleBuilder builder)
private IEnumerable<Attribute> BuildAttributes(ModuleBuilder builder)
{
var result = new List<Attribute>();
var currentParent = builder;
@@ -217,7 +217,7 @@ namespace Discord.Interactions
return result;
}
private static IEnumerable<PreconditionAttribute> BuildPreconditions (ModuleBuilder builder)
private static IEnumerable<PreconditionAttribute> BuildPreconditions(ModuleBuilder builder)
{
var preconditions = new List<PreconditionAttribute>();
@@ -232,7 +232,7 @@ namespace Discord.Interactions
return preconditions;
}
private static bool CheckTopLevel (ModuleInfo parent)
private static bool CheckTopLevel(ModuleInfo parent)
{
var currentParent = parent;

View File

@@ -34,7 +34,7 @@ namespace Discord.Interactions
/// <inheritdoc/>
public IReadOnlyCollection<ParameterPreconditionAttribute> Preconditions { get; }
internal CommandParameterInfo (Builders.IParameterBuilder builder, ICommandInfo command)
internal CommandParameterInfo(Builders.IParameterBuilder builder, ICommandInfo command)
{
Command = command;
Name = builder.Name;
@@ -47,7 +47,7 @@ namespace Discord.Interactions
}
/// <inheritdoc/>
public async Task<PreconditionResult> CheckPreconditionsAsync (IInteractionContext context, object value, IServiceProvider services)
public async Task<PreconditionResult> CheckPreconditionsAsync(IInteractionContext context, object value, IServiceProvider services)
{
foreach (var precondition in Preconditions)
{

View File

@@ -18,10 +18,10 @@ namespace Discord.Interactions
public T Context { get; private set; }
/// <inheritdoc/>
public virtual void AfterExecute (ICommandInfo command) { }
public virtual void AfterExecute(ICommandInfo command) { }
/// <inheritdoc/>
public virtual void BeforeExecute (ICommandInfo command) { }
public virtual void BeforeExecute(ICommandInfo command) { }
/// <inheritdoc/>
public virtual Task BeforeExecuteAsync(ICommandInfo command) => Task.CompletedTask;
@@ -30,12 +30,12 @@ namespace Discord.Interactions
public virtual Task AfterExecuteAsync(ICommandInfo command) => Task.CompletedTask;
/// <inheritdoc/>
public virtual void OnModuleBuilding (InteractionService commandService, ModuleInfo module) { }
public virtual void OnModuleBuilding(InteractionService commandService, ModuleInfo module) { }
/// <inheritdoc/>
public virtual void Construct (Builders.ModuleBuilder builder, InteractionService commandService) { }
public virtual void Construct(Builders.ModuleBuilder builder, InteractionService commandService) { }
internal void SetContext (IInteractionContext context)
internal void SetContext(IInteractionContext context)
{
var newValue = context as T;
Context = newValue ?? throw new InvalidOperationException($"Invalid context type. Expected {typeof(T).Name}, got {context.GetType().Name}.");
@@ -46,7 +46,7 @@ namespace Discord.Interactions
await Context.Interaction.DeferAsync(ephemeral, options).ConfigureAwait(false);
/// <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,
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);
@@ -71,7 +71,7 @@ namespace Discord.Interactions
=> Context.Interaction.RespondWithFilesAsync(attachments, text, embeds, isTTS, ephemeral, allowedMentions, components, embed, options);
/// <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,
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);
@@ -96,7 +96,7 @@ namespace Discord.Interactions
=> 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[], MessageFlags)"/>
protected virtual async Task<IUserMessage> ReplyAsync (string text = null, bool isTTS = false, Embed embed = null, RequestOptions options = null,
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);
@@ -114,10 +114,10 @@ namespace Discord.Interactions
var response = await Context.Interaction.GetOriginalResponseAsync().ConfigureAwait(false);
await response.DeleteAsync().ConfigureAwait(false);
}
/// <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{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);
@@ -125,7 +125,7 @@ namespace Discord.Interactions
//IInteractionModuleBase
/// <inheritdoc/>
void IInteractionModuleBase.SetContext (IInteractionContext context) => SetContext(context);
void IInteractionModuleBase.SetContext(IInteractionContext context) => SetContext(context);
}
/// <summary>

View File

@@ -22,7 +22,7 @@ namespace Discord.Interactions
/// Occurs when a Slash Command related information is recieved.
/// </summary>
public event Func<LogMessage, Task> Log { add { _logEvent.Add(value); } remove { _logEvent.Remove(value); } }
internal readonly AsyncEvent<Func<LogMessage, Task>> _logEvent = new ();
internal readonly AsyncEvent<Func<LogMessage, Task>> _logEvent = new();
/// <summary>
/// Occurs when any type of interaction is executed.
@@ -51,19 +51,19 @@ namespace Discord.Interactions
/// Occurs when a Slash Command is executed.
/// </summary>
public event Func<SlashCommandInfo, IInteractionContext, IResult, Task> SlashCommandExecuted { add { _slashCommandExecutedEvent.Add(value); } remove { _slashCommandExecutedEvent.Remove(value); } }
internal readonly AsyncEvent<Func<SlashCommandInfo, IInteractionContext, IResult, Task>> _slashCommandExecutedEvent = new ();
internal readonly AsyncEvent<Func<SlashCommandInfo, IInteractionContext, IResult, Task>> _slashCommandExecutedEvent = new();
/// <summary>
/// Occurs when a Context Command is executed.
/// </summary>
public event Func<ContextCommandInfo, IInteractionContext, IResult, Task> ContextCommandExecuted { add { _contextCommandExecutedEvent.Add(value); } remove { _contextCommandExecutedEvent.Remove(value); } }
internal readonly AsyncEvent<Func<ContextCommandInfo, IInteractionContext, IResult, Task>> _contextCommandExecutedEvent = new ();
internal readonly AsyncEvent<Func<ContextCommandInfo, IInteractionContext, IResult, Task>> _contextCommandExecutedEvent = new();
/// <summary>
/// Occurs when a Message Component command is executed.
/// </summary>
public event Func<ComponentCommandInfo, IInteractionContext, IResult, Task> ComponentCommandExecuted { add { _componentCommandExecutedEvent.Add(value); } remove { _componentCommandExecutedEvent.Remove(value); } }
internal readonly AsyncEvent<Func<ComponentCommandInfo, IInteractionContext, IResult, Task>> _componentCommandExecutedEvent = new ();
internal readonly AsyncEvent<Func<ComponentCommandInfo, IInteractionContext, IResult, Task>> _componentCommandExecutedEvent = new();
/// <summary>
/// Occurs when a Autocomplete command is executed.
@@ -150,7 +150,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="discord">The discord client.</param>
/// <param name="config">The configuration class.</param>
public InteractionService (DiscordSocketClient discord, InteractionServiceConfig config = null)
public InteractionService(DiscordSocketClient discord, InteractionServiceConfig config = null)
: this(() => discord.Rest, config ?? new InteractionServiceConfig()) { }
/// <summary>
@@ -158,7 +158,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="discord">The discord client.</param>
/// <param name="config">The configuration class.</param>
public InteractionService (DiscordShardedClient discord, InteractionServiceConfig config = null)
public InteractionService(DiscordShardedClient discord, InteractionServiceConfig config = null)
: this(() => discord.Rest, config ?? new InteractionServiceConfig()) { }
/// <summary>
@@ -166,18 +166,18 @@ namespace Discord.Interactions
/// </summary>
/// <param name="discord">The discord client.</param>
/// <param name="config">The configuration class.</param>
public InteractionService (BaseSocketClient discord, InteractionServiceConfig config = null)
:this(() => discord.Rest, config ?? new InteractionServiceConfig()) { }
public InteractionService(BaseSocketClient discord, InteractionServiceConfig config = null)
: this(() => discord.Rest, config ?? new InteractionServiceConfig()) { }
/// <summary>
/// Initialize a <see cref="InteractionService"/> with provided configurations.
/// </summary>
/// <param name="discord">The discord client.</param>
/// <param name="config">The configuration class.</param>
public InteractionService (DiscordRestClient discord, InteractionServiceConfig config = null)
:this(() => discord, config ?? new InteractionServiceConfig()) { }
public InteractionService(DiscordRestClient discord, InteractionServiceConfig config = null)
: this(() => discord, config ?? new InteractionServiceConfig()) { }
private InteractionService (Func<DiscordRestClient> getRestClient, InteractionServiceConfig config = null)
private InteractionService(Func<DiscordRestClient> getRestClient, InteractionServiceConfig config = null)
{
config ??= new InteractionServiceConfig();
@@ -211,19 +211,19 @@ namespace Discord.Interactions
LocalizationManager = config.LocalizationManager;
_typeConverterMap = new TypeMap<TypeConverter, IApplicationCommandInteractionDataOption>(this, new ConcurrentDictionary<Type, TypeConverter>
{
[typeof(TimeSpan)] = new TimeSpanConverter()
}, new ConcurrentDictionary<Type, Type>
{
[typeof(IChannel)] = typeof(DefaultChannelConverter<>),
[typeof(IRole)] = typeof(DefaultRoleConverter<>),
[typeof(IAttachment)] = typeof(DefaultAttachmentConverter<>),
[typeof(IUser)] = typeof(DefaultUserConverter<>),
[typeof(IMentionable)] = typeof(DefaultMentionableConverter<>),
[typeof(IConvertible)] = typeof(DefaultValueConverter<>),
[typeof(Enum)] = typeof(EnumConverter<>),
[typeof(Nullable<>)] = typeof(NullableConverter<>)
});
{
[typeof(TimeSpan)] = new TimeSpanConverter()
}, new ConcurrentDictionary<Type, Type>
{
[typeof(IChannel)] = typeof(DefaultChannelConverter<>),
[typeof(IRole)] = typeof(DefaultRoleConverter<>),
[typeof(IAttachment)] = typeof(DefaultAttachmentConverter<>),
[typeof(IUser)] = typeof(DefaultUserConverter<>),
[typeof(IMentionable)] = typeof(DefaultMentionableConverter<>),
[typeof(IConvertible)] = typeof(DefaultValueConverter<>),
[typeof(Enum)] = typeof(EnumConverter<>),
[typeof(Nullable<>)] = typeof(NullableConverter<>)
});
_compTypeConverterMap = new TypeMap<ComponentTypeConverter, IComponentInteractionData>(this, new ConcurrentDictionary<Type, ComponentTypeConverter>(),
new ConcurrentDictionary<Type, Type>
@@ -284,7 +284,7 @@ namespace Discord.Interactions
/// <returns>
/// A task representing the operation for adding modules. The task result contains a collection of the modules added.
/// </returns>
public async Task<IEnumerable<ModuleInfo>> AddModulesAsync (Assembly assembly, IServiceProvider services)
public async Task<IEnumerable<ModuleInfo>> AddModulesAsync(Assembly assembly, IServiceProvider services)
{
services ??= EmptyServiceProvider.Instance;
@@ -322,7 +322,7 @@ namespace Discord.Interactions
/// <exception cref="InvalidOperationException">
/// Thrown when the <typeparamref name="T"/> is not a valid module definition.
/// </exception>
public Task<ModuleInfo> AddModuleAsync<T> (IServiceProvider services) where T : class =>
public Task<ModuleInfo> AddModuleAsync<T>(IServiceProvider services) where T : class =>
AddModuleAsync(typeof(T), services);
/// <summary>
@@ -339,7 +339,7 @@ namespace Discord.Interactions
/// <exception cref="InvalidOperationException">
/// Thrown when the <paramref name="type"/> is not a valid module definition.
/// </exception>
public async Task<ModuleInfo> AddModuleAsync (Type type, IServiceProvider services)
public async Task<ModuleInfo> AddModuleAsync(Type type, IServiceProvider services)
{
if (!typeof(IInteractionModuleBase).IsAssignableFrom(type))
throw new ArgumentException("Type parameter must be a type of Slash Module", nameof(type));
@@ -355,7 +355,7 @@ namespace Discord.Interactions
if (_typedModuleDefs.ContainsKey(typeInfo))
throw new ArgumentException("Module definition for this type already exists.");
var moduleDef = ( await ModuleClassBuilder.BuildAsync(new List<TypeInfo> { typeInfo }, this, services).ConfigureAwait(false) ).FirstOrDefault();
var moduleDef = (await ModuleClassBuilder.BuildAsync(new List<TypeInfo> { typeInfo }, this, services).ConfigureAwait(false)).FirstOrDefault();
if (moduleDef.Value == default)
throw new InvalidOperationException($"Could not build the module {typeInfo.FullName}, did you pass an invalid type?");
@@ -382,7 +382,7 @@ namespace Discord.Interactions
/// <returns>
/// A task representing the command registration process. The task result contains the active application commands of the target guild.
/// </returns>
public async Task<IReadOnlyCollection<RestGuildCommand>> RegisterCommandsToGuildAsync (ulong guildId, bool deleteMissing = true)
public async Task<IReadOnlyCollection<RestGuildCommand>> RegisterCommandsToGuildAsync(ulong guildId, bool deleteMissing = true)
{
EnsureClientReady();
@@ -407,7 +407,7 @@ namespace Discord.Interactions
/// <returns>
/// A task representing the command registration process. The task result contains the active global application commands of bot.
/// </returns>
public async Task<IReadOnlyCollection<RestGlobalCommand>> RegisterCommandsGloballyAsync (bool deleteMissing = true)
public async Task<IReadOnlyCollection<RestGlobalCommand>> RegisterCommandsGloballyAsync(bool deleteMissing = true)
{
EnsureClientReady();
@@ -598,7 +598,7 @@ namespace Discord.Interactions
return await RestClient.BulkOverwriteGlobalCommands(props.ToArray()).ConfigureAwait(false);
}
private void LoadModuleInternal (ModuleInfo module)
private void LoadModuleInternal(ModuleInfo module)
{
_moduleDefs.Add(module);
@@ -629,7 +629,7 @@ namespace Discord.Interactions
/// A task that represents the asynchronous removal operation. The task result contains a value that
/// indicates whether the module is successfully removed.
/// </returns>
public Task<bool> RemoveModuleAsync<T> ( ) =>
public Task<bool> RemoveModuleAsync<T>() =>
RemoveModuleAsync(typeof(T));
/// <summary>
@@ -640,7 +640,7 @@ namespace Discord.Interactions
/// A task that represents the asynchronous removal operation. The task result contains a value that
/// indicates whether the module is successfully removed.
/// </returns>
public async Task<bool> RemoveModuleAsync (Type type)
public async Task<bool> RemoveModuleAsync(Type type)
{
await _lock.WaitAsync().ConfigureAwait(false);
@@ -720,7 +720,7 @@ namespace Discord.Interactions
return await RestClient.BulkOverwriteGuildCommands(props.ToArray(), guildId).ConfigureAwait(false);
}
private bool RemoveModuleInternal (ModuleInfo moduleInfo)
private bool RemoveModuleInternal(ModuleInfo moduleInfo)
{
if (!_moduleDefs.Remove(moduleInfo))
return false;
@@ -795,7 +795,7 @@ namespace Discord.Interactions
/// <returns>
/// A task representing the command execution process. The task result contains the result of the execution.
/// </returns>
public async Task<IResult> ExecuteCommandAsync (IInteractionContext context, IServiceProvider services)
public async Task<IResult> ExecuteCommandAsync(IInteractionContext context, IServiceProvider services)
{
var interaction = context.Interaction;
@@ -811,7 +811,7 @@ namespace Discord.Interactions
};
}
private async Task<IResult> ExecuteSlashCommandAsync (IInteractionContext context, ISlashCommandInteraction interaction, IServiceProvider services)
private async Task<IResult> ExecuteSlashCommandAsync(IInteractionContext context, ISlashCommandInteraction interaction, IServiceProvider services)
{
var keywords = interaction.Data.GetCommandKeywords();
@@ -827,7 +827,7 @@ namespace Discord.Interactions
return await result.Command.ExecuteAsync(context, services).ConfigureAwait(false);
}
private async Task<IResult> ExecuteContextCommandAsync (IInteractionContext context, string input, ApplicationCommandType commandType, IServiceProvider services)
private async Task<IResult> ExecuteContextCommandAsync(IInteractionContext context, string input, ApplicationCommandType commandType, IServiceProvider services)
{
if (!_contextCommandMaps.TryGetValue(commandType, out var map))
return SearchResult<ContextCommandInfo>.FromError(input, InteractionCommandError.UnknownCommand, $"No {commandType} command found.");
@@ -844,7 +844,7 @@ namespace Discord.Interactions
return await result.Command.ExecuteAsync(context, services).ConfigureAwait(false);
}
private async Task<IResult> ExecuteComponentCommandAsync (IInteractionContext context, string input, IServiceProvider services)
private async Task<IResult> ExecuteComponentCommandAsync(IInteractionContext context, string input, IServiceProvider services)
{
var result = _componentCommandMap.GetCommand(input);
@@ -861,15 +861,15 @@ namespace Discord.Interactions
return await result.Command.ExecuteAsync(context, services).ConfigureAwait(false);
}
private async Task<IResult> ExecuteAutocompleteAsync (IInteractionContext context, IAutocompleteInteraction interaction, IServiceProvider services )
private async Task<IResult> ExecuteAutocompleteAsync(IInteractionContext context, IAutocompleteInteraction interaction, IServiceProvider services)
{
var keywords = interaction.Data.GetCommandKeywords();
if(_enableAutocompleteHandlers)
if (_enableAutocompleteHandlers)
{
var autocompleteHandlerResult = _slashCommandMap.GetCommand(keywords);
if(autocompleteHandlerResult.IsSuccess)
if (autocompleteHandlerResult.IsSuccess)
{
if (autocompleteHandlerResult.Command._flattenedParameterDictionary.TryGetValue(interaction.Data.Current.Name, out var parameter) && parameter?.AutocompleteHandler is not null)
return await parameter.AutocompleteHandler.ExecuteAsync(context, interaction, parameter, services).ConfigureAwait(false);
@@ -880,7 +880,7 @@ namespace Discord.Interactions
var commandResult = _autocompleteCommandMap.GetCommand(keywords);
if(!commandResult.IsSuccess)
if (!commandResult.IsSuccess)
{
await _cmdLogger.DebugAsync($"Unknown command name, skipping autocomplete process ({interaction.Data.CommandName.ToUpper()})");
@@ -1109,7 +1109,7 @@ namespace Discord.Interactions
{
var serializedValues = new string[args.Length];
for(var i = 0; i < args.Length; i++)
for (var i = 0; i < args.Length; i++)
{
var arg = args[i];
var typeReader = _typeReaderMap.Get(arg.GetType(), null);
@@ -1269,7 +1269,7 @@ namespace Discord.Interactions
public async Task<GuildApplicationCommandPermission> ModifyContextCommandPermissionsAsync(ContextCommandInfo command, ulong guildId,
params ApplicationCommandPermission[] permissions) => await ModifyApplicationCommandPermissionsAsync(command, guildId, permissions).ConfigureAwait(false);
private async Task<GuildApplicationCommandPermission> ModifyApplicationCommandPermissionsAsync<T> (T command, ulong guildId,
private async Task<GuildApplicationCommandPermission> ModifyApplicationCommandPermissionsAsync<T>(T command, ulong guildId,
params ApplicationCommandPermission[] permissions) where T : class, IApplicationCommandInfo, ICommandInfo
{
if (command is null)
@@ -1279,7 +1279,7 @@ namespace Discord.Interactions
throw new InvalidOperationException("This command is not a top level application command. You cannot change its permissions");
var commands = await RestClient.GetGuildApplicationCommands(guildId).ConfigureAwait(false);
var appCommand = commands.First(x => x.Name == ( command as IApplicationCommandInfo ).Name);
var appCommand = commands.First(x => x.Name == (command as IApplicationCommandInfo).Name);
return await appCommand.ModifyCommandPermissions(permissions).ConfigureAwait(false);
}
@@ -1293,7 +1293,7 @@ namespace Discord.Interactions
/// <see cref="SlashCommandInfo"/> instance for this command.
/// </returns>
/// <exception cref="InvalidOperationException">Module or Slash Command couldn't be found.</exception>
public SlashCommandInfo GetSlashCommandInfo<TModule> (string methodName) where TModule : class
public SlashCommandInfo GetSlashCommandInfo<TModule>(string methodName) where TModule : class
{
var module = GetModuleInfo<TModule>();
@@ -1309,7 +1309,7 @@ namespace Discord.Interactions
/// <see cref="ContextCommandInfo"/> instance for this command.
/// </returns>
/// <exception cref="InvalidOperationException">Module or Context Command couldn't be found.</exception>
public ContextCommandInfo GetContextCommandInfo<TModule> (string methodName) where TModule : class
public ContextCommandInfo GetContextCommandInfo<TModule>(string methodName) where TModule : class
{
var module = GetModuleInfo<TModule>();
@@ -1325,7 +1325,7 @@ namespace Discord.Interactions
/// <see cref="ComponentCommandInfo"/> instance for this command.
/// </returns>
/// <exception cref="InvalidOperationException">Module or Component Command couldn't be found.</exception>
public ComponentCommandInfo GetComponentCommandInfo<TModule> (string methodName) where TModule : class
public ComponentCommandInfo GetComponentCommandInfo<TModule>(string methodName) where TModule : class
{
var module = GetModuleInfo<TModule>();
@@ -1339,7 +1339,7 @@ namespace Discord.Interactions
/// <returns>
/// <see cref="ModuleInfo"/> instance for this module.
/// </returns>
public ModuleInfo GetModuleInfo<TModule> ( ) where TModule : class
public ModuleInfo GetModuleInfo<TModule>() where TModule : class
{
if (!typeof(IInteractionModuleBase).IsAssignableFrom(typeof(TModule)))
throw new ArgumentException("Type parameter must be a type of Slash Module", nameof(TModule));
@@ -1353,7 +1353,7 @@ namespace Discord.Interactions
}
/// <inheritdoc/>
public void Dispose ( )
public void Dispose()
{
_lock.Dispose();
}

View File

@@ -49,7 +49,7 @@ namespace Discord.Interactions
public SearchResult<T> GetCommand(string input)
{
if(_seperators.Any())
if (_seperators.Any())
return GetCommand(input.Split(_seperators));
else
return GetCommand(new string[] { input });

View File

@@ -8,7 +8,7 @@ using System.Text.RegularExpressions;
namespace Discord.Interactions
{
internal class CommandMapNode<T> where T : class, ICommandInfo
{
{
private readonly string _wildCardStr = "*";
private readonly ConcurrentDictionary<string, CommandMapNode<T>> _nodes;
private readonly ConcurrentDictionary<string, T> _commands;
@@ -19,7 +19,7 @@ namespace Discord.Interactions
public IReadOnlyDictionary<Regex, T> WildCardCommands => _wildCardCommands;
public string Name { get; }
public CommandMapNode (string name, string wildCardExp = null)
public CommandMapNode(string name, string wildCardExp = null)
{
Name = name;
_nodes = new ConcurrentDictionary<string, CommandMapNode<T>>();
@@ -30,7 +30,7 @@ namespace Discord.Interactions
_wildCardStr = wildCardExp;
}
public void AddCommand (IList<string> keywords, int index, T commandInfo)
public void AddCommand(IList<string> keywords, int index, T commandInfo)
{
if (keywords.Count == index + 1)
{
@@ -54,7 +54,7 @@ namespace Discord.Interactions
}
}
public bool RemoveCommand (IList<string> keywords, int index)
public bool RemoveCommand(IList<string> keywords, int index)
{
if (keywords.Count == index + 1)
return _commands.TryRemove(keywords[index], out var _);
@@ -67,7 +67,7 @@ namespace Discord.Interactions
}
}
public SearchResult<T> GetCommand (IList<string> keywords, int index)
public SearchResult<T> GetCommand(IList<string> keywords, int index)
{
string name = string.Join(" ", keywords);
@@ -101,7 +101,7 @@ namespace Discord.Interactions
return SearchResult<T>.FromError(name, InteractionCommandError.UnknownCommand, $"No {typeof(T).FullName} found for {name}");
}
public SearchResult<T> GetCommand (string text, int index, char[] seperators)
public SearchResult<T> GetCommand(string text, int index, char[] seperators)
{
var keywords = text.Split(seperators);
return GetCommand(keywords, index);

View File

@@ -21,7 +21,7 @@ namespace Discord.Interactions
/// <inheritdoc/>
public bool IsSuccess => !Error.HasValue;
private ExecuteResult (Exception exception, InteractionCommandError? commandError, string errorReason)
private ExecuteResult(Exception exception, InteractionCommandError? commandError, string errorReason)
{
Exception = exception;
Error = commandError;
@@ -34,7 +34,7 @@ namespace Discord.Interactions
/// <returns>
/// A <see cref="ExecuteResult" /> that does not contain any errors.
/// </returns>
public static ExecuteResult FromSuccess ( ) =>
public static ExecuteResult FromSuccess() =>
new ExecuteResult(null, null, null);
/// <summary>
@@ -46,7 +46,7 @@ namespace Discord.Interactions
/// <returns>
/// A <see cref="ExecuteResult" /> that contains a <see cref="InteractionCommandError" /> and reason.
/// </returns>
public static ExecuteResult FromError (InteractionCommandError commandError, string reason) =>
public static ExecuteResult FromError(InteractionCommandError commandError, string reason) =>
new ExecuteResult(null, commandError, reason);
/// <summary>
@@ -59,7 +59,7 @@ namespace Discord.Interactions
/// with a <see cref="InteractionCommandError" /> of type <c>Exception</c> as well as the exception message as the
/// reason.
/// </returns>
public static ExecuteResult FromError (Exception exception) =>
public static ExecuteResult FromError(Exception exception) =>
new ExecuteResult(exception, InteractionCommandError.Exception, exception.Message);
/// <summary>
@@ -71,7 +71,7 @@ namespace Discord.Interactions
/// <returns>
/// A <see cref="ExecuteResult"/> that inherits the <see cref="IResult"/> error type and reason.
/// </returns>
public static ExecuteResult FromError (IResult result) =>
public static ExecuteResult FromError(IResult result) =>
new ExecuteResult(null, result.Error, result.ErrorReason);
/// <summary>
@@ -81,6 +81,6 @@ namespace Discord.Interactions
/// <c>Success</c> if <see cref="IsSuccess"/> is <see langword="true"/>; otherwise "<see cref="Error"/>:
/// <see cref="ErrorReason"/>".
/// </returns>
public override string ToString ( ) => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
}
}

View File

@@ -14,7 +14,7 @@ namespace Discord.Interactions
/// </summary>
public IReadOnlyCollection<PreconditionResult> Results { get; }
private PreconditionGroupResult (InteractionCommandError? error, string reason, IEnumerable<PreconditionResult> results) : base(error, reason)
private PreconditionGroupResult(InteractionCommandError? error, string reason, IEnumerable<PreconditionResult> results) : base(error, reason)
{
Results = results?.ToImmutableArray();
}
@@ -22,21 +22,21 @@ namespace Discord.Interactions
/// <summary>
/// Returns a <see cref="PreconditionGroupResult" /> with no errors.
/// </summary>
public static new PreconditionGroupResult FromSuccess ( ) =>
public static new PreconditionGroupResult FromSuccess() =>
new PreconditionGroupResult(null, null, null);
/// <summary>
/// Returns a <see cref="PreconditionGroupResult" /> with <see cref="InteractionCommandError.Exception" /> and the <see cref="Exception.Message"/>.
/// </summary>
/// <param name="exception">The exception that caused the precondition check to fail.</param>
public static new PreconditionGroupResult FromError (Exception exception) =>
public static new PreconditionGroupResult FromError(Exception exception) =>
new PreconditionGroupResult(InteractionCommandError.Exception, exception.Message, null);
/// <summary>
/// Returns a <see cref="PreconditionGroupResult" /> with the specified <paramref name="result"/> type.
/// </summary>
/// <param name="result">The result of failure.</param>
public static new PreconditionGroupResult FromError (IResult result) =>
public static new PreconditionGroupResult FromError(IResult result) =>
new PreconditionGroupResult(result.Error, result.ErrorReason, null);
/// <summary>
@@ -45,7 +45,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="reason">The reason of failure.</param>
/// <param name="results">Precondition results of this group</param>
public static PreconditionGroupResult FromError (string reason, IEnumerable<PreconditionResult> results) =>
public static PreconditionGroupResult FromError(string reason, IEnumerable<PreconditionResult> results) =>
new PreconditionGroupResult(InteractionCommandError.UnmetPrecondition, reason, results);
}
}

View File

@@ -22,7 +22,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="error">The type of failure.</param>
/// <param name="reason">The reason of failure.</param>
protected PreconditionResult (InteractionCommandError? error, string reason)
protected PreconditionResult(InteractionCommandError? error, string reason)
{
Error = error;
ErrorReason = reason;
@@ -31,21 +31,21 @@ namespace Discord.Interactions
/// <summary>
/// Returns a <see cref="PreconditionResult" /> with no errors.
/// </summary>
public static PreconditionResult FromSuccess ( ) =>
public static PreconditionResult FromSuccess() =>
new PreconditionResult(null, null);
/// <summary>
/// Returns a <see cref="PreconditionResult" /> with <see cref="InteractionCommandError.Exception" /> and the <see cref="Exception.Message"/>.
/// </summary>
/// <param name="exception">The exception that caused the precondition check to fail.</param>
public static PreconditionResult FromError (Exception exception) =>
public static PreconditionResult FromError(Exception exception) =>
new PreconditionResult(InteractionCommandError.Exception, exception.Message);
/// <summary>
/// Returns a <see cref="PreconditionResult" /> with the specified <paramref name="result"/> type.
/// </summary>
/// <param name="result">The result of failure.</param>
public static PreconditionResult FromError (IResult result) =>
public static PreconditionResult FromError(IResult result) =>
new PreconditionResult(result.Error, result.ErrorReason);
/// <summary>
@@ -53,7 +53,7 @@ namespace Discord.Interactions
/// specified reason.
/// </summary>
/// <param name="reason">The reason of failure.</param>
public static PreconditionResult FromError (string reason) =>
public static PreconditionResult FromError(string reason) =>
new PreconditionResult(InteractionCommandError.UnmetPrecondition, reason);
}
}

View File

@@ -19,7 +19,7 @@ namespace Discord.Interactions
/// </summary>
/// <param name="error">The type of failure, or <c>null</c> if none.</param>
/// <param name="reason">The reason of failure.</param>
protected RuntimeResult (InteractionCommandError? error, string reason)
protected RuntimeResult(InteractionCommandError? error, string reason)
{
Error = error;
ErrorReason = reason;
@@ -32,6 +32,6 @@ namespace Discord.Interactions
/// <c>Success</c> if <see cref="IsSuccess"/> is <c>true</c>; otherwise "<see cref="Error"/>:
/// <see cref="ErrorReason"/>".
/// </returns>
public override string ToString ( ) => ErrorReason ?? ( IsSuccess ? "Successful" : "Unsuccessful" );
public override string ToString() => ErrorReason ?? (IsSuccess ? "Successful" : "Unsuccessful");
}
}

View File

@@ -32,7 +32,7 @@ namespace Discord.Interactions
/// <inheritdoc/>
public bool IsSuccess => !Error.HasValue;
private SearchResult (string text, T commandInfo, string[] captureGroups, InteractionCommandError? error, string reason)
private SearchResult(string text, T commandInfo, string[] captureGroups, InteractionCommandError? error, string reason)
{
Text = text;
Error = error;
@@ -47,7 +47,7 @@ namespace Discord.Interactions
/// <returns>
/// A <see cref="SearchResult{T}" /> that does not contain any errors.
/// </returns>
public static SearchResult<T> FromSuccess (string text, T commandInfo, string[] wildCardMatch = null) =>
public static SearchResult<T> FromSuccess(string text, T commandInfo, string[] wildCardMatch = null) =>
new SearchResult<T>(text, commandInfo, wildCardMatch, null, null);
/// <summary>
@@ -59,7 +59,7 @@ namespace Discord.Interactions
/// <returns>
/// A <see cref="SearchResult{T}" /> that contains a <see cref="InteractionCommandError" /> and reason.
/// </returns>
public static SearchResult<T> FromError (string text, InteractionCommandError error, string reason) =>
public static SearchResult<T> FromError(string text, InteractionCommandError error, string reason) =>
new SearchResult<T>(text, null, null, error, reason);
/// <summary>
@@ -72,7 +72,7 @@ namespace Discord.Interactions
/// with a <see cref="InteractionCommandError" /> of type <c>Exception</c> as well as the exception message as the
/// reason.
/// </returns>
public static SearchResult<T> FromError (Exception ex) =>
public static SearchResult<T> FromError(Exception ex) =>
new SearchResult<T>(null, null, null, InteractionCommandError.Exception, ex.Message);
/// <summary>
@@ -84,10 +84,10 @@ namespace Discord.Interactions
/// <returns>
/// A <see cref="SearchResult{T}"/> that inherits the <see cref="IResult"/> error type and reason.
/// </returns>
public static SearchResult<T> FromError (IResult result) =>
public static SearchResult<T> FromError(IResult result) =>
new SearchResult<T>(null, null, null, result.Error, result.ErrorReason);
/// <inheritdoc/>
public override string ToString ( ) => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
}
}

View File

@@ -21,7 +21,7 @@ namespace Discord.Interactions
/// <inheritdoc/>
public bool IsSuccess => !Error.HasValue;
private TypeConverterResult (object value, InteractionCommandError? error, string reason)
private TypeConverterResult(object value, InteractionCommandError? error, string reason)
{
Value = value;
Error = error;
@@ -31,14 +31,14 @@ namespace Discord.Interactions
/// <summary>
/// Returns a <see cref="TypeConverterResult" /> with no errors.
/// </summary>
public static TypeConverterResult FromSuccess (object value) =>
public static TypeConverterResult FromSuccess(object value) =>
new TypeConverterResult(value, null, null);
/// <summary>
/// Returns a <see cref="TypeConverterResult" /> with <see cref="InteractionCommandError.Exception" /> and the <see cref="Exception.Message"/>.
/// </summary>
/// <param name="exception">The exception that caused the type convertion to fail.</param>
public static TypeConverterResult FromError (Exception exception) =>
public static TypeConverterResult FromError(Exception exception) =>
new TypeConverterResult(null, InteractionCommandError.Exception, exception.Message);
/// <summary>
@@ -46,16 +46,16 @@ namespace Discord.Interactions
/// </summary>
/// <param name="error">The type of error.</param>
/// <param name="reason">The reason of failure.</param>
public static TypeConverterResult FromError (InteractionCommandError error, string reason) =>
public static TypeConverterResult FromError(InteractionCommandError error, string reason) =>
new TypeConverterResult(null, error, reason);
/// <summary>
/// Returns a <see cref="PreconditionResult" /> with the specified <paramref name="result"/> type.
/// </summary>
/// <param name="result">The result of failure.</param>
public static TypeConverterResult FromError (IResult result) =>
public static TypeConverterResult FromError(IResult result) =>
new TypeConverterResult(null, result.Error, result.ErrorReason);
public override string ToString ( ) => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
public override string ToString() => IsSuccess ? "Success" : $"{Error}: {ErrorReason}";
}
}

View File

@@ -34,7 +34,7 @@ namespace Discord.Interactions
{
var objs = new List<object>();
if(_typeReader is not null && option.Values.Count > 0)
if (_typeReader is not null && option.Values.Count > 0)
foreach (var value in option.Values)
{
var result = await _typeReader.ReadAsync(context, value, services).ConfigureAwait(false);
@@ -52,13 +52,13 @@ namespace Discord.Interactions
foreach (var user in option.Users)
users[user.Id] = user;
if(option.Members is not null)
foreach(var member in option.Members)
if (option.Members is not null)
foreach (var member in option.Members)
users[member.Id] = member;
objs.AddRange(users.Values);
if(option.Roles is not null)
if (option.Roles is not null)
objs.AddRange(option.Roles);
if (option.Channels is not null)

View File

@@ -9,7 +9,7 @@ namespace Discord.Interactions
{
internal abstract class DefaultEntityTypeConverter<T> : TypeConverter<T> where T : class
{
public override Task<TypeConverterResult> ReadAsync (IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
public override Task<TypeConverterResult> ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
{
var value = option.Value as T;
@@ -27,19 +27,19 @@ namespace Discord.Interactions
internal class DefaultRoleConverter<T> : DefaultEntityTypeConverter<T> where T : class, IRole
{
public override ApplicationCommandOptionType GetDiscordType ( ) => ApplicationCommandOptionType.Role;
public override ApplicationCommandOptionType GetDiscordType() => ApplicationCommandOptionType.Role;
}
internal class DefaultUserConverter<T> : DefaultEntityTypeConverter<T> where T : class, IUser
{
public override ApplicationCommandOptionType GetDiscordType ( ) => ApplicationCommandOptionType.User;
public override ApplicationCommandOptionType GetDiscordType() => ApplicationCommandOptionType.User;
}
internal class DefaultChannelConverter<T> : DefaultEntityTypeConverter<T> where T : class, IChannel
{
private readonly List<ChannelType> _channelTypes;
public DefaultChannelConverter ( )
public DefaultChannelConverter()
{
var type = typeof(T);
@@ -73,9 +73,9 @@ namespace Discord.Interactions
};
}
public override ApplicationCommandOptionType GetDiscordType ( ) => ApplicationCommandOptionType.Channel;
public override ApplicationCommandOptionType GetDiscordType() => ApplicationCommandOptionType.Channel;
public override void Write (ApplicationCommandOptionProperties properties, IParameterInfo parameter)
public override void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameter)
{
if (_channelTypes is not null)
properties.ChannelTypes = _channelTypes;
@@ -84,6 +84,6 @@ namespace Discord.Interactions
internal class DefaultMentionableConverter<T> : DefaultEntityTypeConverter<T> where T : class, IMentionable
{
public override ApplicationCommandOptionType GetDiscordType ( ) => ApplicationCommandOptionType.Mentionable;
public override ApplicationCommandOptionType GetDiscordType() => ApplicationCommandOptionType.Mentionable;
}
}

View File

@@ -6,7 +6,7 @@ namespace Discord.Interactions
{
internal class DefaultValueConverter<T> : TypeConverter<T> where T : IConvertible
{
public override ApplicationCommandOptionType GetDiscordType ( )
public override ApplicationCommandOptionType GetDiscordType()
{
switch (Type.GetTypeCode(typeof(T)))
{
@@ -38,7 +38,7 @@ namespace Discord.Interactions
throw new InvalidOperationException($"Parameter Type {typeof(T).FullName} is not supported by Discord.");
}
}
public override Task<TypeConverterResult> ReadAsync (IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
public override Task<TypeConverterResult> ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
{
object value;

View File

@@ -9,8 +9,8 @@ namespace Discord.Interactions
{
internal sealed class EnumConverter<T> : TypeConverter<T> where T : struct, Enum
{
public override ApplicationCommandOptionType GetDiscordType ( ) => ApplicationCommandOptionType.String;
public override Task<TypeConverterResult> ReadAsync (IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
public override ApplicationCommandOptionType GetDiscordType() => ApplicationCommandOptionType.String;
public override Task<TypeConverterResult> ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
{
if (Enum.TryParse<T>((string)option.Value, out var result))
return Task.FromResult(TypeConverterResult.FromSuccess(result));
@@ -18,7 +18,7 @@ namespace Discord.Interactions
return Task.FromResult(TypeConverterResult.FromError(InteractionCommandError.ConvertFailed, $"Value {option.Value} cannot be converted to {nameof(T)}"));
}
public override void Write (ApplicationCommandOptionProperties properties, IParameterInfo parameterInfo)
public override void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameterInfo)
{
var names = Enum.GetNames(typeof(T));
var members = names.SelectMany(x => typeof(T).GetMember(x)).Where(x => !x.IsDefined(typeof(HideAttribute), true));

View File

@@ -7,10 +7,10 @@ namespace Discord.Interactions
{
internal sealed class TimeSpanConverter : TypeConverter<TimeSpan>
{
public override ApplicationCommandOptionType GetDiscordType ( ) => ApplicationCommandOptionType.String;
public override Task<TypeConverterResult> ReadAsync (IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
public override ApplicationCommandOptionType GetDiscordType() => ApplicationCommandOptionType.String;
public override Task<TypeConverterResult> ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
{
return ( TimeSpan.TryParseExact(( option.Value as string ).ToLowerInvariant(), Formats, CultureInfo.InvariantCulture, out var timeSpan) )
return (TimeSpan.TryParseExact((option.Value as string).ToLowerInvariant(), Formats, CultureInfo.InvariantCulture, out var timeSpan))
? Task.FromResult(TypeConverterResult.FromSuccess(timeSpan))
: Task.FromResult(TypeConverterResult.FromError(InteractionCommandError.ConvertFailed, "Failed to parse TimeSpan"));
}

View File

@@ -296,7 +296,7 @@ namespace Discord.Interactions
throw new InvalidOperationException($"{input.GetType().FullName} isn't a valid component info class");
}
if(modifyModal is not null)
if (modifyModal is not null)
modifyModal(builder);
return builder.Build();

View File

@@ -6,6 +6,6 @@ namespace Discord.Interactions
{
public static EmptyServiceProvider Instance => new EmptyServiceProvider();
public object GetService (Type serviceType) => null;
public object GetService(Type serviceType) => null;
}
}

View File

@@ -21,7 +21,7 @@ namespace Discord.Interactions
/// A Task representing the asyncronous waiting operation. If the user responded in the given amount of time, Task result contains the user response,
/// otherwise the Task result is <see langword="null"/>.
/// </returns>
public static async Task<SocketInteraction> WaitForInteractionAsync (BaseSocketClient client, TimeSpan timeout,
public static async Task<SocketInteraction> WaitForInteractionAsync(BaseSocketClient client, TimeSpan timeout,
Predicate<SocketInteraction> predicate, CancellationToken cancellationToken = default)
{
var tcs = new TaskCompletionSource<SocketInteraction>();
@@ -34,7 +34,7 @@ namespace Discord.Interactions
tcs.SetResult(null);
});
cancellationToken.Register(( ) => tcs.SetCanceled());
cancellationToken.Register(() => tcs.SetCanceled());
client.InteractionCreated += HandleInteraction;
var result = await tcs.Task.ConfigureAwait(false);
@@ -42,7 +42,7 @@ namespace Discord.Interactions
return result;
Task HandleInteraction (SocketInteraction interaction)
Task HandleInteraction(SocketInteraction interaction)
{
if (predicate(interaction))
{
@@ -68,7 +68,7 @@ namespace Discord.Interactions
public static Task<SocketInteraction> WaitForMessageComponentAsync(BaseSocketClient client, IUserMessage fromMessage, TimeSpan timeout,
CancellationToken cancellationToken = default)
{
bool Predicate (SocketInteraction interaction) => interaction is SocketMessageComponent component &&
bool Predicate(SocketInteraction interaction) => interaction is SocketMessageComponent component &&
component.Message.Id == fromMessage.Id;
return WaitForInteractionAsync(client, timeout, Predicate, cancellationToken);
@@ -86,7 +86,7 @@ namespace Discord.Interactions
/// A Task representing the asyncronous waiting operation with a <see cref="bool"/> result,
/// the result is <see langword="false"/> if the user declined the prompt or didnt answer in time, <see langword="true"/> if the user confirmed the prompt.
/// </returns>
public static async Task<bool> ConfirmAsync (BaseSocketClient client, IMessageChannel channel, TimeSpan timeout, string message = null,
public static async Task<bool> ConfirmAsync(BaseSocketClient client, IMessageChannel channel, TimeSpan timeout, string message = null,
CancellationToken cancellationToken = default)
{
message ??= "Would you like to continue?";

View File

@@ -10,10 +10,10 @@ namespace Discord.Interactions
internal static class ReflectionUtils<T>
{
private static readonly TypeInfo ObjectTypeInfo = typeof(object).GetTypeInfo();
internal static T CreateObject (TypeInfo typeInfo, InteractionService commandService, IServiceProvider services = null) =>
internal static T CreateObject(TypeInfo typeInfo, InteractionService commandService, IServiceProvider services = null) =>
CreateBuilder(typeInfo, commandService)(services);
internal static Func<IServiceProvider, T> CreateBuilder (TypeInfo typeInfo, InteractionService commandService)
internal static Func<IServiceProvider, T> CreateBuilder(TypeInfo typeInfo, InteractionService commandService)
{
var constructor = GetConstructor(typeInfo);
var parameters = constructor.GetParameters();
@@ -32,7 +32,7 @@ namespace Discord.Interactions
};
}
private static T InvokeConstructor (ConstructorInfo constructor, object[] args, TypeInfo ownerType)
private static T InvokeConstructor(ConstructorInfo constructor, object[] args, TypeInfo ownerType)
{
try
{
@@ -43,7 +43,7 @@ namespace Discord.Interactions
throw new Exception($"Failed to create \"{ownerType.FullName}\".", ex);
}
}
private static ConstructorInfo GetConstructor (TypeInfo ownerType)
private static ConstructorInfo GetConstructor(TypeInfo ownerType)
{
var constructors = ownerType.DeclaredConstructors.Where(x => !x.IsStatic).ToArray();
if (constructors.Length == 0)
@@ -52,7 +52,7 @@ namespace Discord.Interactions
throw new InvalidOperationException($"Multiple constructors found for \"{ownerType.FullName}\".");
return constructors[0];
}
private static PropertyInfo[] GetProperties (TypeInfo ownerType)
private static PropertyInfo[] GetProperties(TypeInfo ownerType)
{
var result = new List<PropertyInfo>();
while (ownerType != ObjectTypeInfo)
@@ -66,7 +66,7 @@ namespace Discord.Interactions
}
return result.ToArray();
}
private static object GetMember (InteractionService commandService, IServiceProvider services, Type memberType, TypeInfo ownerType)
private static object GetMember(InteractionService commandService, IServiceProvider services, Type memberType, TypeInfo ownerType)
{
if (memberType == typeof(InteractionService))
return commandService;
@@ -78,7 +78,7 @@ namespace Discord.Interactions
throw new InvalidOperationException($"Failed to create \"{ownerType.FullName}\", dependency \"{memberType.Name}\" was not found.");
}
internal static Func<T, object[], Task> CreateMethodInvoker (MethodInfo methodInfo)
internal static Func<T, object[], Task> CreateMethodInvoker(MethodInfo methodInfo)
{
var parameters = methodInfo.GetParameters();
var paramsExp = new Expression[parameters.Length];
@@ -105,7 +105,7 @@ namespace Discord.Interactions
/// <summary>
/// Create a type initializer using compiled lambda expressions
/// </summary>
internal static Func<IServiceProvider, T> CreateLambdaBuilder (TypeInfo typeInfo, InteractionService commandService)
internal static Func<IServiceProvider, T> CreateLambdaBuilder(TypeInfo typeInfo, InteractionService commandService)
{
var constructor = GetConstructor(typeInfo);
var parameters = constructor.GetParameters();