| @@ -196,6 +196,17 @@ namespace Discord | |||||
| AddField(field); | AddField(field); | ||||
| return this; | return this; | ||||
| } | } | ||||
| public EmbedBuilder AddBlankField(bool inline = false) | |||||
| { | |||||
| var field = new EmbedFieldBuilder() | |||||
| .WithIsInline(inline) | |||||
| .WithName(null) | |||||
| .WithValue(null); | |||||
| AddField(field); | |||||
| return this; | |||||
| } | |||||
| public EmbedBuilder AddField(EmbedFieldBuilder field) | public EmbedBuilder AddField(EmbedFieldBuilder field) | ||||
| { | { | ||||
| if (Fields.Count >= MaxFieldCount) | if (Fields.Count >= MaxFieldCount) | ||||
| @@ -231,6 +242,8 @@ namespace Discord | |||||
| { | { | ||||
| private string _name; | private string _name; | ||||
| private string _value; | private string _value; | ||||
| private const string emptyString = "_ _"; | |||||
| public const int MaxFieldNameLength = 256; | public const int MaxFieldNameLength = 256; | ||||
| public const int MaxFieldValueLength = 1024; | public const int MaxFieldValueLength = 1024; | ||||
| @@ -239,9 +252,12 @@ namespace Discord | |||||
| get => _name; | get => _name; | ||||
| set | set | ||||
| { | { | ||||
| if (string.IsNullOrWhiteSpace(value)) throw new ArgumentException($"Field name must not be null, empty or entirely whitespace.", nameof(Name)); | |||||
| if (value.Length > MaxFieldNameLength) throw new ArgumentException($"Field name length must be less than or equal to {MaxFieldNameLength}.", nameof(Name)); | |||||
| _name = value; | |||||
| if (string.IsNullOrWhiteSpace(value)) | |||||
| _name = emptyString; | |||||
| else if (value.Length > MaxFieldNameLength) | |||||
| throw new ArgumentException($"Field name length must be less than or equal to {MaxFieldNameLength}.", nameof(Name)); | |||||
| else | |||||
| _name = value; | |||||
| } | } | ||||
| } | } | ||||
| @@ -251,9 +267,12 @@ namespace Discord | |||||
| set | set | ||||
| { | { | ||||
| var stringValue = value?.ToString(); | var stringValue = value?.ToString(); | ||||
| if (string.IsNullOrEmpty(stringValue)) throw new ArgumentException($"Field value must not be null or empty.", nameof(Value)); | |||||
| if (stringValue.Length > MaxFieldValueLength) throw new ArgumentException($"Field value length must be less than or equal to {MaxFieldValueLength}.", nameof(Value)); | |||||
| _value = stringValue; | |||||
| if (string.IsNullOrWhiteSpace(stringValue)) | |||||
| _value = emptyString; | |||||
| else if (stringValue.Length > MaxFieldValueLength) | |||||
| throw new ArgumentException($"Field value length must be less than or equal to {MaxFieldValueLength}.", nameof(Value)); | |||||
| else | |||||
| _value = stringValue; | |||||
| } | } | ||||
| } | } | ||||
| public bool IsInline { get; set; } | public bool IsInline { get; set; } | ||||