Browse Source

Changes on Emote/Emoji and SelectMenu (#49)

* Refactor emojis/emotes & SelectMenu

* Update Emoji.cs

* Continue emoji refactor

* Remove WithLabel from example of SelectMenuBuilder

* Remove EmojiUtils and move it stuff to Emoji

* Revert 0fbf1000da

* Revert "Update Emoji.cs" and add Parse method

This reverts commit f297dcfc43.

* Partial revert 3c27ab36c9
pull/1923/head
Nikon GitHub 3 years ago
parent
commit
333f36eeb8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 5996 additions and 73 deletions
  1. +0
    -1
      README.md
  2. +33
    -16
      src/Discord.Net.Core/Discord.Net.Core.xml
  3. +5916
    -8
      src/Discord.Net.Core/Entities/Emotes/Emoji.cs
  4. +30
    -43
      src/Discord.Net.Core/Entities/Interactions/Message Components/ComponentBuilder.cs
  5. +7
    -1
      src/Discord.Net.Core/Entities/Interactions/Message Components/SelectMenu.cs
  6. +4
    -0
      src/Discord.Net.Rest/API/Common/SelectMenuComponent.cs
  7. +3
    -2
      src/Discord.Net.Rest/Entities/Messages/RestMessage.cs
  8. +3
    -2
      src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs

+ 0
- 1
README.md View File

@@ -96,7 +96,6 @@ Theres a new field in all `SendMessageAsync` functions that takes in a `MessageC
var builder = new ComponentBuilder()
.WithSelectMenu(new SelectMenuBuilder()
.WithCustomId("id_2")
.WithLabel("Select menu!")
.WithPlaceholder("This is a placeholder")
.WithOptions(new List<SelectMenuOptionBuilder>()
{


+ 33
- 16
src/Discord.Net.Core/Discord.Net.Core.xml View File

@@ -2106,7 +2106,7 @@
</member>
<member name="M:Discord.Emoji.ToString">
<summary>
Gets the Unicode representation of this emote.
Gets the Unicode representation of this emoji.
</summary>
<returns>
A string that resolves to <see cref="P:Discord.Emoji.Name"/>.
@@ -2124,6 +2124,17 @@
</summary>
<param name="other">The object to compare with the current object.</param>
</member>
<member name="M:Discord.Emoji.TryParse(System.String,Discord.Emoji@)">
<summary> Tries to parse an <see cref="T:Discord.Emoji"/> from its raw format. </summary>
<param name="text">The raw encoding of an emoji. For example: <code>:heart: or ❤</code></param>
<param name="result">An emoji.</param>
</member>
<member name="M:Discord.Emoji.Parse(System.String)">
<summary> Parse an <see cref="T:Discord.Emoji"/> from its raw format. </summary>
<param name="text">The raw encoding of an emoji. For example: <c>:heart: or ❤</c></param>
<param name="result">An emoji.</param>
<exception cref="T:System.FormatException">String is not emoji or unicode!</exception>
</member>
<member name="M:Discord.Emoji.GetHashCode">
<inheritdoc />
</member>
@@ -4361,7 +4372,7 @@
Gets or sets the Action Rows for this Component Builder.
</summary>
</member>
<member name="M:Discord.ComponentBuilder.WithSelectMenu(System.String,System.String,System.Collections.Generic.List{Discord.SelectMenuOptionBuilder},System.String,System.Int32,System.Int32,System.Int32)">
<member name="M:Discord.ComponentBuilder.WithSelectMenu(System.String,System.String,System.Collections.Generic.List{Discord.SelectMenuOptionBuilder},System.String,System.Int32,System.Int32,System.Boolean,System.Int32)">
<summary>
Adds a <see cref="T:Discord.SelectMenuBuilder"/> to the first row, if the first row cannot
accept the component then it will add it to a row that can
@@ -4372,6 +4383,7 @@
<param name="placeholder">The placeholder of the menu.</param>
<param name="minValues">The min values of the placeholder.</param>
<param name="maxValues">The max values of the placeholder.</param>
<param name="disabled">Whether or not the menu is disabled.</param>
<param name="row">The row to add the menu to.</param>
<returns></returns>
</member>
@@ -4607,11 +4619,6 @@
The maximum number of options a <see cref="T:Discord.SelectMenu"/> can have.
</summary>
</member>
<member name="P:Discord.SelectMenuBuilder.Label">
<summary>
Gets or sets the label of the current select menu.
</summary>
</member>
<member name="P:Discord.SelectMenuBuilder.CustomId">
<summary>
Gets or sets the custom id of the current select menu.
@@ -4637,6 +4644,11 @@
Gets or sets a collection of <see cref="T:Discord.SelectMenuOptionBuilder"/> for this current select menu.
</summary>
</member>
<member name="P:Discord.SelectMenuBuilder.Disabled">
<summary>
Gets or sets whether the current menu is disabled.
</summary>
</member>
<member name="M:Discord.SelectMenuBuilder.#ctor">
<summary>
Creates a new instance of a <see cref="T:Discord.SelectMenuBuilder"/>.
@@ -4649,15 +4661,6 @@
<param name="customId">The custom id of this select menu.</param>
<param name="options">The options for this select menu.</param>
</member>
<member name="M:Discord.SelectMenuBuilder.WithLabel(System.String)">
<summary>
Sets the field label.
</summary>
<param name="label">The value to set the field label to.</param>
<returns>
The current builder.
</returns>
</member>
<member name="M:Discord.SelectMenuBuilder.WithCustomId(System.String)">
<summary>
Sets the field CustomId.
@@ -4703,6 +4706,15 @@
The current builder.
</returns>
</member>
<member name="M:Discord.SelectMenuBuilder.WithDisabled(System.Boolean)">
<summary>
Sets whether the current menu is disabled.
</summary>
<param name="disabled">Whether the current menu is disabled or not.</param>
<returns>
The current builder.
</returns>
</member>
<member name="M:Discord.SelectMenuBuilder.Build">
<summary>
Builds a <see cref="T:Discord.SelectMenu"/>
@@ -4880,6 +4892,11 @@
The maximum number of items that can be chosen; default 1, max 25
</summary>
</member>
<member name="P:Discord.SelectMenu.Disabled">
<summary>
Whether this menu is disabled or not.
</summary>
</member>
<member name="T:Discord.SelectMenuOption">
<summary>
Represents a choice for a <see cref="T:Discord.SelectMenu"/>.


+ 5916
- 8
src/Discord.Net.Core/Entities/Emotes/Emoji.cs
File diff suppressed because it is too large
View File


+ 30
- 43
src/Discord.Net.Core/Entities/Interactions/Message Components/ComponentBuilder.cs View File

@@ -1,8 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Discord
{
@@ -54,18 +52,19 @@ namespace Discord
/// <param name="placeholder">The placeholder of the menu.</param>
/// <param name="minValues">The min values of the placeholder.</param>
/// <param name="maxValues">The max values of the placeholder.</param>
/// <param name="disabled">Whether or not the menu is disabled.</param>
/// <param name="row">The row to add the menu to.</param>
/// <returns></returns>
public ComponentBuilder WithSelectMenu(string label, string customId, List<SelectMenuOptionBuilder> options,
string placeholder = null, int minValues = 1, int maxValues = 1, int row = 0)
string placeholder = null, int minValues = 1, int maxValues = 1, bool disabled = false, int row = 0)
{
return WithSelectMenu(new SelectMenuBuilder()
.WithLabel(label)
.WithCustomId(customId)
.WithOptions(options)
.WithPlaceholder(placeholder)
.WithMaxValues(maxValues)
.WithMinValues(minValues),
.WithMinValues(minValues)
.WithDisabled(disabled),
row);
}

@@ -557,22 +556,6 @@ namespace Discord
/// </summary>
public const int MaxOptionCount = 25;

/// <summary>
/// Gets or sets the label of the current select menu.
/// </summary>
public string Label
{
get => _label;
set
{
if (value != null)
if (value.Length > ComponentBuilder.MaxLabelLength)
throw new ArgumentException(message: $"Button label must be {ComponentBuilder.MaxLabelLength} characters or less!", paramName: nameof(Label));

_label = value;
}
}

/// <summary>
/// Gets or sets the custom id of the current select menu.
/// </summary>
@@ -608,11 +591,11 @@ namespace Discord
/// </summary>
public int MinValues
{
get => _minvalues;
get => _minValues;
set
{
Preconditions.LessThan(value, MaxValuesCount, nameof(MinValues));
_minvalues = value;
_minValues = value;
}
}

@@ -621,11 +604,11 @@ namespace Discord
/// </summary>
public int MaxValues
{
get => _maxvalues;
get => _maxValues;
set
{
Preconditions.LessThan(value, MaxValuesCount, nameof(MaxValues));
_maxvalues = value;
_maxValues = value;
}
}

@@ -644,11 +627,15 @@ namespace Discord
}
}

/// <summary>
/// Gets or sets whether the current menu is disabled.
/// </summary>
public bool Disabled { get; set; }

private List<SelectMenuOptionBuilder> _options;
private int _minvalues = 1;
private int _maxvalues = 1;
private int _minValues = 1;
private int _maxValues = 1;
private string _placeholder;
private string _label;
private string _customId;

/// <summary>
@@ -667,19 +654,6 @@ namespace Discord
this.Options = options;
}

/// <summary>
/// Sets the field label.
/// </summary>
/// <param name="label">The value to set the field label to.</param>
/// <returns>
/// The current builder.
/// </returns>
public SelectMenuBuilder WithLabel(string label)
{
this.Label = label;
return this;
}

/// <summary>
/// Sets the field CustomId.
/// </summary>
@@ -745,15 +719,28 @@ namespace Discord
return this;
}

/// <summary>
/// Sets whether the current menu is disabled.
/// </summary>
/// <param name="disabled">Whether the current menu is disabled or not.</param>
/// <returns>
/// The current builder.
/// </returns>
public SelectMenuBuilder WithDisabled(bool disabled)
{
this.Disabled = disabled;
return this;
}

/// <summary>
/// Builds a <see cref="SelectMenu"/>
/// </summary>
/// <returns>The newly built <see cref="SelectMenu"/></returns>
public SelectMenu Build()
{
var opt = this.Options?.Select(x => x.Build()).ToList();
var options = this.Options?.Select(x => x.Build()).ToList();

return new SelectMenu(this.CustomId, opt, this.Placeholder, this.MinValues, this.MaxValues);
return new SelectMenu(this.CustomId, options, this.Placeholder, this.MinValues, this.MaxValues, this.Disabled);
}
}



+ 7
- 1
src/Discord.Net.Core/Entities/Interactions/Message Components/SelectMenu.cs View File

@@ -39,13 +39,19 @@ namespace Discord
/// </summary>
public int MaxValues { get; }

internal SelectMenu(string customId, List<SelectMenuOption> options, string placeholder, int minValues, int maxValues)
/// <summary>
/// Whether this menu is disabled or not.
/// </summary>
public bool Disabled { get; }

internal SelectMenu(string customId, List<SelectMenuOption> options, string placeholder, int minValues, int maxValues, bool disabled)
{
this.CustomId = customId;
this.Options = options;
this.Placeholder = placeholder;
this.MinValues = minValues;
this.MaxValues = maxValues;
this.Disabled = disabled;
}
}
}

+ 4
- 0
src/Discord.Net.Rest/API/Common/SelectMenuComponent.cs View File

@@ -27,6 +27,9 @@ namespace Discord.API
[JsonProperty("max_values")]
public int MaxValues { get; set; }

[JsonProperty("disabled")]
public bool Disabled { get; set; }

public SelectMenuComponent() { }

public SelectMenuComponent(Discord.SelectMenu component)
@@ -37,6 +40,7 @@ namespace Discord.API
this.Placeholder = component.Placeholder;
this.MinValues = component.MinValues;
this.MaxValues = component.MaxValues;
this.Disabled = component.Disabled;
}
}
}

+ 3
- 2
src/Discord.Net.Rest/Entities/Messages/RestMessage.cs View File

@@ -174,7 +174,8 @@ namespace Discord.Rest
z.Default.ToNullable())).ToList(),
parsed.Placeholder.GetValueOrDefault(),
parsed.MinValues,
parsed.MaxValues
parsed.MaxValues,
parsed.Disabled
);
}
default:
@@ -230,7 +231,7 @@ namespace Discord.Rest
IReadOnlyCollection<IEmbed> IMessage.Embeds => Embeds;
/// <inheritdoc />
IReadOnlyCollection<ulong> IMessage.MentionedUserIds => MentionedUsers.Select(x => x.Id).ToImmutableArray();
/// <inheritdoc/>
IReadOnlyCollection<IMessageComponent> IMessage.Components => Components;



+ 3
- 2
src/Discord.Net.WebSocket/Entities/Messages/SocketMessage.cs View File

@@ -209,7 +209,8 @@ namespace Discord.WebSocket
z.Default.ToNullable())).ToList(),
parsed.Placeholder.GetValueOrDefault(),
parsed.MinValues,
parsed.MaxValues
parsed.MaxValues,
parsed.Disabled
);
}
default:
@@ -252,7 +253,7 @@ namespace Discord.WebSocket
IReadOnlyCollection<ulong> IMessage.MentionedRoleIds => MentionedRoles.Select(x => x.Id).ToImmutableArray();
/// <inheritdoc />
IReadOnlyCollection<ulong> IMessage.MentionedUserIds => MentionedUsers.Select(x => x.Id).ToImmutableArray();
/// <inheritdoc/>
IReadOnlyCollection<IMessageComponent> IMessage.Components => Components;



Loading…
Cancel
Save