Added TTS support
This commit is contained in:
@@ -245,7 +245,7 @@ namespace Discord
|
|||||||
=> SendMessage(channel?.Id, text, mentions);
|
=> SendMessage(channel?.Id, text, mentions);
|
||||||
/// <summary> Sends a message to the provided channel, mentioning certain users. </summary>
|
/// <summary> Sends a message to the provided channel, mentioning certain users. </summary>
|
||||||
/// <remarks> While not required, it is recommended to include a mention reference in the text (see User.Mention). </remarks>
|
/// <remarks> While not required, it is recommended to include a mention reference in the text (see User.Mention). </remarks>
|
||||||
public async Task<Message[]> SendMessage(string channelId, string text, string[] mentions)
|
public async Task<Message[]> SendMessage(string channelId, string text, string[] mentions, bool isTextToSpeech = false)
|
||||||
{
|
{
|
||||||
CheckReady();
|
CheckReady();
|
||||||
if (channelId == null) throw new ArgumentNullException(nameof(channelId));
|
if (channelId == null) throw new ArgumentNullException(nameof(channelId));
|
||||||
@@ -267,7 +267,8 @@ namespace Discord
|
|||||||
Content = blockText,
|
Content = blockText,
|
||||||
Timestamp = DateTime.UtcNow,
|
Timestamp = DateTime.UtcNow,
|
||||||
Author = new UserReference { Avatar = _currentUser.AvatarId, Discriminator = _currentUser.Discriminator, Id = _currentUser.Id, Username = _currentUser.Name },
|
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.IsQueued = true;
|
||||||
msg.Nonce = nonce;
|
msg.Nonce = nonce;
|
||||||
@@ -276,11 +277,11 @@ namespace Discord
|
|||||||
}
|
}
|
||||||
else
|
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);
|
var msg = _messages.GetOrAdd(model.Id, channelId, model.Author.Id);
|
||||||
msg.Update(model);
|
msg.Update(model);
|
||||||
RaiseMessageSent(msg);
|
RaiseMessageSent(msg);
|
||||||
}
|
}
|
||||||
await Task.Delay(1000).ConfigureAwait(false);
|
await Task.Delay(1000).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -791,7 +791,7 @@ namespace Discord
|
|||||||
Responses.SendMessage response = null;
|
Responses.SendMessage response = null;
|
||||||
try
|
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 (WebException) { break; }
|
||||||
catch (HttpException) { hasFailed = true; }
|
catch (HttpException) { hasFailed = true; }
|
||||||
|
|||||||
@@ -125,9 +125,9 @@ namespace Discord.Net.API
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Chat
|
//Chat
|
||||||
public Task<Responses.SendMessage> SendMessage(string channelId, string message, string[] mentions, string nonce)
|
public Task<Responses.SendMessage> 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<Responses.SendMessage>(Endpoints.ChannelMessages(channelId), request);
|
return _rest.Post<Responses.SendMessage>(Endpoints.ChannelMessages(channelId), request);
|
||||||
}
|
}
|
||||||
public Task<Responses.EditMessage> EditMessage(string messageId, string channelId, string message, string[] mentions)
|
public Task<Responses.EditMessage> EditMessage(string messageId, string channelId, string message, string[] mentions)
|
||||||
|
|||||||
@@ -69,6 +69,8 @@ namespace Discord.Net.API
|
|||||||
public string[] Mentions;
|
public string[] Mentions;
|
||||||
[JsonProperty(PropertyName = "nonce")]
|
[JsonProperty(PropertyName = "nonce")]
|
||||||
public string Nonce;
|
public string Nonce;
|
||||||
|
[JsonProperty(PropertyName = "tts")]
|
||||||
|
public bool IsTTS;
|
||||||
}
|
}
|
||||||
public sealed class EditMessage
|
public sealed class EditMessage
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ namespace Discord.Net.WebSockets
|
|||||||
|
|
||||||
try
|
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)
|
catch (Win32Exception ex) when (ex.HResult == HR_TIMEOUT)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user