Browse Source

Update property names and summaries

pull/1958/head
quin lynch 3 years ago
parent
commit
ca101c5c2b
8 changed files with 98 additions and 83 deletions
  1. +3
    -3
      src/Discord.Net.Core/Entities/Interactions/ApplicationCommandOption.cs
  2. +2
    -2
      src/Discord.Net.Core/Entities/Interactions/ApplicationCommandProperties.cs
  3. +1
    -1
      src/Discord.Net.Core/Entities/Interactions/ContextMenus/MessageCommandBuilder.cs
  4. +1
    -1
      src/Discord.Net.Core/Entities/Interactions/ContextMenus/UserCommandBuilder.cs
  5. +73
    -59
      src/Discord.Net.Core/Entities/Interactions/SlashCommands/SlashCommandBuilder.cs
  6. +3
    -2
      src/Discord.Net.Core/Entities/Interactions/SlashCommands/SlashCommandProperties.cs
  7. +3
    -3
      src/Discord.Net.Rest/API/Common/ApplicationCommandOption.cs
  8. +12
    -12
      src/Discord.Net.Rest/Entities/Interactions/InteractionHelper.cs

+ 3
- 3
src/Discord.Net.Core/Entities/Interactions/ApplicationCommandOption.cs View File

@@ -55,17 +55,17 @@ namespace Discord
/// <summary>
/// Gets or sets whether or not this options is the first required option for the user to complete. only one option can be default.
/// </summary>
public bool? Default { get; set; }
public bool? IsDefault { get; set; }

/// <summary>
/// Gets or sets if the option is required.
/// </summary>
public bool? Required { get; set; }
public bool? IsRequired { get; set; }

/// <summary>
/// Gets or sets whether or not this option supports autocomplete.
/// </summary>
public bool Autocomplete { get; set; }
public bool IsAutocomplete { get; set; }

/// <summary>
/// Gets or sets the smallest number value the user can input.


+ 2
- 2
src/Discord.Net.Core/Entities/Interactions/ApplicationCommandProperties.cs View File

@@ -13,9 +13,9 @@ namespace Discord
public Optional<string> Name { get; set; }

/// <summary>
/// Gets whether the command is enabled by default when the app is added to a guild. Default is <see langword="true"/>.
/// Gets or sets whether the command is enabled by default when the app is added to a guild. Default is <see langword="true"/>
/// </summary>
public Optional<bool> DefaultPermission { get; set; }
public Optional<bool> IsDefaultPermission { get; set; }

internal ApplicationCommandProperties() { }
}


+ 1
- 1
src/Discord.Net.Core/Entities/Interactions/ContextMenus/MessageCommandBuilder.cs View File

@@ -44,7 +44,7 @@ namespace Discord
var props = new MessageCommandProperties
{
Name = Name,
DefaultPermission = IsDefaultPermission
IsDefaultPermission = IsDefaultPermission
};

return props;


+ 1
- 1
src/Discord.Net.Core/Entities/Interactions/ContextMenus/UserCommandBuilder.cs View File

@@ -42,7 +42,7 @@ namespace Discord
var props = new UserCommandProperties
{
Name = Name,
DefaultPermission = IsDefaultPermission
IsDefaultPermission = IsDefaultPermission
};

return props;


+ 73
- 59
src/Discord.Net.Core/Entities/Interactions/SlashCommands/SlashCommandBuilder.cs View File

