Files
Discord.Net/src/Discord.Net.Interactions/Builders/Parameters/IParameterBuilder.cs
Ge ee617d8ef3 Fix typos in comments and documentation (#2608)
* Fix typos in comments and documentations

* Fixes more typo
2023-02-26 20:49:16 +01:00

106 lines
3.4 KiB
C#

using System;
using System.Collections.Generic;
namespace Discord.Interactions.Builders
{
/// <summary>
/// Represent a command builder for creating <see cref="IParameterInfo"/>.
/// </summary>
public interface IParameterBuilder
{
/// <summary>
/// Gets the parent command of this parameter.
/// </summary>
ICommandBuilder Command { get; }
/// <summary>
/// Gets the name of this parameter.
/// </summary>
string Name { get; }
/// <summary>
/// Gets the type of this parameter.
/// </summary>
Type ParameterType { get; }
/// <summary>
/// Gets whether this parameter is required.
/// </summary>
bool IsRequired { get; }
/// <summary>
/// Gets whether this parameter is <see langword="params"/>.
/// </summary>
bool IsParameterArray { get; }
/// <summary>
/// Gets the default value of this parameter.
/// </summary>
object DefaultValue { get; }
/// <summary>
/// Gets a collection of the attributes of this command.
/// </summary>
IReadOnlyCollection<Attribute> Attributes { get; }
/// <summary>
/// Gets a collection of the preconditions of this command.
/// </summary>
IReadOnlyCollection<ParameterPreconditionAttribute> Preconditions { get; }
/// <summary>
/// Sets <see cref="Name"/>.
/// </summary>
/// <param name="name">New value of the <see cref="Name"/>.</param>
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder WithName(string name);
/// <summary>
/// Sets <see cref="ParameterType"/>.
/// </summary>
/// <param name="type">New value of the <see cref="ParameterType"/>.</param>
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder SetParameterType(Type type);
/// <summary>
/// Sets <see cref="IsRequired"/>.
/// </summary>
/// <param name="isRequired">New value of the <see cref="IsRequired"/>.</param>
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder SetRequired(bool isRequired);
/// <summary>
/// Sets <see cref="DefaultValue"/>.
/// </summary>
/// <param name="defaultValue">New value of the <see cref="DefaultValue"/>.</param>
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder SetDefaultValue(object defaultValue);
/// <summary>
/// Adds attributes to <see cref="Attributes"/>.
/// </summary>
/// <param name="attributes">New attributes to be added to <see cref="Attributes"/>.</param>
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder AddAttributes(params Attribute[] attributes);
/// <summary>
/// Adds preconditions to <see cref="Preconditions"/>.
/// </summary>
/// <param name="preconditions">New attributes to be added to <see cref="Preconditions"/>.</param>
/// <returns>
/// The builder instance.
/// </returns>
IParameterBuilder AddPreconditions(params ParameterPreconditionAttribute[] preconditions);
}
}