diff --git a/src/Discord.Net/DiscordClient.API.cs b/src/Discord.Net/DiscordClient.API.cs
index b9539d48f..900ddbdfc 100644
--- a/src/Discord.Net/DiscordClient.API.cs
+++ b/src/Discord.Net/DiscordClient.API.cs
@@ -245,7 +245,7 @@ namespace Discord
=> SendMessage(channel?.Id, text, mentions);
/// Sends a message to the provided channel, mentioning certain users.
/// While not required, it is recommended to include a mention reference in the text (see User.Mention).
- public async Task SendMessage(string channelId, string text, string[] mentions)
+ public async Task SendMessage(string channelId, string text, string[] mentions, bool isTextToSpeech = false)
{
CheckReady();
if (channelId == null) throw new ArgumentNullException(nameof(channelId));
@@ -267,7 +267,8 @@ namespace Discord
Content = blockText,
Timestamp = DateTime.UtcNow,
Author = new UserReference { Avatar = _currentUser.AvatarId, Discriminator = _currentUser.Discriminator, Id = _currentUser.Id, Username = _currentUser.Name },
- ChannelId = channelId
+ ChannelId = channelId,
+ IsTextToSpeech = isTextToSpeech
});
msg.IsQueued = true;
msg.Nonce = nonce;
@@ -276,11 +277,11 @@ namespace Discord
}
else
{
- var model = await _api.SendMessage(channelId, blockText, mentions, nonce).ConfigureAwait(false);
+ var model = await _api.SendMessage(channelId, blockText, mentions, nonce, isTextToSpeech).ConfigureAwait(false);
var msg = _messages.GetOrAdd(model.Id, channelId, model.Author.Id);
msg.Update(model);
RaiseMessageSent(msg);
- }
+ }
await Task.Delay(1000).ConfigureAwait(false);
}
return result;
diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs
index 93fef55ac..a3dc31a93 100644
--- a/src/Discord.Net/DiscordClient.cs
+++ b/src/Discord.Net/DiscordClient.cs
@@ -791,7 +791,7 @@ namespace Discord
Responses.SendMessage response = null;
try
{
- response = await _api.SendMessage(msg.ChannelId, msg.RawText, msg.MentionIds, msg.Nonce).ConfigureAwait(false);
+ response = await _api.SendMessage(msg.ChannelId, msg.RawText, msg.MentionIds, msg.Nonce, msg.IsTTS).ConfigureAwait(false);
}
catch (WebException) { break; }
catch (HttpException) { hasFailed = true; }
diff --git a/src/Discord.Net/Net/API/DiscordAPIClient.cs b/src/Discord.Net/Net/API/DiscordAPIClient.cs
index 280862564..426505634 100644
--- a/src/Discord.Net/Net/API/DiscordAPIClient.cs
+++ b/src/Discord.Net/Net/API/DiscordAPIClient.cs
@@ -125,9 +125,9 @@ namespace Discord.Net.API
}
//Chat
- public Task SendMessage(string channelId, string message, string[] mentions, string nonce)
+ public Task SendMessage(string channelId, string message, string[] mentions, string nonce, bool isTTS)
{
- var request = new Requests.SendMessage { Content = message, Mentions = mentions, Nonce = nonce };
+ var request = new Requests.SendMessage { Content = message, Mentions = mentions, Nonce = nonce, IsTTS = isTTS };
return _rest.Post(Endpoints.ChannelMessages(channelId), request);
}
public Task EditMessage(string messageId, string channelId, string message, string[] mentions)
diff --git a/src/Discord.Net/Net/API/Requests.cs b/src/Discord.Net/Net/API/Requests.cs
index 616ea7e70..906c676cd 100644
--- a/src/Discord.Net/Net/API/Requests.cs
+++ b/src/Discord.Net/Net/API/Requests.cs
@@ -69,6 +69,8 @@ namespace Discord.Net.API
public string[] Mentions;
[JsonProperty(PropertyName = "nonce")]
public string Nonce;
+ [JsonProperty(PropertyName = "tts")]
+ public bool IsTTS;
}
public sealed class EditMessage
{
diff --git a/src/Discord.Net/Net/WebSockets/WebSocket.BuiltIn.cs b/src/Discord.Net/Net/WebSockets/WebSocket.BuiltIn.cs
index f084d7177..2a04b114d 100644
--- a/src/Discord.Net/Net/WebSockets/WebSocket.BuiltIn.cs
+++ b/src/Discord.Net/Net/WebSockets/WebSocket.BuiltIn.cs
@@ -77,7 +77,7 @@ namespace Discord.Net.WebSockets
try
{
- result = await _webSocket.ReceiveAsync(buffer, cancelToken).ConfigureAwait(false);
+ result = await _webSocket.ReceiveAsync(buffer, cancelToken).ConfigureAwait(false);
}
catch (Win32Exception ex) when (ex.HResult == HR_TIMEOUT)
{