@@ -6,7 +6,7 @@ using System.Text.RegularExpressions;
namespace Discord
{
/// <summary>
/// A class used to build slash commands.
/// Represents a class used to build slash commands.
/// </summary>
public class SlashCommandBuilder
{
@@ -24,7 +24,7 @@ namespace Discord
public const int MaxOptionsCount = 25;

/// <summary>
/// The name of this slash command.
/// Gets or sets the name of this slash command.
/// </summary>
public string Name
{
@@ -45,8 +45,7 @@ namespace Discord
}

/// <summary>
/// A 1-100 length description of this slash command.
/// The description is not allowed to be null.
/// Gets or sets a 1-100 length description of this slash command
/// </summary>
public string Description
{
@@ -75,9 +74,9 @@ namespace Discord
}

/// <summary>
/// Whether the command is enabled by default when the app is added to a guild
/// Gets or sets whether the command is enabled by default when the app is added to a guild
/// </summary>
public bool DefaultPermission { get; set; } = true;
public bool IsDefaultPermission { get; set; } = true;

private string _name;
private string _description;
@@ -86,21 +85,21 @@ namespace Discord
/// <summary>
/// Build the current builder into a <see cref="SlashCommandProperties"/> class.
/// </summary>
/// <returns>A <see cref="SlashCommandProperties"/> that can be used to create slash commands over rest.</returns>
/// <returns>A <see cref="SlashCommandProperties"/> that can be used to create slash commands.</returns>
public SlashCommandProperties Build()
{
var props = new SlashCommandProperties
{
Name = Name,
Description = Description,
DefaultPermission = DefaultPermission
IsDefaultPermission = IsDefaultPermission,
};

if (Options != null && Options.Any())
{
var options = new List<ApplicationCommandOptionProperties>();

Options.OrderByDescending(x => x.Required ?? false).ToList().ForEach(x => options.Add(x.Build()));
Options.OrderByDescending(x => x.IsRequired ?? false).ToList().ForEach(x => options.Add(x.Build()));

props.Options = options;
}
@@ -139,7 +138,7 @@ namespace Discord
/// <returns>The current builder.</returns>
public SlashCommandBuilder WithDefaultPermission(bool value)
{
DefaultPermission = value;
IsDefaultPermission = value;
return this;
}

@@ -149,7 +148,7 @@ namespace Discord
/// <param name="name">The name of the option to add.</param>
/// <param name="type">The type of this option.</param>
/// <param name="description">The description of this option.</param>
/// <param name="required">If this option is required for this command.</param>
/// <param name="isRequired">If this option is required for this command.</param>
/// <param name="isDefault">If this option is the default option.</param>
/// <param name="isAutocomplete">If this option is set to autocomplete.</param>
/// <param name="options">The options of the option to add.</param>
@@ -159,7 +158,7 @@ namespace Discord
/// <param name="maxValue">The largest number value the user can input.</param>
/// <returns>The current builder.</returns>
public SlashCommandBuilder AddOption(string name, ApplicationCommandOptionType type,
string description, bool? required = null, bool? isDefault = null, bool isAutocomplete = false, double? minValue = null, double? maxValue = null,
string description, bool? isRequired = null, bool? isDefault = null, bool isAutocomplete = false, double? minValue = null, double? maxValue = null,
List<SlashCommandOptionBuilder> options = null, List<ChannelType> channelTypes = null, params ApplicationCommandOptionChoiceProperties[] choices)
{
// Make sure the name matches the requirements from discord
@@ -178,18 +177,18 @@ namespace Discord
Preconditions.AtMost(description.Length, MaxDescriptionLength, nameof(description));

// make sure theres only one option with default set to true
if (isDefault == true && Options?.Any(x => x.Default == true) == true)
if (isDefault == true && Options?.Any(x => x.IsDefault == true) == true)
throw new ArgumentException("There can only be one command option with default set to true!", nameof(isDefault));

var option = new SlashCommandOptionBuilder
{
Name = name,
Description = description,
Required = required,
Default = isDefault,
IsRequired = isRequired,
IsDefault = isDefault,
Options = options,
Type = type,
Autocomplete = isAutocomplete,
IsAutocomplete = isAutocomplete,
Choices = (choices ?? Array.Empty<ApplicationCommandOptionChoiceProperties>()).ToList(),
ChannelTypes = channelTypes,
MinValue = minValue,
@@ -199,16 +198,6 @@ namespace Discord
return AddOption(option);
}

/// <summary>
/// Adds an option to the current slash command.
/// </summary>
/// <param name="name">The name of the option to add.</param>
/// <param name="type">The type of this option.</param>
/// <param name="description">The description of this option.</param>
/// <returns>The current builder.</returns>
public SlashCommandBuilder AddOption(string name, ApplicationCommandOptionType type, string description)
=> AddOption(name, type, description, options: null, choices: null);

/// <summary>
/// Adds an option to this slash command.
/// </summary>
@@ -313,17 +302,17 @@ namespace Discord
/// <summary>
/// Gets or sets whether or not this options is the first required option for the user to complete. only one option can be default.
/// </summary>
public bool? Default { get; set; }
public bool? IsDefault { get; set; }

/// <summary>
/// Gets or sets if the option is required.
/// </summary>
public bool? Required { get; set; }
public bool? IsRequired { get; set; } = null;

/// <summary>
/// Gets or sets whether or not this option supports autocomplete.
/// </summary>
public bool Autocomplete { get; set; }
public bool IsAutocomplete { get; set; }

/// <summary>
/// Gets or sets the smallest number value the user can input.
@@ -375,14 +364,14 @@ namespace Discord
{
Name = Name,
Description = Description,
Default = Default,
Required = Required,
IsDefault = IsDefault,
IsRequired = IsRequired,
Type = Type,
Options = Options?.Count > 0
? Options.OrderByDescending(x => x.Required ?? false).Select(x => x.Build()).ToList()
? Options.OrderByDescending(x => x.IsRequired ?? false).Select(x => x.Build()).ToList()
: new List<ApplicationCommandOptionProperties>(),
Choices = Choices,
Autocomplete = Autocomplete,
IsAutocomplete = IsAutocomplete,
ChannelTypes = ChannelTypes,
MinValue = MinValue,
MaxValue = MaxValue
@@ -395,7 +384,7 @@ namespace Discord
/// <param name="name">The name of the option to add.</param>
/// <param name="type">The type of this option.</param>
/// <param name="description">The description of this option.</param>
/// <param name="required">If this option is required for this command.</param>
/// <param name="isRequired">If this option is required for this command.</param>
/// <param name="isDefault">If this option is the default option.</param>
/// <param name="isAutocomplete">If this option supports autocomplete.</param>
/// <param name="options">The options of the option to add.</param>
@@ -424,16 +413,16 @@ namespace Discord
Preconditions.AtMost(description.Length, SlashCommandBuilder.MaxDescriptionLength, nameof(description));

// make sure theres only one option with default set to true
if (isDefault && Options?.Any(x => x.Default == true) == true)
if (isDefault && Options?.Any(x => x.IsDefault == true) == true)
throw new ArgumentException("There can only be one command option with default set to true!", nameof(isDefault));

var option = new SlashCommandOptionBuilder
{
Name = name,
Description = description,
Required = required,
Default = isDefault,
Autocomplete = isAutocomplete,
IsRequired = required,
IsDefault = isDefault,
IsAutocomplete = isAutocomplete,
MinValue = minValue,
MaxValue = maxValue,
Options = options,
@@ -470,23 +459,40 @@ namespace Discord
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder AddChoice(string name, int value)
{
Choices ??= new List<ApplicationCommandOptionChoiceProperties>();

if (Choices.Count >= MaxChoiceCount)
throw new InvalidOperationException($"Cannot add more than {MaxChoiceCount} choices!");

Preconditions.NotNull(name, nameof(name));
return AddChoiceInternal(name, value);
}

Preconditions.AtLeast(name.Length, 1, nameof(name));
Preconditions.AtMost(name.Length, 100, nameof(name));
/// <summary>
/// Adds a choice to the current option.
/// </summary>
/// <param name="name">The name of the choice.</param>
/// <param name="value">The value of the choice.</param>
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder AddChoice(string name, string value)
{
return AddChoiceInternal(name, value);
}

Choices.Add(new ApplicationCommandOptionChoiceProperties
{
Name = name,
Value = value
});
/// <summary>
/// Adds a choice to the current option.
/// </summary>
/// <param name="name">The name of the choice.</param>
/// <param name="value">The value of the choice.</param>
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder AddChoice(string name, double value)
{
return AddChoiceInternal(name, value);
}

return this;
/// <summary>
/// Adds a choice to the current option.
/// </summary>
/// <param name="name">The name of the choice.</param>
/// <param name="value">The value of the choice.</param>
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder AddChoice(string name, float value)
{
return AddChoiceInternal(name, value);
}

/// <summary>
@@ -495,7 +501,12 @@ namespace Discord
/// <param name="name">The name of the choice.</param>
/// <param name="value">The value of the choice.</param>
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder AddChoice(string name, string value)
public SlashCommandOptionBuilder AddChoice(string name, long value)
{
return AddChoiceInternal(name, value);
}

private SlashCommandOptionBuilder AddChoiceInternal(string name, object value)
{
Choices ??= new List<ApplicationCommandOptionChoiceProperties>();

@@ -508,8 +519,11 @@ namespace Discord
Preconditions.AtLeast(name.Length, 1, nameof(name));
Preconditions.AtMost(name.Length, 100, nameof(name));

Preconditions.AtLeast(value.Length, 1, nameof(value));
Preconditions.AtMost(value.Length, 100, nameof(value));
if (value is string str)
{
Preconditions.AtLeast(str.Length, 1, nameof(value));
Preconditions.AtMost(str.Length, 100, nameof(value));
}

Choices.Add(new ApplicationCommandOptionChoiceProperties
{
@@ -564,7 +578,7 @@ namespace Discord
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder WithRequired(bool value)
{
Required = value;
IsRequired = value;
return this;
}

@@ -575,7 +589,7 @@ namespace Discord
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder WithDefault(bool value)
{
Default = value;
IsDefault = value;
return this;
}

@@ -586,7 +600,7 @@ namespace Discord
/// <returns>The current builder.</returns>
public SlashCommandOptionBuilder WithAutocomplete(bool value)
{
Autocomplete = value;
IsAutocomplete = value;
return this;
}

@@ -600,7 +614,7 @@ namespace Discord
MinValue = value;
return this;
}
/// <summary>
/// Sets the current builders max value field.
/// </summary>


+ 3
- 2
src/Discord.Net.Core/Entities/Interactions/SlashCommands/SlashCommandProperties.cs View File

@@ -3,13 +3,14 @@ using System.Collections.Generic;
namespace Discord
{
/// <summary>
/// A class used to create slash commands.
/// Represents a class used to create slash commands.
/// </summary>
public class SlashCommandProperties : ApplicationCommandProperties
{
internal override ApplicationCommandType Type => ApplicationCommandType.Slash;

/// <summary>
/// The description of this command.
/// Gets or sets the discription of this command.
/// </summary>
public Optional<string> Description { get; set; }



+ 3
- 3
src/Discord.Net.Rest/API/Common/ApplicationCommandOption.cs View File

@@ -71,9 +71,9 @@ namespace Discord.API

Options = option.Options?.Select(x => new ApplicationCommandOption(x)).ToArray() ?? Optional<ApplicationCommandOption[]>.Unspecified;

Required = option.Required ?? Optional<bool>.Unspecified;
Required = option.IsRequired ?? Optional<bool>.Unspecified;

Default = option.Default ?? Optional<bool>.Unspecified;
Default = option.IsDefault ?? Optional<bool>.Unspecified;
MinValue = option.MinValue ?? Optional<double>.Unspecified;
MaxValue = option.MaxValue ?? Optional<double>.Unspecified;

@@ -82,7 +82,7 @@ namespace Discord.API
Name = option.Name;
Type = option.Type;
Description = option.Description;
Autocomplete = option.Autocomplete;
Autocomplete = option.IsAutocomplete;
}
}
}

+ 12
- 12
src/Discord.Net.Rest/Entities/Interactions/InteractionHelper.cs View File

@@ -81,8 +81,8 @@ namespace Discord.Rest
{
Name = arg.Name.Value,
Type = arg.Type,
DefaultPermission = arg.DefaultPermission.IsSpecified
? arg.DefaultPermission.Value
DefaultPermission = arg.IsDefaultPermission.IsSpecified
? arg.IsDefaultPermission.Value
: Optional<bool>.Unspecified
};

@@ -115,8 +115,8 @@ namespace Discord.Rest
{
Name = arg.Name.Value,
Type = arg.Type,
DefaultPermission = arg.DefaultPermission.IsSpecified
? arg.DefaultPermission.Value
DefaultPermission = arg.IsDefaultPermission.IsSpecified
? arg.IsDefaultPermission.Value
: Optional<bool>.Unspecified
};

@@ -152,8 +152,8 @@ namespace Discord.Rest
{
Name = arg.Name.Value,
Type = arg.Type,
DefaultPermission = arg.DefaultPermission.IsSpecified
? arg.DefaultPermission.Value
DefaultPermission = arg.IsDefaultPermission.IsSpecified
? arg.IsDefaultPermission.Value
: Optional<bool>.Unspecified
};

@@ -212,8 +212,8 @@ namespace Discord.Rest
var model = new ModifyApplicationCommandParams
{
Name = args.Name,
DefaultPermission = args.DefaultPermission.IsSpecified
? args.DefaultPermission.Value
DefaultPermission = args.IsDefaultPermission.IsSpecified
? args.IsDefaultPermission.Value
: Optional<bool>.Unspecified
};

@@ -266,8 +266,8 @@ namespace Discord.Rest
{
Name = arg.Name.Value,
Type = arg.Type,
DefaultPermission = arg.DefaultPermission.IsSpecified
? arg.DefaultPermission.Value
DefaultPermission = arg.IsDefaultPermission.IsSpecified
? arg.IsDefaultPermission.Value
: Optional<bool>.Unspecified
};

@@ -299,8 +299,8 @@ namespace Discord.Rest
var model = new ModifyApplicationCommandParams
{
Name = arg.Name,
DefaultPermission = arg.DefaultPermission.IsSpecified
? arg.DefaultPermission.Value
DefaultPermission = arg.IsDefaultPermission.IsSpecified
? arg.IsDefaultPermission.Value
: Optional<bool>.Unspecified
};



Loading…
Cancel
Save